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. |
||
|---|---|---|
| .. | ||
| beamdsp | ||
| egui_node_graph2 | ||
| gpu-video-encoder | ||
| lightningbeam-core | ||
| lightningbeam-editor | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| GPU_VIDEO_DECODE_PLAN.md | ||
| build-static.sh | ||
| build-windows.bat | ||