MKV / WebM streaming demuxer. Wraps MatroskaFile whose next_frame
API is already pull-shaped, so the streaming impl is a thin wrapper:
pull next frame, filter to the video track, AVCC→Annex-B convert if
AVC/HEVC, surface as a Sample.
Re-open an MKV container solely to extract the extended Colour
sub-elements that don’t fit on StreamInfo.color_metadata
(MaxCLL / MaxFALL / SMPTE-2086 mastering primaries / bits_per_channel /
chroma siting). Intended for downstream paths that need HDR10 side
data for muxing; returns None when the file has no video track,
no Colour element, or isn’t a well-formed MKV.