Serialize the FFmpeg capture Open path with GetFrame and Close using the
existing recursive mutex. Close still signals cancellation before waiting,
but cannot free a context while avformat_open_input or decoder setup uses it.
Clean up partially initialized resources on failure or cancellation.
Add a hardware-independent regression test that pauses a V4L2 open inside
FFmpeg and requests Close from another thread. It reproduces SIGSEGV with
the original implementation and passes with the fix, including 20 repeated
runs. All 15 camera/screen capture test cases pass (78 assertions).
Real-device AppImage validation remains necessary after rebuilding.
Introduce FFmpeg-backed live capture readers for X11 screen capture and v4l2 camera devices, including JSON/settings support, Python bindings, public OpenShot includes, and focused metadata validation tests.