vlc | branch: master | Francois Cartegnie <[email protected]> | Tue Apr 16 16:22:05 2019 +0200| [225f3a790ad8afda94856522f50ce2b6d33dc049] | committer: Francois Cartegnie
demux: ts: fix offset units > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=225f3a790ad8afda94856522f50ce2b6d33dc049 --- modules/demux/mpeg/ts.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/modules/demux/mpeg/ts.c b/modules/demux/mpeg/ts.c index 1f9d9d4fac..ff753aa9b2 100644 --- a/modules/demux/mpeg/ts.c +++ b/modules/demux/mpeg/ts.c @@ -1618,7 +1618,10 @@ static void ParsePESDataChain( demux_t *p_demux, ts_pid_t *pid, block_t *p_pes ) if ( p_pmt->pcr.b_disable && p_block->i_dts != VLC_TICK_INVALID && ( p_pmt->i_pid_pcr == pid->i_pid || p_pmt->i_pid_pcr == 0x1FFF ) ) { - ProgramSetPCR( p_demux, p_pmt, TO_SCALE(p_block->i_dts) - 120000 ); + stime_t i_pcr = ( p_block->i_dts > VLC_TICK_FROM_MS(120) ) + ? TO_SCALE(p_block->i_dts - VLC_TICK_FROM_MS(120)) + : TO_SCALE(p_block->i_dts); + ProgramSetPCR( p_demux, p_pmt, i_pcr ); } /* Compute PCR/DTS offset if any */ @@ -1631,7 +1634,7 @@ static void ParsePESDataChain( demux_t *p_demux, ts_pid_t *pid, block_t *p_pes ) stime_t i_pcr = TimeStampWrapAround( p_pmt->pcr.i_first, p_pmt->pcr.i_current ); if( i_dts27 < i_pcr ) { - p_pmt->pcr.i_pcroffset = i_pcr - i_dts27 + 80000; + p_pmt->pcr.i_pcroffset = i_pcr - i_dts27 + TO_SCALE_NZ(VLC_TICK_FROM_MS(80)); msg_Warn( p_demux, "Broken stream: pid %d sends packets with dts %"PRId64 "us later than pcr, applying delay", pid->i_pid, FROM_SCALE_NZ(p_pmt->pcr.i_pcroffset) ); _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
