-
- /* dead code */
- abort();
- vlc_cleanup_pop();
-}
-
-static int GetAction( intf_thread_t *p_intf )
-{
- intf_sys_t *p_sys = p_intf->p_sys;
- int i_ret;
-
- vlc_mutex_lock( &p_sys->lock );
- mutex_cleanup_push( &p_sys->lock );
-
- while( p_sys->i_size == 0 )
- vlc_cond_wait( &p_sys->wait, &p_sys->lock );
-
- i_ret = p_sys->p_actions[ 0 ];
- p_sys->i_size--;
- for( int i = 0; i < p_sys->i_size; i++ )
- p_sys->p_actions[i] = p_sys->p_actions[i + 1];
-
- vlc_cleanup_run();
- return i_ret;
-}
-
-static int PutAction( intf_thread_t *p_intf, int i_action )
-{
- intf_sys_t *p_sys = p_intf->p_sys;
- int i_ret = VLC_EGENERIC;
-
- vlc_mutex_lock( &p_sys->lock );
- if ( p_sys->i_size >= BUFFER_SIZE )
- msg_Warn( p_intf, "event buffer full, dropping key actions" );
- else
- p_sys->p_actions[p_sys->i_size++] = i_action;
-
- vlc_cond_signal( &p_sys->wait );
- vlc_mutex_unlock( &p_sys->lock );
- return i_ret;
+cleanup_and_continue:
+ if( p_aout )
+ vlc_object_release( p_aout );
+ if( p_vout )
+ vlc_object_release( p_vout );
+ if( p_input )
+ vlc_object_release( p_input );
+ return VLC_SUCCESS;