vlc | branch: master | Francois Cartegnie <[email protected]> | Tue Apr 4 12:21:54 2017 +0200| [cc07bb487d48f747ed92ad2dbebe8114b0905535] | committer: Francois Cartegnie
demux: mkv: flag discontinuity on seek > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=cc07bb487d48f747ed92ad2dbebe8114b0905535 --- modules/demux/mkv/matroska_segment.cpp | 1 + modules/demux/mkv/matroska_segment_parse.cpp | 1 + modules/demux/mkv/mkv.hpp | 1 + modules/demux/mkv/util.cpp | 6 ++++++ 4 files changed, 9 insertions(+) diff --git a/modules/demux/mkv/matroska_segment.cpp b/modules/demux/mkv/matroska_segment.cpp index 9aca1da..c486dd0 100644 --- a/modules/demux/mkv/matroska_segment.cpp +++ b/modules/demux/mkv/matroska_segment.cpp @@ -847,6 +847,7 @@ void matroska_segment_c::Seek( mtime_t i_absolute_mk_date, mtime_t i_mk_time_off track.i_skip_until_fpos = it->second.fpos; track.i_last_dts = it->second.pts; + track.b_discontinuity = true; msg_Dbg( &sys.demuxer, "seek: preroll{ track: %u, pts: %" PRId64 ", fpos: %" PRIu64 " } ", it->first, it->second.pts, it->second.fpos ); diff --git a/modules/demux/mkv/matroska_segment_parse.cpp b/modules/demux/mkv/matroska_segment_parse.cpp index bcf7ff5..f4d7361 100644 --- a/modules/demux/mkv/matroska_segment_parse.cpp +++ b/modules/demux/mkv/matroska_segment_parse.cpp @@ -241,6 +241,7 @@ void matroska_segment_c::ParseTrackEntry( KaxTrackEntry *m ) track.p_sys = NULL; track.b_inited = false; + track.b_discontinuity = false; track.i_data_init = 0; track.p_data_init = NULL; diff --git a/modules/demux/mkv/mkv.hpp b/modules/demux/mkv/mkv.hpp index 6535814..3c94d14 100644 --- a/modules/demux/mkv/mkv.hpp +++ b/modules/demux/mkv/mkv.hpp @@ -218,6 +218,7 @@ class mkv_track_t PrivateTrackData *p_sys; bool b_inited; + bool b_discontinuity; /* data to be send first */ int i_data_init; uint8_t *p_data_init; diff --git a/modules/demux/mkv/util.cpp b/modules/demux/mkv/util.cpp index 1740db6..1a4f157 100644 --- a/modules/demux/mkv/util.cpp +++ b/modules/demux/mkv/util.cpp @@ -269,6 +269,12 @@ void send_Block( demux_t * p_demux, mkv_track_t * p_tk, block_t * p_block, unsig (double) p_segment->i_timescale / ( 1000.0 * i_number_frames ); } + if( p_tk->b_discontinuity ) + { + p_block->i_flags |= BLOCK_FLAG_DISCONTINUITY; + p_tk->b_discontinuity = false; + } + es_out_Send( p_demux->out, p_tk->p_es, p_block); } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
