The decoder's output size was frozen to the document size at import, and export reused that decoder — so exporting above document res upscaled the video (real source detail discarded) and a document resize never re-targeted the decode. Decode size is now chosen per get_frame call: VideoDecoder::get_frame and VideoManager::get_frame take a target (w, h), capped to native (never upscale), with the swscale context and frame caches keyed on the output size so preview (preview res) and an in-progress export (export res) don't collide. The renderer derives the target from the document->output base_transform, so export decodes at export res (full detail) and the canvas at preview res. Thumbnails/asset library pass small targets. |
||
|---|---|---|
| .. | ||
| src | ||
| tests | ||
| Cargo.toml | ||