VidStudio SDK reference
    Preparing search index...

    Interface DecodeTuning

    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.

    interface DecodeTuning {
        decodeCache: number | null;
        detachFrames: boolean | null;
        exportGopCap: number | null;
        forceSoftware: boolean;
        stallFallback: boolean | null;
        stallTimeoutMs: number | null;
    }
    Index
    decodeCache: number | null
    detachFrames: boolean | null
    exportGopCap: number | null
    forceSoftware: boolean
    stallFallback: boolean | null
    stallTimeoutMs: number | null