decode-tuning.ts — runtime knobs for testing the video decode path on a
deployed build (e.g. a Vercel preview opened on a Windows machine), no
rebuild needed.
The host passes them as EngineOptions.decodeTuning. vidstudio.app reads
them from URL query params with readDecodeTuningKnobs, which copies them to
sessionStorage so they survive in-app navigation and reloads in the same
tab, and vanish when the tab closes. ?decodeTuning=reset clears them.
?decodeCache=8 cap the editor's per-decoder frame cache
(defaults in decode-budget.ts). Tests the
hardware frame-pool theory for seek/playback.
?exportGopCap=8 export/burn-in keeps at most N decoded frames of
a keyframe group open at once instead of the
whole group (the Android default is 8, see
decode-budget.ts). Same theory, export path.
Slower: the group is re-decoded every N frames.
?stallTimeout=2000 stall timeout in ms (default 4000).
?stallFallback=on|off force the software-fallback policy regardless
of platform (default: Windows only).
?decodeHw=software build every decoder with
hardwareAcceleration: "prefer-software" from the
start — the in-app equivalent of disabling
chrome://flags/#disable-accelerated-video-decode.
?decodeCopy=on|off copy every hardware-decoded frame off the
driver's pool (frame-copy.ts). Default: on for
Windows and Android, off elsewhere. off there
reproduces the original pool-exhaustion stall.
Everything here is best-effort: with no knobs set the tuning is all-null
and behaviour is unchanged. Each editor carries its own tuning down to its
decoders.
decode-tuning.ts — runtime knobs for testing the video decode path on a deployed build (e.g. a Vercel preview opened on a Windows machine), no rebuild needed.
The host passes them as
EngineOptions.decodeTuning. vidstudio.app reads them from URL query params withreadDecodeTuningKnobs, which copies them to sessionStorage so they survive in-app navigation and reloads in the same tab, and vanish when the tab closes.?decodeTuning=resetclears them.?decodeCache=8 cap the editor's per-decoder frame cache (defaults in decode-budget.ts). Tests the hardware frame-pool theory for seek/playback. ?exportGopCap=8 export/burn-in keeps at most N decoded frames of a keyframe group open at once instead of the whole group (the Android default is 8, see decode-budget.ts). Same theory, export path. Slower: the group is re-decoded every N frames. ?stallTimeout=2000 stall timeout in ms (default 4000). ?stallFallback=on|off force the software-fallback policy regardless of platform (default: Windows only). ?decodeHw=software build every decoder with hardwareAcceleration: "prefer-software" from the start — the in-app equivalent of disabling chrome://flags/#disable-accelerated-video-decode. ?decodeCopy=on|off copy every hardware-decoded frame off the driver's pool (frame-copy.ts). Default: on for Windows and Android, off elsewhere.
offthere reproduces the original pool-exhaustion stall.Everything here is best-effort: with no knobs set the tuning is all-null and behaviour is unchanged. Each editor carries its own tuning down to its decoders.