vlc | branch: master | Petri Hintukainen <[email protected]> | Tue Dec 1 13:14:14 2015 +0200| [0f234007b9bc20a33727c796b99548b051d14eb4] | committer: Jean-Baptiste Kempf
bluray: make title transitions faster Signed-off-by: Jean-Baptiste Kempf <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=0f234007b9bc20a33727c796b99548b051d14eb4 --- modules/access/bluray.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/modules/access/bluray.c b/modules/access/bluray.c index 8f62005..2135639 100644 --- a/modules/access/bluray.c +++ b/modules/access/bluray.c @@ -169,6 +169,7 @@ struct demux_sys_t int i_video_stream; stream_t *p_parser; bool b_flushed; + bool b_pl_playing; /* true when playing playlist */ /* Used to store bluray disc path */ char *psz_bd_path; @@ -1948,6 +1949,13 @@ static void blurayHandleEvent(demux_t *p_demux, const BD_EVENT *e) case BD_EVENT_PLAYLIST: /* Start of playlist playback (?????.mpls) */ blurayUpdatePlaylist(p_demux, e->param); + if (p_sys->b_pl_playing) { + /* previous playlist was stopped in middle. flush to avoid delay */ + msg_Info(p_demux, "Stopping playlist playback"); + blurayResetParser(p_demux); + es_out_Control( p_demux->out, ES_OUT_RESET_PCR ); + } + p_sys->b_pl_playing = true; break; case BD_EVENT_PLAYITEM: blurayUpdateCurrentClip(p_demux, e->param); @@ -2008,6 +2016,9 @@ static void blurayHandleEvent(demux_t *p_demux, const BD_EVENT *e) /* reset demuxer (partially decoded PES packets must be dropped) */ blurayResetParser(p_demux); break; + case BD_EVENT_END_OF_TITLE: + p_sys->b_pl_playing = false; + break; case BD_EVENT_IDLE: /* nothing to do (ex. BD-J is preparing menus, waiting user input or running animation) */ /* avoid busy loop (bd_read() returns no data) */ _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
