From 72ba5666a6ffd06ccdfd2db8dacc47de7f777a4c Mon Sep 17 00:00:00 2001 From: kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com> Date: Wed, 17 Jul 2024 15:26:33 +0000 Subject: [chore] media pipeline improvements (#3110) * don't set emoji / media image paths on failed download, migrate FileType from string to integer * fix incorrect uses of util.PtrOr, fix returned frontend media * fix migration not setting arguments correctly in where clause * fix not providing default with not null column * whoops * ensure a default gets set for media attachment file type * remove the exclusive flag from writing files in disk storage * rename PtrOr -> PtrOrZero, and rename PtrValueOr -> PtrOrValue to match * slight wording changes * use singular / plural word forms (no parentheses), is better for screen readers * update testmodels with unknown media type to have unset file details, update attachment focus handling converting to frontend, update tests * store first instance in ffmpeg wasm pool, fill remaining with closed instances --- internal/media/ffmpeg/pool.go | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) (limited to 'internal/media/ffmpeg') diff --git a/internal/media/ffmpeg/pool.go b/internal/media/ffmpeg/pool.go index 9f6446be3..e63b10e69 100644 --- a/internal/media/ffmpeg/pool.go +++ b/internal/media/ffmpeg/pool.go @@ -34,14 +34,33 @@ type wasmInstancePool struct { } func (p *wasmInstancePool) Init(ctx context.Context, sz int) error { + // Initialize for first time + // to preload module into the + // wazero compilation cache. + inst, err := p.inst.New(ctx) + if err != nil { + return err + } + + // Clamp to 1. + if sz <= 0 { + sz = 1 + } + + // Allocate new pool instance channel. p.pool = make(chan *wasm.Instance, sz) - for i := 0; i < sz; i++ { - inst, err := p.inst.New(ctx) - if err != nil { - return err - } - p.pool <- inst + + // Store only one + // open instance + // at init time. + p.pool <- inst + + // Fill reminaing with closed + // instances for later opening. + for i := 0; i < sz-1; i++ { + p.pool <- new(wasm.Instance) } + return nil } -- cgit v1.2.3