summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--go.mod2
-rw-r--r--go.sum4
-rw-r--r--internal/media/ffmpeg/ffmpeg.go9
-rw-r--r--internal/media/ffmpeg/ffprobe.go9
-rw-r--r--vendor/codeberg.org/gruf/go-ffmpreg/embed/ffmpeg/ffmpeg.wasmbin12941748 -> 12736397 bytes
-rw-r--r--vendor/codeberg.org/gruf/go-ffmpreg/embed/ffmpeg/lib.go4
-rw-r--r--vendor/codeberg.org/gruf/go-ffmpreg/embed/ffprobe/ffprobe.wasmbin12859932 -> 12648386 bytes
-rw-r--r--vendor/codeberg.org/gruf/go-ffmpreg/embed/ffprobe/lib.go4
-rw-r--r--vendor/codeberg.org/gruf/go-ffmpreg/util/funcs.go65
-rw-r--r--vendor/codeberg.org/gruf/go-ffmpreg/util/wasm.go81
-rw-r--r--vendor/modules.txt3
11 files changed, 6 insertions, 175 deletions
diff --git a/go.mod b/go.mod
index 06dc690f0..cf19a9916 100644
--- a/go.mod
+++ b/go.mod
@@ -12,7 +12,7 @@ require (
codeberg.org/gruf/go-debug v1.3.0
codeberg.org/gruf/go-errors/v2 v2.3.2
codeberg.org/gruf/go-fastcopy v1.1.2
- codeberg.org/gruf/go-ffmpreg v0.2.2
+ codeberg.org/gruf/go-ffmpreg v0.2.3
codeberg.org/gruf/go-iotools v0.0.0-20240710125620-934ae9c654cf
codeberg.org/gruf/go-kv v1.6.4
codeberg.org/gruf/go-list v0.0.0-20240425093752-494db03d641f
diff --git a/go.sum b/go.sum
index 4f46fa3da..a956ea78e 100644
--- a/go.sum
+++ b/go.sum
@@ -52,8 +52,8 @@ codeberg.org/gruf/go-fastcopy v1.1.2 h1:YwmYXPsyOcRBxKEE2+w1bGAZfclHVaPijFsOVOcn
codeberg.org/gruf/go-fastcopy v1.1.2/go.mod h1:GDDYR0Cnb3U/AIfGM3983V/L+GN+vuwVMvrmVABo21s=
codeberg.org/gruf/go-fastpath/v2 v2.0.0 h1:iAS9GZahFhyWEH0KLhFEJR+txx1ZhMXxYzu2q5Qo9c0=
codeberg.org/gruf/go-fastpath/v2 v2.0.0/go.mod h1:3pPqu5nZjpbRrOqvLyAK7puS1OfEtQvjd6342Cwz56Q=
-codeberg.org/gruf/go-ffmpreg v0.2.2 h1:K4I/7+BuzPLOVjL3hzTFdL8Z9wC0oRCK3xMKNVE86TE=
-codeberg.org/gruf/go-ffmpreg v0.2.2/go.mod h1:oPMfBkOK7xmR/teT/dKW6SeMFpRos9ceR/OuUrxBfcQ=
+codeberg.org/gruf/go-ffmpreg v0.2.3 h1:6nKpR4KzAhyWHe5E1YatqogZUZbmCmUjwv6qST/P1Ks=
+codeberg.org/gruf/go-ffmpreg v0.2.3/go.mod h1:oPMfBkOK7xmR/teT/dKW6SeMFpRos9ceR/OuUrxBfcQ=
codeberg.org/gruf/go-iotools v0.0.0-20240710125620-934ae9c654cf h1:84s/ii8N6lYlskZjHH+DG6jyia8w2mXMZlRwFn8Gs3A=
codeberg.org/gruf/go-iotools v0.0.0-20240710125620-934ae9c654cf/go.mod h1:zZAICsp5rY7+hxnws2V0ePrWxE0Z2Z/KXcN3p/RQCfk=
codeberg.org/gruf/go-kv v1.6.4 h1:3NZiW8HVdBM3kpOiLb7XfRiihnzZWMAixdCznguhILk=
diff --git a/internal/media/ffmpeg/ffmpeg.go b/internal/media/ffmpeg/ffmpeg.go
index 357289fcc..253323989 100644
--- a/internal/media/ffmpeg/ffmpeg.go
+++ b/internal/media/ffmpeg/ffmpeg.go
@@ -21,11 +21,9 @@ import (
"context"
ffmpeglib "codeberg.org/gruf/go-ffmpreg/embed/ffmpeg"
- "codeberg.org/gruf/go-ffmpreg/util"
"codeberg.org/gruf/go-ffmpreg/wasm"
"github.com/tetratelabs/wazero"
- "github.com/tetratelabs/wazero/api"
"github.com/tetratelabs/wazero/imports/wasi_snapshot_preview1"
)
@@ -60,13 +58,6 @@ var ffmpegPool = wasmInstancePool{
// Prepare default "env" host module.
env := rt.NewHostModuleBuilder("env")
- env = env.NewFunctionBuilder().
- WithGoModuleFunction(
- api.GoModuleFunc(util.Wasm_Tempnam),
- []api.ValueType{api.ValueTypeI32, api.ValueTypeI32},
- []api.ValueType{api.ValueTypeI32},
- ).
- Export("tempnam")
// Instantiate "env" module in our runtime.
_, err := env.Instantiate(context.Background())
diff --git a/internal/media/ffmpeg/ffprobe.go b/internal/media/ffmpeg/ffprobe.go
index 0b9660e60..19582450f 100644
--- a/internal/media/ffmpeg/ffprobe.go
+++ b/internal/media/ffmpeg/ffprobe.go
@@ -21,11 +21,9 @@ import (
"context"
ffprobelib "codeberg.org/gruf/go-ffmpreg/embed/ffprobe"
- "codeberg.org/gruf/go-ffmpreg/util"
"codeberg.org/gruf/go-ffmpreg/wasm"
"github.com/tetratelabs/wazero"
- "github.com/tetratelabs/wazero/api"
"github.com/tetratelabs/wazero/imports/wasi_snapshot_preview1"
)
@@ -60,13 +58,6 @@ var ffprobePool = wasmInstancePool{
// Prepare default "env" host module.
env := rt.NewHostModuleBuilder("env")
- env = env.NewFunctionBuilder().
- WithGoModuleFunction(
- api.GoModuleFunc(util.Wasm_Tempnam),
- []api.ValueType{api.ValueTypeI32, api.ValueTypeI32},
- []api.ValueType{api.ValueTypeI32},
- ).
- Export("tempnam")
// Instantiate "env" module in our runtime.
_, err := env.Instantiate(context.Background())
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 36626ca05..a6f89abb7 100644
--- a/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffmpeg/ffmpeg.wasm
+++ b/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffmpeg/ffmpeg.wasm
Binary files 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 4c1400114..127d11fde 100644
--- a/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffmpeg/lib.go
+++ b/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffmpeg/lib.go
@@ -5,7 +5,6 @@ import (
"os"
"github.com/tetratelabs/wazero/api"
- "github.com/tetratelabs/wazero/experimental"
)
func init() {
@@ -31,8 +30,7 @@ const CoreFeatures = api.CoreFeatureSIMD |
api.CoreFeatureNonTrappingFloatToIntConversion |
api.CoreFeatureMutableGlobal |
api.CoreFeatureReferenceTypes |
- api.CoreFeatureSignExtensionOps |
- experimental.CoreFeaturesThreads
+ 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 ebef6767a..7522d9472 100644
--- a/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffprobe/ffprobe.wasm
+++ b/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffprobe/ffprobe.wasm
Binary files 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 b2ffb3c54..d73d9bed5 100644
--- a/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffprobe/lib.go
+++ b/vendor/codeberg.org/gruf/go-ffmpreg/embed/ffprobe/lib.go
@@ -5,7 +5,6 @@ import (
"os"
"github.com/tetratelabs/wazero/api"
- "github.com/tetratelabs/wazero/experimental"
)
func init() {
@@ -31,8 +30,7 @@ const CoreFeatures = api.CoreFeatureSIMD |
api.CoreFeatureNonTrappingFloatToIntConversion |
api.CoreFeatureMutableGlobal |
api.CoreFeatureReferenceTypes |
- api.CoreFeatureSignExtensionOps |
- experimental.CoreFeaturesThreads
+ api.CoreFeatureSignExtensionOps
//go:embed ffprobe.wasm
var B []byte
diff --git a/vendor/codeberg.org/gruf/go-ffmpreg/util/funcs.go b/vendor/codeberg.org/gruf/go-ffmpreg/util/funcs.go
deleted file mode 100644
index 4b584cf41..000000000
--- a/vendor/codeberg.org/gruf/go-ffmpreg/util/funcs.go
+++ /dev/null
@@ -1,65 +0,0 @@
-package util
-
-import (
- "context"
- "os"
- "path"
- "strconv"
- "time"
-
- "github.com/tetratelabs/wazero/api"
-)
-
-// Wasm_Tempnam wraps Go_Tempnam to fulfill wazero's api.GoModuleFunc,
-// the argument definition is (i32, i32) and return definition is (i32).
-// NOTE: the calling module MUST have access to exported malloc / free.
-func Wasm_Tempnam(ctx context.Context, mod api.Module, stack []uint64) {
- dirptr := api.DecodeU32(stack[0])
- pfxptr := api.DecodeU32(stack[1])
- dir := readString(ctx, mod, dirptr, 0)
- pfx := readString(ctx, mod, pfxptr, 0)
- tmpstr := Go_Tempnam(dir, pfx)
- tmpptr := writeString(ctx, mod, tmpstr)
- stack[0] = api.EncodeU32(tmpptr)
-}
-
-// Go_Tempname is functionally similar to C's tempnam.
-func Go_Tempnam(dir, prefix string) string {
- now := time.Now().Unix()
- prefix = path.Join(dir, prefix)
- for i := 0; i < 1000; i++ {
- n := murmur2(uint32(now + int64(i)))
- name := prefix + strconv.FormatUint(uint64(n), 10)
- _, err := os.Stat(name)
- if err == nil {
- continue
- } else if os.IsNotExist(err) {
- return name
- } else {
- panic(err)
- }
- }
- panic("too many attempts")
-}
-
-// murmur2 is a simple uint32 murmur2 hash
-// impl with fixed seed and input size.
-func murmur2(k uint32) (h uint32) {
- const (
- // seed ^ bitlen
- s = uint32(2147483647) ^ 8
-
- M = 0x5bd1e995
- R = 24
- )
- h = s
- k *= M
- k ^= k >> R
- k *= M
- h *= M
- h ^= k
- h ^= h >> 13
- h *= M
- h ^= h >> 15
- return
-}
diff --git a/vendor/codeberg.org/gruf/go-ffmpreg/util/wasm.go b/vendor/codeberg.org/gruf/go-ffmpreg/util/wasm.go
deleted file mode 100644
index fce41d0a0..000000000
--- a/vendor/codeberg.org/gruf/go-ffmpreg/util/wasm.go
+++ /dev/null
@@ -1,81 +0,0 @@
-package util
-
-import (
- "bytes"
- "context"
-
- "github.com/tetratelabs/wazero/api"
-)
-
-// NOTE:
-// the below functions are not very well optimized
-// for repeated calls. this is relying on the fact
-// that the only place they get used (tempnam), is
-// not called very often, should only be once per run
-// so calls to ExportedFunction() and Call() instead
-// of caching api.Function and using CallWithStack()
-// will work out the same (if only called once).
-
-// maxaddr is the maximum
-// wasm32 memory address.
-const maxaddr = ^uint32(0)
-
-func malloc(ctx context.Context, mod api.Module, sz uint32) uint32 {
- stack, err := mod.ExportedFunction("malloc").Call(ctx, uint64(sz))
- if err != nil {
- panic(err)
- }
- ptr := api.DecodeU32(stack[0])
- if ptr == 0 {
- panic("out of memory")
- }
- return ptr
-}
-
-func free(ctx context.Context, mod api.Module, ptr uint32) {
- if ptr != 0 {
- mod.ExportedFunction("free").Call(ctx, uint64(ptr))
- }
-}
-
-func view(ctx context.Context, mod api.Module, ptr uint32, n uint32) []byte {
- if n == 0 {
- n = maxaddr - ptr
- }
- mem := mod.Memory()
- b, ok := mem.Read(ptr, n)
- if !ok {
- panic("out of range")
- }
- return b
-}
-
-func read(ctx context.Context, mod api.Module, ptr, n uint32) []byte {
- return bytes.Clone(view(ctx, mod, ptr, n))
-}
-
-func readString(ctx context.Context, mod api.Module, ptr, n uint32) string {
- return string(view(ctx, mod, ptr, n))
-}
-
-func write(ctx context.Context, mod api.Module, b []byte) uint32 {
- mem := mod.Memory()
- len := uint32(len(b))
- ptr := malloc(ctx, mod, len)
- ok := mem.Write(ptr, b)
- if !ok {
- panic("out of range")
- }
- return ptr
-}
-
-func writeString(ctx context.Context, mod api.Module, str string) uint32 {
- mem := mod.Memory()
- len := uint32(len(str) + 1)
- ptr := malloc(ctx, mod, len)
- ok := mem.WriteString(ptr, str)
- if !ok {
- panic("out of range")
- }
- return ptr
-}
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 1f2ab7c93..eb5fd424b 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -30,11 +30,10 @@ codeberg.org/gruf/go-fastcopy
# codeberg.org/gruf/go-fastpath/v2 v2.0.0
## explicit; go 1.14
codeberg.org/gruf/go-fastpath/v2
-# codeberg.org/gruf/go-ffmpreg v0.2.2
+# codeberg.org/gruf/go-ffmpreg v0.2.3
## explicit; go 1.22.0
codeberg.org/gruf/go-ffmpreg/embed/ffmpeg
codeberg.org/gruf/go-ffmpreg/embed/ffprobe
-codeberg.org/gruf/go-ffmpreg/util
codeberg.org/gruf/go-ffmpreg/wasm
# codeberg.org/gruf/go-iotools v0.0.0-20240710125620-934ae9c654cf
## explicit; go 1.21