vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Sat Jun 6 21:18:25 2015 +0300| [80cd00cbce2575d663de9bfb1472fa7617954096] | committer: Rémi Denis-Courmont
input: remove non-portable function cast > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=80cd00cbce2575d663de9bfb1472fa7617954096 --- src/input/input.c | 73 ++++++++++++++++++++++++++--------------------------- 1 file changed, 36 insertions(+), 37 deletions(-) diff --git a/src/input/input.c b/src/input/input.c index 5b1327c..fc15b7a 100644 --- a/src/input/input.c +++ b/src/input/input.c @@ -58,8 +58,6 @@ /***************************************************************************** * Local prototypes *****************************************************************************/ -static void Destructor( input_thread_t * p_input ); - static void *Run ( void * ); static input_thread_t * Create ( vlc_object_t *, input_item_t *, @@ -261,6 +259,41 @@ void input_Close( input_thread_t *p_input ) } /** + * Input destructor (called when the object's refcount reaches 0). + */ +static void input_Destructor( vlc_object_t *obj ) +{ + input_thread_t *p_input = (input_thread_t *)obj; +#ifndef NDEBUG + char * psz_name = input_item_GetName( p_input->p->p_item ); + msg_Dbg( p_input, "Destroying the input for '%s'", psz_name); + free( psz_name ); +#endif + + if( p_input->p->p_es_out_display ) + es_out_Delete( p_input->p->p_es_out_display ); + + if( p_input->p->p_resource ) + input_resource_Release( p_input->p->p_resource ); + if( p_input->p->p_resource_private ) + input_resource_Release( p_input->p->p_resource_private ); + + vlc_gc_decref( p_input->p->p_item ); + + vlc_mutex_destroy( &p_input->p->counters.counters_lock ); + + for( int i = 0; i < p_input->p->i_control; i++ ) + { + input_control_t *p_ctrl = &p_input->p->control[i]; + ControlRelease( p_ctrl->i_type, p_ctrl->val ); + } + + vlc_cond_destroy( &p_input->p->wait_control ); + vlc_mutex_destroy( &p_input->p->lock_control ); + free( p_input->p ); +} + +/** * Get the item from an input thread * FIXME it does not increase ref count of the item. * if it is used after p_input is destroyed nothing prevent it from @@ -472,45 +505,11 @@ static input_thread_t *Create( vlc_object_t *p_parent, input_item_t *p_item, p_input->p->p_es_out = NULL; /* Set the destructor when we are sure we are initialized */ - vlc_object_set_destructor( p_input, (vlc_destructor_t)Destructor ); + vlc_object_set_destructor( p_input, input_Destructor ); return p_input; } -/** - * Input destructor (called when the object's refcount reaches 0). - */ -static void Destructor( input_thread_t * p_input ) -{ -#ifndef NDEBUG - char * psz_name = input_item_GetName( p_input->p->p_item ); - msg_Dbg( p_input, "Destroying the input for '%s'", psz_name); - free( psz_name ); -#endif - - if( p_input->p->p_es_out_display ) - es_out_Delete( p_input->p->p_es_out_display ); - - if( p_input->p->p_resource ) - input_resource_Release( p_input->p->p_resource ); - if( p_input->p->p_resource_private ) - input_resource_Release( p_input->p->p_resource_private ); - - vlc_gc_decref( p_input->p->p_item ); - - vlc_mutex_destroy( &p_input->p->counters.counters_lock ); - - for( int i = 0; i < p_input->p->i_control; i++ ) - { - input_control_t *p_ctrl = &p_input->p->control[i]; - ControlRelease( p_ctrl->i_type, p_ctrl->val ); - } - - vlc_cond_destroy( &p_input->p->wait_control ); - vlc_mutex_destroy( &p_input->p->lock_control ); - free( p_input->p ); -} - /***************************************************************************** * Run: main thread loop * This is the "normal" thread that spawns the input processing chain, _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
