[FFmpeg-devel] [RFC] libavcodec/mpeg12dec.c: CC data from skipped frames
Scott Theisen
scott.the.elm at gmail.com
Mon Dec 2 01:07:56 EET 2024
Hello all,
In mpeg_decode_a53_cc() only the A/53 part 4 CC data ("GA94") is saved
between frames. The other formats incorrectly create a larger buffer
than they use since
https://github.com/FFmpeg/FFmpeg/commit/a705bcd763e344fac191e157ffeddc285388b7fa
because they do not append to the previous data.
A/53 and SCTE-20 specify a maximum of one CC user data per picture
header. (I assume the same is true for DVD and DVB 0502.)
The a53_buf_ref is added to the frame in mpeg_field_start() which will
only be called in decode_chunks() if not all of the picture data slices
are skipped.
I have observed the A/53 code create a larger buffer at the start of a
file or after skipping; presumably the I-frame following a GOP header is
the first frame, then one or more B-frames have all of their slices
skipped. Otherwise, old_size is always 0.
Is a frame created when all the slices are skipped? (If so, the CC data
should be added to that frame.)
Should the CC data be preserved between the frames for all formats?
Thanks,
Scott Theisen
More information about the ffmpeg-devel
mailing list