[FFmpeg-devel] [PATCH v4] avcodec/mpeg12dec: extract only one type of CC substream

Stefano Sabatini stefasab at gmail.com
Tue Mar 19 18:30:34 EET 2024


On date Tuesday 2024-03-12 18:10:09 +0100, Stefano Sabatini wrote:
> On date Tuesday 2024-03-12 10:43:11 -0500, Marth64 wrote:
> > In MPEG-2 user data, there can be different types of Closed Captions
> > formats embedded (A53, SCTE-20, or DVD). The current behavior of the
> > CC extraction code in the MPEG-2 decoder is to not be aware of
> > multiple formats if multiple exist, therefore allowing one format
> > to overwrite the other during the extraction process since the CC
> > extraction shares one output buffer for the normalized bytes.
> > 
> > This causes sources that have two CC formats to produce flawed output.
> > There exist real-world samples which contain both A53 and SCTE-20 captions
> > in the same MPEG-2 stream, and that manifest this problem. Example of symptom:
> > THANK YOU (expected) --> THTHANANK K YOYOUU (actual)
> > 
> > The solution is to pick only the first CC substream observed with valid bytes,
> > and ignore the other types. Additionally, provide an option for users
> > to manually "force" a type in the event that this matters for a particular
> > source.
> > 
> > Signed-off-by: Marth64 <marth64 at proxyid.net>
> > ---
> >  libavcodec/mpeg12dec.c | 64 ++++++++++++++++++++++++++++++++++++++++--
> >  1 file changed, 61 insertions(+), 3 deletions(-)
> 
> LGTM.

Applied.


More information about the ffmpeg-devel mailing list