[FFmpeg-devel] [PATCH] avformat/mpegts: unset DTS/PTS for subtitle PES packets if PCR not available

Jan Ekström jeebjp at gmail.com
Fri Dec 21 21:15:16 EET 2018


On Fri, Dec 21, 2018 at 9:04 PM Jan Ekström <jeebjp at gmail.com> wrote:
>
> On Wed, Dec 19, 2018 at 8:56 PM Michael Niedermayer
> <michael at niedermayer.cc> wrote:
> >
> > On Sat, Dec 15, 2018 at 08:50:41PM +0200, Jan Ekström wrote:
> > > Fixes issues when a subtitle packet is received before PCR for the
> > > program has been received, leading to wildly jumping timestamps
> > > on the lavf client side as well as in the re-ordering logic.
> > >
> > > This usually happens in case of multiplexes where the PCR of a
> > > program is not taken into account with subtitle tracks' DTS/PTS.
> > > ---
> > >  libavformat/mpegts.c | 11 +++++++++++
> > >  1 file changed, 11 insertions(+)
> >
> > For the record, so this is not lost on IRC and causes misunderstandings
> > <michaelni> JEEB, if you prefer the simple solution iam fine with that too but i might (if i find time) rewrite it to do the buffering so the timestamps arent lost in the cases this affects
> >
>
> As Michael is OK with this, If there are no further comments, I will
> push this tomorrow morning.
>
> As a reminder of what this improves:
> Sample: https://kuroko.fushizen.eu/samples/2018-04-04-funky_teletext_mux.cut.ts
>
> Steps to show difference:
> 1. ffprobe -of json -show_packets -show_programs - > before.json
> 2. ffprobe -of json -show_packets -show_programs - > after.json
> 3. git diff --no-index before.json after.json
>
> Example of a failing ffmpeg.c command line without these changes
> (requires the libzvbi teletext decoder to be enabled):
> ffmpeg -fix_sub_duration -txt_format text -v verbose -i
> 2018-04-04-funky_teletext_mux.cut.ts -c:v mpeg4 -c:a aac -c:s ass
> out.mkv
>

Actually now that I give it another bit of thought, no need for
libzvbi, just -c copy'ing  into .ts is enough.

Jan


More information about the ffmpeg-devel mailing list