vlc | branch: master | Thomas Guillem <[email protected]> | Thu Mar 12 14:41:22 2020 +0100| [6cdbd26806692306ce60a974f7714581e07a7e20] | committer: Thomas Guillem
demux: wav: don't increment pts past data chunk bundary > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=6cdbd26806692306ce60a974f7714581e07a7e20 --- modules/demux/wav.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/modules/demux/wav.c b/modules/demux/wav.c index ddd3a04a2a..f91a3c3abc 100644 --- a/modules/demux/wav.c +++ b/modules/demux/wav.c @@ -91,6 +91,8 @@ static int Demux( demux_t *p_demux ) block_t *p_block; const int64_t i_pos = vlc_stream_Tell( p_demux->s ); unsigned int i_read_size = p_sys->i_frame_size; + uint32_t i_read_samples = p_sys->i_frame_samples; + if( p_sys->i_data_size > 0 ) { @@ -100,7 +102,11 @@ static int Demux( demux_t *p_demux ) /* Don't read past data chunk boundary */ if ( i_end < i_pos + i_read_size ) + { i_read_size = i_end - i_pos; + i_read_samples = ( p_sys->i_frame_size - i_read_size ) + * p_sys->i_frame_samples / p_sys->i_frame_size; + } } if( ( p_block = vlc_stream_Block( p_demux->s, i_read_size ) ) == NULL ) @@ -123,7 +129,7 @@ static int Demux( demux_t *p_demux ) es_out_Send( p_demux->out, p_sys->p_es, p_block ); - date_Increment( &p_sys->pts, p_sys->i_frame_samples ); + date_Increment( &p_sys->pts, i_read_samples ); return VLC_DEMUXER_SUCCESS; } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
