Summary
At FFMPEG Sink, field order is inverted when encoding.
But since bug #130 bugfix, it is now impacting both h264/mp4 and ffv1/mkv. Only h264 was impacted before.
For convenience I provided an experimental patch that fixes parity issues both for PAL and NTSC contents, both standards verified ok for ffv1 and h264 codecs. At least, "it works for me"(TM).
deinterlace_ok.patch
Steps to reproduce
- Quick project, PAL or NTSC
- FFMPEG Sink, interlaced, ffv1 or h264
- Play with vlc or mpv with deinterlace
Expected behavior
Field parity fine at playback
Actual behavior
Field parity inverted at playback (motion stuttering)
Environment
- OS: Ubuntu 24.04
- Build/commit: nix 4b9db25
- Component: orc core
Additional context
First reason of the patch is that laserdiscs seem always to be TFF, be they PAL or NTSC.
Second reason is unclear, but frame_->flags |= AV_FRAME_FLAG_INTERLACED; somewhat seems to further discard |= AV_FRAME_TOP/BOTTOM_FIELD_FIRST