vlc/vlc-2.2 | branch: master | Francois Cartegnie <[email protected]> | Fri Apr 10 21:04:36 2015 +0200| [90919e2465d7e8427b52663227c217a575033a65] | committer: Jean-Baptiste Kempf
demux: ts: reset buffers on seek and flag discontinuity Close #14078 Signed-off-by: Jean-Baptiste Kempf <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc/vlc-2.2.git/?a=commit;h=90919e2465d7e8427b52663227c217a575033a65 --- modules/demux/ts.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/modules/demux/ts.c b/modules/demux/ts.c index 5cc580b..377db21 100644 --- a/modules/demux/ts.c +++ b/modules/demux/ts.c @@ -2025,6 +2025,29 @@ static int Seek( demux_t *p_demux, double f_percent ) } else { + for( int i = 2; i < 8192; i++ ) + { + ts_pid_t *pid = &p_sys->pid[i]; + + if( !pid->b_valid || !pid->es || !pid->es->id ) + continue; + + if( pid->es->p_data ) + { + block_ChainRelease( pid->es->p_data ); + pid->es->p_data = NULL; + pid->es->i_data_size = 0; + pid->es->i_data_gathered = 0; + pid->es->pp_last = &pid->es->p_data; + } + block_t *p_reset = block_Alloc(1); + if( p_reset ) + { + p_reset->i_buffer = 0; + p_reset->i_flags = BLOCK_FLAG_DISCONTINUITY | BLOCK_FLAG_CORRUPTED; + es_out_Send( p_demux->out, pid->es->id, p_reset ); + } + } msg_Dbg( p_demux, "Seek():can find a time position. i_cnt:%d", i_cnt ); return VLC_SUCCESS; } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
