[Libav-user] MPEG1-2 CEA-608 CC (subtitle) decoding fails for interlaced content
ericdejong_nospam10 at gmx.net
Tue Dec 4 17:58:39 EET 2018
> Did you test without the line?
Yes, I did a test without the line for libav 4.0.3 and just now with the latest
snapshot, with and without the line.
I did not find a good explanation how interlaced content is encoded with mpeg-2,
but from the source I can make the following observations:
Interlaced content consist of an odd field and an even field and these are stored
as seperate frames in the mpeg-stream. The decoder decodes both fields and merges
them directly in the resulting frame. This saves us an extra image processing step
if we would output this frame to an display immediatly. (beside the point, we don't,
we would need to deinterlace these frames first or output it to an encoder card as
As the original source contained captions, these were added to the fields in the
mpeg stream. As these two fields are merged into a single AVFrame we also get two
sidedata packets of AV_FRAME_DATA_A53_CC. And we need both!
With the line av_frame_remove_side_data: sidedata AV_FRAME_DATA_A53_CC of first field
Without the line: Each AVFrame contains AV_FRAME_DATA_A53_CC twice.
Please add the patch without av_frame_remove_side_data. And do not consider of merging
the AV_FRAME_DATA_A53_CC sidedata, as this will make analysing these closed captions
more difficult (then which data belonged to which frame)
Eric de Jong
More information about the Libav-user