I am receiving a H.264 progressive video stream which I need to decode and display.
However, the actual images that were encoded are interlaced and the two fields were combined / interleaved before being encoded to produce a pseudo-progressive image (with comb artefacts when displayed).
line 0: even field line 0 line 1: odd field line 0 line 2: even field line 1 line 3: odd field line 1 etc.
On the receiver end, as far as GStreamer is concerned, this is progressive video.
I need to apply a deinterlacing filter before the display to not have the typical 'comb' artefact.
However, since as far as the receiver is concerned this is progressive video, the deinterlace element does not work.
How can I 'tell' GStreamer that the video is fact in the interlaced / interleaved format described above such that deinterlace will correctly filter it?
Can I do it from a pad probe? Must I write an element somehow?
This link mentions 'INTERLEAVED' and states: "If the video info interlace mode is "interleaved", then the buffer is plain interlaced."
What is 'interleaved' video exactly? Is it the case I described above (instead of the fields being one after the other in memory)?
deinterlace
has a property mode
. Set mode=interlaced
to force deinterlacing.