From bd1866ad8a860e1b6d43c7fc988cf8c346f19f33 Mon Sep 17 00:00:00 2001 From: kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com> Date: Sun, 6 Oct 2024 20:53:03 +0000 Subject: update go-ffmpreg to v0.3.1 (pulls in latest wazero too) (#3398) --- .../gruf/go-ffmpreg/embed/ffmpeg/ffmpeg.wasm | Bin 12737391 -> 13760061 bytes .../gruf/go-ffmpreg/embed/ffmpeg/lib.go | 11 --- .../gruf/go-ffmpreg/embed/ffprobe/ffprobe.wasm | Bin 12649397 -> 13672019 bytes .../gruf/go-ffmpreg/embed/ffprobe/lib.go | 11 --- .../codeberg.org/gruf/go-ffmpreg/wasm/instance.go | 89 +++++++++++++++++++++ 5 files changed, 89 insertions(+), 22 deletions(-) create mode 100644 vendor/codeberg.org/gruf/go-ffmpreg/wasm/instance.go (limited to 'vendor/codeberg.org') diff --git a/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffmpeg/ffmpeg.wasm b/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffmpeg/ffmpeg.wasm index d2b677244..e2083fffd 100644 Binary files a/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffmpeg/ffmpeg.wasm and b/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffmpeg/ffmpeg.wasm differ diff --git a/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffmpeg/lib.go b/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffmpeg/lib.go index 127d11fde..abe32d7c1 100644 --- a/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffmpeg/lib.go +++ b/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffmpeg/lib.go @@ -3,8 +3,6 @@ package ffmpeg import ( _ "embed" "os" - - "github.com/tetratelabs/wazero/api" ) func init() { @@ -23,14 +21,5 @@ func init() { } } -// CoreFeatures is the WebAssembly Core specification -// features this embedded binary was compiled with. -const CoreFeatures = api.CoreFeatureSIMD | - api.CoreFeatureBulkMemoryOperations | - api.CoreFeatureNonTrappingFloatToIntConversion | - api.CoreFeatureMutableGlobal | - api.CoreFeatureReferenceTypes | - api.CoreFeatureSignExtensionOps - //go:embed ffmpeg.wasm var B []byte diff --git a/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffprobe/ffprobe.wasm b/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffprobe/ffprobe.wasm index 98233b43c..b460fa0f9 100644 Binary files a/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffprobe/ffprobe.wasm and b/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffprobe/ffprobe.wasm differ diff --git a/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffprobe/lib.go b/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffprobe/lib.go index d73d9bed5..c3c3a3df1 100644 --- a/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffprobe/lib.go +++ b/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffprobe/lib.go @@ -3,8 +3,6 @@ package ffprobe import ( _ "embed" "os" - - "github.com/tetratelabs/wazero/api" ) func init() { @@ -23,14 +21,5 @@ func init() { } } -// CoreFeatures is the WebAssembly Core specification -// features this embedded binary was compiled with. -const CoreFeatures = api.CoreFeatureSIMD | - api.CoreFeatureBulkMemoryOperations | - api.CoreFeatureNonTrappingFloatToIntConversion | - api.CoreFeatureMutableGlobal | - api.CoreFeatureReferenceTypes | - api.CoreFeatureSignExtensionOps - //go:embed ffprobe.wasm var B []byte diff --git a/vendor/codeberg.org/gruf/go-ffmpreg/wasm/instance.go b/vendor/codeberg.org/gruf/go-ffmpreg/wasm/instance.go new file mode 100644 index 000000000..d2eccd9e9 --- /dev/null +++ b/vendor/codeberg.org/gruf/go-ffmpreg/wasm/instance.go @@ -0,0 +1,89 @@ +package wasm + +import ( + "context" + "io" + "unsafe" + + "github.com/tetratelabs/wazero" + "github.com/tetratelabs/wazero/api" + "github.com/tetratelabs/wazero/sys" +) + +// CoreFeatures are the WebAssembly Core specification +// features our embedded binaries are compiled with. +const CoreFeatures = api.CoreFeatureSIMD | + api.CoreFeatureBulkMemoryOperations | + api.CoreFeatureNonTrappingFloatToIntConversion | + api.CoreFeatureMutableGlobal | + api.CoreFeatureReferenceTypes | + api.CoreFeatureSignExtensionOps + +// Args encompasses a common set of +// configuration options often passed to +// wazero.Runtime on module instantiation. +type Args struct { + + // Optional further module configuration function. + // (e.g. to mount filesystem dir, set env vars, etc). + Config func(wazero.ModuleConfig) wazero.ModuleConfig + + // Standard FDs. + Stdin io.Reader + Stdout io.Writer + Stderr io.Writer + + // CLI args. + Args []string +} + +// Run will run given compiled WebAssembly module +// within the given runtime, with given arguments. +// Returns the exit code, or error. +func Run( + ctx context.Context, + runtime wazero.Runtime, + module wazero.CompiledModule, + args Args, +) (rc uint32, err error) { + + // Prefix arguments with module name. + cargs := make([]string, len(args.Args)+1) + cargs[0] = module.Name() + copy(cargs[1:], args.Args) + + // Prepare new module configuration. + modcfg := wazero.NewModuleConfig() + modcfg = modcfg.WithArgs(cargs...) + modcfg = modcfg.WithStdin(args.Stdin) + modcfg = modcfg.WithStdout(args.Stdout) + modcfg = modcfg.WithStderr(args.Stderr) + + if args.Config != nil { + // Pass through config fn. + modcfg = args.Config(modcfg) + } + + // Instantiate the module from precompiled wasm module data. + mod, err := runtime.InstantiateModule(ctx, module, modcfg) + + if !isNil(mod) { + // Ensure closed. + _ = mod.Close(ctx) + } + + // Try extract exit code. + switch err := err.(type) { + case *sys.ExitError: + return err.ExitCode(), nil + default: + return 0, err + } +} + +// isNil will safely check if 'v' is nil without +// dealing with weird Go interface nil bullshit. +func isNil(i interface{}) bool { + type eface struct{ Type, Data unsafe.Pointer } + return (*(*eface)(unsafe.Pointer(&i))).Data == nil +} -- cgit v1.2.3