diff options
author | 2024-10-06 20:53:03 +0000 | |
---|---|---|
committer | 2024-10-06 20:53:03 +0000 | |
commit | bd1866ad8a860e1b6d43c7fc988cf8c346f19f33 (patch) | |
tree | 6726f95b30b73baa4e5a7feed5c0b41bf46116db /vendor/codeberg.org | |
parent | [chore/themes] Tweak colors on new themes (#3397) (diff) | |
download | gotosocial-bd1866ad8a860e1b6d43c7fc988cf8c346f19f33.tar.xz |
update go-ffmpreg to v0.3.1 (pulls in latest wazero too) (#3398)
Diffstat (limited to 'vendor/codeberg.org')
-rw-r--r-- | vendor/codeberg.org/gruf/go-ffmpreg/embed/ffmpeg/ffmpeg.wasm | bin | 12737391 -> 13760061 bytes | |||
-rw-r--r-- | vendor/codeberg.org/gruf/go-ffmpreg/embed/ffmpeg/lib.go | 11 | ||||
-rw-r--r-- | vendor/codeberg.org/gruf/go-ffmpreg/embed/ffprobe/ffprobe.wasm | bin | 12649397 -> 13672019 bytes | |||
-rw-r--r-- | vendor/codeberg.org/gruf/go-ffmpreg/embed/ffprobe/lib.go | 11 | ||||
-rw-r--r-- | vendor/codeberg.org/gruf/go-ffmpreg/wasm/instance.go | 89 |
5 files changed, 89 insertions, 22 deletions
diff --git a/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffmpeg/ffmpeg.wasm b/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffmpeg/ffmpeg.wasm Binary files differindex d2b677244..e2083fffd 100644 --- a/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffmpeg/ffmpeg.wasm +++ b/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffmpeg/ffmpeg.wasm 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 Binary files differindex 98233b43c..b460fa0f9 100644 --- a/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffprobe/ffprobe.wasm +++ b/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffprobe/ffprobe.wasm 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 +} |