vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Wed Jul 8 20:10:32 2015 +0300| [f5ae64800ec8c3f69f2128f92dd672b8974db078] | committer: Rémi Denis-Courmont
fingerprinter: remove no-op If the input state were initially "smaller or equal to" PAUSE_S, the loop would just run forever and deadlock. So assume it is always larger and remove the slack. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f5ae64800ec8c3f69f2128f92dd672b8974db078 --- modules/misc/fingerprinter.c | 41 ----------------------------------------- 1 file changed, 41 deletions(-) diff --git a/modules/misc/fingerprinter.c b/modules/misc/fingerprinter.c index b067530..229a1d9 100644 --- a/modules/misc/fingerprinter.c +++ b/modules/misc/fingerprinter.c @@ -55,13 +55,6 @@ struct fingerprinter_sys_t vlc_array_t *queue; } processing; - struct - { - vlc_mutex_t lock; - vlc_cond_t wait; - int i_input_state; - } condwait; - /* tracked in sys for cancelability */ input_item_t *p_item; input_thread_t *p_input; @@ -144,7 +137,6 @@ static void cancelDoFingerprint( void *p_arg ) fingerprinter_sys_t *p_sys = ( fingerprinter_sys_t * ) p_arg; if ( p_sys->p_input ) { - input_Stop( p_sys->p_input ); input_Close( p_sys->p_input ); } /* cleanup temporary result */ @@ -154,17 +146,6 @@ static void cancelDoFingerprint( void *p_arg ) input_item_Release( p_sys->p_item ); } -static int inputStateCallback( vlc_object_t *obj, const char *var, - vlc_value_t old, vlc_value_t cur, void *p_data ) -{ - VLC_UNUSED(obj);VLC_UNUSED(var);VLC_UNUSED(old); - fingerprinter_sys_t *p_sys = (fingerprinter_sys_t *) p_data; - if ( cur.i_int != INPUT_EVENT_STATE ) return VLC_SUCCESS; - p_sys->condwait.i_input_state = var_GetInteger( p_sys->p_input, "state" ); - vlc_cond_signal( & p_sys->condwait.wait ); - return VLC_SUCCESS; -} - static void DoFingerprint( vlc_object_t *p_this, fingerprinter_sys_t *p_sys, acoustid_fingerprint_t *fp, const char *psz_uri ) { @@ -203,22 +184,6 @@ static void DoFingerprint( vlc_object_t *p_this, fingerprinter_sys_t *p_sys, var_SetAddress( p_sys->p_input, "fingerprint-data", & p_sys->chroma_fingerprint ); input_Start( p_sys->p_input ); - - /* Wait for input to start && end */ - p_sys->condwait.i_input_state = var_GetInteger( p_sys->p_input, "state" ); - - if ( likely( var_AddCallback( p_sys->p_input, "intf-event", - inputStateCallback, p_sys ) == VLC_SUCCESS ) ) - { - while( p_sys->condwait.i_input_state <= PAUSE_S ) - { - vlc_mutex_lock( &p_sys->condwait.lock ); - mutex_cleanup_push( &p_sys->condwait.lock ); - vlc_cond_wait( &p_sys->condwait.wait, &p_sys->condwait.lock ); - vlc_cleanup_run(); - } - var_DelCallback( p_sys->p_input, "intf-event", inputStateCallback, p_sys ); - } input_Stop( p_sys->p_input ); input_Close( p_sys->p_input ); p_sys->p_input = NULL; @@ -255,9 +220,6 @@ static int Open(vlc_object_t *p_this) p_sys->results.queue = vlc_array_new(); vlc_mutex_init( &p_sys->results.lock ); - vlc_mutex_init( &p_sys->condwait.lock ); - vlc_cond_init( &p_sys->condwait.wait ); - p_fingerprinter->pf_enqueue = EnqueueRequest; p_fingerprinter->pf_getresults = GetResult; p_fingerprinter->pf_apply = ApplyResult; @@ -288,9 +250,6 @@ static void Close(vlc_object_t *p_this) vlc_cancel( p_sys->thread ); vlc_join( p_sys->thread, NULL ); - vlc_mutex_destroy( &p_sys->condwait.lock ); - vlc_cond_destroy( &p_sys->condwait.wait ); - for ( int i = 0; i < vlc_array_count( p_sys->incoming.queue ); i++ ) fingerprint_request_Delete( vlc_array_item_at_index( p_sys->incoming.queue, i ) ); vlc_array_destroy( p_sys->incoming.queue ); _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
