Commit bcc5b3f6 authored by Jean-Paul Saman's avatar Jean-Paul Saman

libvlc: allow pause and stop during buffering (fixes: #2679)

parent 256c86bf
...@@ -653,13 +653,11 @@ void libvlc_media_player_pause( libvlc_media_player_t *p_mi, ...@@ -653,13 +653,11 @@ void libvlc_media_player_pause( libvlc_media_player_t *p_mi,
libvlc_exception_t *p_e ) libvlc_exception_t *p_e )
{ {
input_thread_t * p_input_thread = libvlc_get_input_thread( p_mi, p_e ); input_thread_t * p_input_thread = libvlc_get_input_thread( p_mi, p_e );
if( !p_input_thread ) if( !p_input_thread )
return; return;
libvlc_state_t state = libvlc_media_player_get_state( p_mi, p_e ); libvlc_state_t state = libvlc_media_player_get_state( p_mi, p_e );
if( state == libvlc_Playing || state == libvlc_Buffering )
if( state == libvlc_Playing )
{ {
if( libvlc_media_player_can_pause( p_mi, p_e ) ) if( libvlc_media_player_can_pause( p_mi, p_e ) )
input_Control( p_input_thread, INPUT_SET_STATE, PAUSE_S ); input_Control( p_input_thread, INPUT_SET_STATE, PAUSE_S );
...@@ -681,7 +679,7 @@ int libvlc_media_player_is_playing( libvlc_media_player_t *p_mi, ...@@ -681,7 +679,7 @@ int libvlc_media_player_is_playing( libvlc_media_player_t *p_mi,
libvlc_exception_t *p_e ) libvlc_exception_t *p_e )
{ {
libvlc_state_t state = libvlc_media_player_get_state( p_mi, p_e ); libvlc_state_t state = libvlc_media_player_get_state( p_mi, p_e );
return libvlc_Playing == state; return (libvlc_Playing == state) || (libvlc_Buffering == state);
} }
/************************************************************************** /**************************************************************************
...@@ -692,10 +690,12 @@ void libvlc_media_player_stop( libvlc_media_player_t *p_mi, ...@@ -692,10 +690,12 @@ void libvlc_media_player_stop( libvlc_media_player_t *p_mi,
{ {
libvlc_state_t state = libvlc_media_player_get_state( p_mi, p_e ); libvlc_state_t state = libvlc_media_player_get_state( p_mi, p_e );
if( state == libvlc_Playing || state == libvlc_Paused ) if( state == libvlc_Playing ||
state == libvlc_Paused ||
state == libvlc_Buffering )
{ {
/* Send a stop notification event only if we are in playing or /* Send a stop notification event only if we are in playing,
* paused states */ * buffering or paused states */
libvlc_media_set_state( p_mi->p_md, libvlc_Ended, p_e ); libvlc_media_set_state( p_mi->p_md, libvlc_Ended, p_e );
/* Construct and send the event */ /* Construct and send the event */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment