vlc | branch: master | Rémi Denis-Courmont <r...@remlab.net> | Thu Nov 17 22:31:48 2016 +0200| [42c2b52b80710953227b8cee7747246fdbf86578] | committer: Rémi Denis-Courmont
input: fix resuming from pause at EOF (fixes #6490) As things stood, the input was paused at EOF... and when resumed would get straight back into pause. This adds a flag to heep track of the occurrence of pause at EOF. If it occurs a second time in a row, terminate the input thread loop. If however the user seeks backward and resume, clear the flag and resume playback normally. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=42c2b52b80710953227b8cee7747246fdbf86578 --- src/input/input.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/input/input.c b/src/input/input.c index e440c50..cfcb92f 100644 --- a/src/input/input.c +++ b/src/input/input.c @@ -676,7 +676,8 @@ static void MainLoop( input_thread_t *p_input, bool b_interactive ) ControlPause( p_input, mdate() ); bool b_pause_after_eof = b_interactive && - var_InheritBool( p_input, "play-and-pause" ); + var_InheritBool( p_input, "play-and-pause" ); + bool b_paused_at_eof = false; demux_t *p_demux = input_priv(p_input)->master->p_demux; const bool b_can_demux = p_demux->pf_demux != NULL; @@ -704,6 +705,8 @@ static void MainLoop( input_thread_t *p_input, bool b_interactive ) i_wakeup = es_out_GetWakeup( input_priv(p_input)->p_es_out ); if( b_force_update ) i_intf_update = 0; + + b_paused_at_eof = false; } else if( !es_out_GetEmpty( input_priv(p_input)->p_es_out ) ) { @@ -714,12 +717,16 @@ static void MainLoop( input_thread_t *p_input, bool b_interactive ) * This way we won't trigger timeshifting for nothing */ else if( b_pause_after_eof && input_priv(p_input)->b_can_pause ) { + if( b_paused_at_eof ) + break; + vlc_value_t val = { .i_int = PAUSE_S }; msg_Dbg( p_input, "pausing at EOF (pause after each)"); Control( p_input, INPUT_CONTROL_SET_STATE, val ); b_paused = true; + b_paused_at_eof = true; } else { _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits