vlc | branch: master | Francois Cartegnie <[email protected]> | Wed May 23 19:07:33 2018 +0200| [6fc6295ea029e1ba6e8f8558dae0174fcc995598] | committer: Francois Cartegnie
demux: ogg: use date_t for backward computation > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=6fc6295ea029e1ba6e8f8558dae0174fcc995598 --- modules/demux/ogg.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/modules/demux/ogg.c b/modules/demux/ogg.c index 08412cb00f..ea862a4010 100644 --- a/modules/demux/ogg.c +++ b/modules/demux/ogg.c @@ -575,6 +575,9 @@ static int Demux( demux_t * p_demux ) // PASS 2 bool b_fixed = false; + date_t d; + date_Init( &d, p_stream->f_rate, 1 ); + date_Set( &d, p_sys->i_nzpcr_offset + pagestamp - VLC_TS_0 ); for( int i=p_stream->prepcr.i_used - 1; i>=0; i-- ) { block_t *p_block = p_stream->prepcr.pp_blocks[i]; @@ -585,8 +588,8 @@ static int Demux( demux_t * p_demux ) case VLC_CODEC_VORBIS: if( pagestamp != VLC_TS_INVALID ) { - pagestamp -= CLOCK_FREQ * p_block->i_nb_samples / p_stream->f_rate; - p_block->i_pts = p_sys->i_nzpcr_offset + pagestamp; + date_Decrement( &d, p_block->i_nb_samples ); + p_block->i_pts = date_Get( &d ) + VLC_TS_0; } else { @@ -601,8 +604,8 @@ static int Demux( demux_t * p_demux ) { if( pagestamp != VLC_TS_INVALID ) { - pagestamp = pagestamp - ( CLOCK_FREQ / p_stream->f_rate ); - p_block->i_pts = p_sys->i_nzpcr_offset + pagestamp; + date_Decrement( &d, 1 ); + p_block->i_pts = date_Get( &d ) + VLC_TS_0; } b_fixed = true; } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
