Skip to content

5.8.0 - Hardware deinterlace + send_field

Choose a tag to compare

@superuser404notfound superuser404notfound released this 18 Jul 04:50

Hardware deinterlace + send_field (#107)

Added

  • GPU deinterlacing with smooth field-rate motion. Interlaced broadcast on the software-decode path (MPEG-2 / VC-1 / MPEG-4 and interlaced H.264) now deinterlaces on the GPU via yadif_videotoolbox (Metal over VideoToolbox frames) and, by default, at field rate (send_field: 25i to 50p) for smooth motion on sport. LoadOptions.deinterlaceMode (default .auto, HW with a software bwdif fallback) and deinterlaceFieldRate (default .field) are the knobs; no host opt-in needed for the default. The hardware sink emits IOSurface-backed CVPixelBuffers copied GPU-side into the decoder's pool, skipping the sws_scale copy. Requires FFmpegBuild 2.1.0 (transitive), which also carries a patch balancing an over-release of the autoreleased Metal command-buffer/encoder in the upstream VT filter (candidate for ffmpeg-devel). Adopts and thanks @tresby (whose fork this ports) and @nathanpiper.

Fixed

  • Coloured teletext no longer renders a leading blank line. libzvbi teletext ASS prefixes a row-positioning newline; the plain path trimmed it, the coloured path did not, so a coloured caption showed a blank line a plain one would not. The colour parser now edge-trims across the run sequence (interior line breaks + colours preserved). Reported by @tresby.

Verified: full suite plus hardware-path tests engaging on macOS Metal (VideoToolbox frames, send_field cadence, PTS contract). tvOS metallib runtime load is device-verified by users. FFmpegBuild 2.1.0's LGPL dynamic-framework packaging is unchanged from 2.0.0.