vlc | branch: master | Francois Cartegnie <[email protected]> | Sat Jul 13 17:25:00 2019 +0200| [cb1c8d6946ee1b08d47551127c45e485ff12ae2a] | committer: Francois Cartegnie
demux: ts: store last dts on pes struct > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=cb1c8d6946ee1b08d47551127c45e485ff12ae2a --- modules/demux/mpeg/ts.c | 4 ++++ modules/demux/mpeg/ts_streams.c | 1 + modules/demux/mpeg/ts_streams_private.h | 2 ++ 3 files changed, 7 insertions(+) diff --git a/modules/demux/mpeg/ts.c b/modules/demux/mpeg/ts.c index ce70347774..23c4b080cc 100644 --- a/modules/demux/mpeg/ts.c +++ b/modules/demux/mpeg/ts.c @@ -1584,6 +1584,9 @@ static void ParsePESDataChain( demux_t *p_demux, ts_pid_t *pid, block_t *p_pes ) if( i_pts >= 0 && i_dts < 0 ) i_dts = i_pts; + if( i_dts >= 0 ) + pid->u.p_stream->i_last_dts = i_dts; + if( p_pes ) { ts_pmt_t *p_pmt = p_es->p_program; @@ -1901,6 +1904,7 @@ static void ReadyQueuesPostSeek( demux_t *p_demux ) pid->i_cc = 0xff; pid->i_dup = 0; + pid->u.p_stream->i_last_dts = -1; if( pid->u.p_stream->prepcr.p_head ) { diff --git a/modules/demux/mpeg/ts_streams.c b/modules/demux/mpeg/ts_streams.c index c5a7ec714b..84e2cbeccf 100644 --- a/modules/demux/mpeg/ts_streams.c +++ b/modules/demux/mpeg/ts_streams.c @@ -293,6 +293,7 @@ ts_stream_t *ts_stream_New( demux_t *p_demux, ts_pmt_t *p_program ) pes->p_proc = NULL; pes->prepcr.p_head = NULL; pes->prepcr.pp_last = &pes->prepcr.p_head; + pes->i_last_dts = -1; return pes; } diff --git a/modules/demux/mpeg/ts_streams_private.h b/modules/demux/mpeg/ts_streams_private.h index 9836900806..b5646c41d7 100644 --- a/modules/demux/mpeg/ts_streams_private.h +++ b/modules/demux/mpeg/ts_streams_private.h @@ -138,6 +138,8 @@ struct ts_stream_t block_t *p_head; block_t **pp_last; } prepcr; + + stime_t i_last_dts; }; typedef struct ts_si_context_t ts_si_context_t; _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
