Commit c25f5114 authored by Tanguy Krotoff's avatar Tanguy Krotoff Committed by Pierre d'Herbemont

libvlc: check if we are in the proper state before to send libvlc_MediaPlayerStopped

Signed-off-by: default avatarPierre d'Herbemont <pdherbemont@videolan.org>
parent 3aa3031d
...@@ -627,6 +627,13 @@ void libvlc_media_player_pause( libvlc_media_player_t *p_mi, ...@@ -627,6 +627,13 @@ void libvlc_media_player_pause( libvlc_media_player_t *p_mi,
void libvlc_media_player_stop( libvlc_media_player_t *p_mi, void libvlc_media_player_stop( 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 );
if( !p_input_thread )
return;
int state = var_GetInteger( p_input_thread, "state" );
if( p_mi->b_own_its_input_thread ) if( p_mi->b_own_its_input_thread )
{ {
vlc_mutex_lock( &p_mi->object_lock ); vlc_mutex_lock( &p_mi->object_lock );
...@@ -635,20 +642,18 @@ void libvlc_media_player_stop( libvlc_media_player_t *p_mi, ...@@ -635,20 +642,18 @@ void libvlc_media_player_stop( libvlc_media_player_t *p_mi,
} }
else else
{ {
input_thread_t * p_input_thread = libvlc_get_input_thread( p_mi, p_e );
if( !p_input_thread )
return;
input_StopThread( p_input_thread ); input_StopThread( p_input_thread );
vlc_object_release( p_input_thread ); vlc_object_release( p_input_thread );
} }
if( state == PLAYING_S || state == PAUSE_S )
{
/* Send a stop notification event */ /* Send a stop notification event */
libvlc_event_t event; libvlc_event_t event;
libvlc_media_set_state( p_mi->p_md, libvlc_Stopped, NULL); libvlc_media_set_state( p_mi->p_md, libvlc_Stopped, NULL );
event.type = libvlc_MediaPlayerStopped; event.type = libvlc_MediaPlayerStopped;
libvlc_event_send( p_mi->p_event_manager, &event ); libvlc_event_send( p_mi->p_event_manager, &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