program_opencl inherits its output hw_frames_ctx from the input link.
When the input came via hwmap:mode=read, the inherited context creates
CL_MEM_READ_ONLY images for output - kernel writes are silently
discarded, producing black frames ('kein video').
Fix: download to CPU, then hwupload=derive_device=opencl to create a
fresh writable OpenCL context before program_opencl. Matches Jellyfin's
existing iHD doOclTonemap pattern (GetVaapiVidFiltersPrefered:5711).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>