[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