proxy: isolate proxies from export renders and improve proxy workflow

- FootageJob::should_use_proxy() centralizes the proxy decision; worker
  pre-decode now honors the render mode so exports always decode the
  original media (previously every frame was pre-decoded from proxies)
- global Tools > Use Proxy Media toggle with footage invalidation
- ffmpeg -progress parsing for real percentage feedback while generating
- divider mode (1/2, 1/4, 1/8 of source resolution) with UI, proxy
  filename tags and per-footage persistence (pdivider)
- Media Offline warning slat rendered for missing footage
- regression tests: export isolation, relink invalidation, offline slat,
  progress parsing, divider arguments
This commit is contained in:
2026-07-19 21:43:58 +08:00
parent bb40b4923e
commit 0c02ff0d77
21 changed files with 494 additions and 25 deletions
+7
View File
@@ -46,6 +46,7 @@ add_executable(olive-gtest
project_serializer_test.cpp
proxy_manager_test.cpp
proxy_dialog_test.cpp
footage_job_proxy_test.cpp
lut_file_field_test.cpp
node_math_test.cpp
node_undo_test.cpp
@@ -184,6 +185,12 @@ if (OAK_ENABLE_DYNAMIC_RENDER_BACKEND)
endif()
endif()
# Several render tests spawn the render worker binary from the build tree; it
# must be up to date with the code under test
if (TARGET olive-render-worker)
add_dependencies(olive-gtest olive-render-worker)
endif()
if (MSVC)
add_test("Olive.gtest" olive-gtest)
else()