InvalidateAll() on the OCIO LUT node caused the preview autocacher to
re-render the entire timeline, freezing the UI when switching LUT files.
Instead, let the new processor be used naturally on the next render
request (scrubbing/playback).
InvalidateAll() on the OCIO LUT node triggered the worker's
PreviewAutoCacher to re-cache the entire timeline, causing the main
process to freeze while waiting for frames. Only invalidate in the
main GUI process so the viewer refreshes; the worker will naturally
use the new processor on its next render request.
- Pass through input texture when the LUT processor is not ready yet,
preventing black frames while the processor is being generated.
- Serialize processor generation with a single in-flight task to avoid
concurrent OCIO lock contention that could freeze the UI.
- Invalidate cached frames after the async processor is set so the viewer
refreshes automatically without requiring the playhead to be moved.
- Add OAK_DISABLE_HWACCEL environment variable to force software decoding.
- Add FFmpegDecoderHW regression test for H.264 4:2:2 10-bit decoding.
Unfortunately I realized these will break if the input they are using are keyframed or connected in any way. At some point we may implement something to get around that, but currently there is nothing so they are temporarily disabled
Also sets sensible pivot default and add a config check around
GenerateProcessor
app/node/color/ociogradingtransformlinear/ociogradingtransformlinear.cpp
app/node/color/ociogradingtransformlinear/ociogradingtransformlinear.h
The hard coded color space was causing custom configs to crash if they
didn't contain that specific color space.
Also sets the default role in the config to sRGB EOTF to keep
consistency with previous behaviour