您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ vlc_cond_destroy函数代码示例

51自学网 2021-06-03 09:44:20
  C++
这篇教程C++ vlc_cond_destroy函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中vlc_cond_destroy函数的典型用法代码示例。如果您正苦于以下问题:C++ vlc_cond_destroy函数的具体用法?C++ vlc_cond_destroy怎么用?C++ vlc_cond_destroy使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了vlc_cond_destroy函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: Close

/***************************************************************************** * Close: *****************************************************************************/static void Close(vlc_object_t *p_this){    fingerprinter_thread_t   *p_fingerprinter = (fingerprinter_thread_t*) p_this;    fingerprinter_sys_t *p_sys = p_fingerprinter->p_sys;    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_mutex_destroy( &p_sys->incoming.lock );    vlc_cond_destroy( &p_sys->incoming_queue_filled );    for ( int i = 0; i < vlc_array_count( p_sys->processing.queue ); i++ )        fingerprint_request_Delete( vlc_array_item_at_index( p_sys->processing.queue, i ) );    vlc_array_destroy( p_sys->processing.queue );    vlc_mutex_destroy( &p_sys->processing.lock );    for ( int i = 0; i < vlc_array_count( p_sys->results.queue ); i++ )        fingerprint_request_Delete( vlc_array_item_at_index( p_sys->results.queue, i ) );    vlc_array_destroy( p_sys->results.queue );    vlc_mutex_destroy( &p_sys->results.lock );    free( p_sys );}
开发者ID:Kubink,项目名称:vlc,代码行数:32,


示例2: libvlc_event_async_fini

/************************************************************************** *       libvlc_event_async_fini (internal) : * * Destroy what might have been created by. **************************************************************************/voidlibvlc_event_async_fini(libvlc_event_manager_t * p_em){    if(!is_queue_initialized(p_em)) return;    if(current_thread_is_asynch_thread(p_em))    {        fprintf(stderr, "*** Error: releasing the last reference of the observed object from its callback thread is not (yet!) supported/n");        abort();    }    vlc_thread_t thread = queue(p_em)->thread;    if(thread)    {        vlc_cancel(thread);        vlc_join(thread, NULL);    }    vlc_mutex_destroy(&queue(p_em)->lock);    vlc_cond_destroy(&queue(p_em)->signal);    vlc_cond_destroy(&queue(p_em)->signal_idle);    vlc_threadvar_delete(&queue(p_em)->is_asynch_dispatch_thread_var);    struct queue_elmt * iter = queue(p_em)->elements;    while (iter) {        struct queue_elmt * elemt_to_delete = iter;        iter = iter->next;        free(elemt_to_delete);    }    free(queue(p_em));}
开发者ID:FLYKingdom,项目名称:vlc,代码行数:37,


示例3: vlc_mwait_i11e

int vlc_mwait_i11e(mtime_t deadline){    vlc_interrupt_t *ctx = vlc_threadvar_get(vlc_interrupt_var);    if (ctx == NULL)        return mwait(deadline), 0;    vlc_cond_t wait;    vlc_cond_init(&wait);    int ret = vlc_interrupt_prepare(ctx, vlc_mwait_i11e_wake, &wait);    if (ret)    {        vlc_cond_destroy(&wait);        vlc_testcancel();        return ret;    }    vlc_mutex_lock(&ctx->lock);    vlc_cleanup_push(vlc_mwait_i11e_cleanup, ctx);    while (!ctx->interrupted        && vlc_cond_timedwait(&wait, &ctx->lock, deadline) == 0);    vlc_cleanup_pop();    vlc_mutex_unlock(&ctx->lock);    ret = vlc_interrupt_finish(ctx);    vlc_cond_destroy(&wait);    return ret;}
开发者ID:lustigepepe,项目名称:pVLC,代码行数:28,


示例4: Close

//---------------------------------------------------------------------------// Close: destroy interface//---------------------------------------------------------------------------static void Close( vlc_object_t *p_this ){    intf_thread_t *p_intf = (intf_thread_t *)p_this;    msg_Dbg( p_intf, "closing skins2 module" );    vlc_mutex_lock( &skin_load.mutex );    skin_load.intf = NULL;    vlc_mutex_unlock( &skin_load.mutex);    vlc_join( p_intf->p_sys->thread, NULL );    vlc_mutex_destroy( &p_intf->p_sys->init_lock );    vlc_cond_destroy( &p_intf->p_sys->init_wait );    if( p_intf->p_sys->p_playlist )        pl_Release( p_this );    // Unsubscribe from messages bank#if 0    msg_Unsubscribe( p_intf, p_intf->p_sys->p_sub );#endif    vlc_cond_destroy( &p_intf->p_sys->vout_wait );    vlc_mutex_destroy( &p_intf->p_sys->vout_lock );    // Destroy structure    free( p_intf->p_sys );}
开发者ID:FLYKingdom,项目名称:vlc,代码行数:32,


示例5: background_worker_Delete

void background_worker_Delete( struct background_worker* worker ){    BackgroundWorkerCancel( worker, NULL );    vlc_array_clear( &worker->tail.data );    vlc_mutex_destroy( &worker->lock );    vlc_cond_destroy( &worker->head.wait );    vlc_cond_destroy( &worker->head.worker_wait );    vlc_cond_destroy( &worker->tail.wait );    free( worker );}
开发者ID:tguillem,项目名称:vlc,代码行数:10,


示例6: Close

static void Close( vlc_object_t *p_this ){    stream_t *s = (stream_t*)p_this;    stream_sys_t *p_sys = s->p_sys;    vlc_join( p_sys->download.thread, NULL );    vlc_mutex_destroy( &p_sys->lock );    vlc_cond_destroy( &p_sys->download.wait );    vlc_mutex_destroy( &p_sys->playback.lock );    vlc_cond_destroy( &p_sys->playback.wait );    SysCleanup( p_sys );    free( p_sys );}
开发者ID:xswm1123,项目名称:vlc,代码行数:14,


示例7: EventThreadDestroy

void EventThreadDestroy( event_thread_t *p_event ){    free( p_event->psz_title );    vlc_cond_destroy( &p_event->wait );    vlc_mutex_destroy( &p_event->lock );    free( p_event );}
开发者ID:LDiracDelta,项目名称:vlc_censor_plugin,代码行数:7,


示例8: transcode_video_close

void transcode_video_close( sout_stream_t *p_stream,                                   sout_stream_id_t *id ){    if( p_stream->p_sys->i_threads >= 1 )    {        vlc_mutex_lock( &p_stream->p_sys->lock_out );        vlc_object_kill( p_stream->p_sys );        vlc_cond_signal( &p_stream->p_sys->cond );        vlc_mutex_unlock( &p_stream->p_sys->lock_out );        vlc_thread_join( p_stream->p_sys );        vlc_mutex_destroy( &p_stream->p_sys->lock_out );        vlc_cond_destroy( &p_stream->p_sys->cond );    }    video_timer_close( id->p_encoder );    /* Close decoder */    if( id->p_decoder->p_module )        module_unneed( id->p_decoder, id->p_decoder->p_module );    if( id->p_decoder->p_description )        vlc_meta_Delete( id->p_decoder->p_description );    free( id->p_decoder->p_owner );    /* Close encoder */    if( id->p_encoder->p_module )        module_unneed( id->p_encoder, id->p_encoder->p_module );    /* Close filters */    if( id->p_f_chain )        filter_chain_Delete( id->p_f_chain );    if( id->p_uf_chain )        filter_chain_Delete( id->p_uf_chain );}
开发者ID:iamnpc,项目名称:myfaplayer,代码行数:34,


示例9: Open

/***************************************************************************** * Open: initialize and create stuff *****************************************************************************/static int Open(vlc_object_t *p_this){    intf_thread_t   *p_intf     = (intf_thread_t*) p_this;    intf_sys_t      *p_sys      = calloc(1, sizeof(intf_sys_t));    if (!p_sys)        return VLC_ENOMEM;    p_intf->p_sys = p_sys;    vlc_mutex_init(&p_sys->lock);    vlc_cond_init(&p_sys->wait);    if (vlc_clone(&p_sys->thread, Run, p_intf, VLC_THREAD_PRIORITY_LOW))    {        vlc_cond_destroy(&p_sys->wait);        vlc_mutex_destroy(&p_sys->lock);        free(p_sys);        return VLC_ENOMEM;    }    var_AddCallback(pl_Get(p_intf), "activity", ItemChange, p_intf);    return VLC_SUCCESS;}
开发者ID:Kubink,项目名称:vlc,代码行数:28,


示例10: Stop

/** * Closes the audio device. */static HRESULT Stop( aout_stream_sys_t *p_sys ){    vlc_mutex_lock( &p_sys->lock );    p_sys->b_playing =  true;    vlc_cond_signal( &p_sys->cond );    vlc_mutex_unlock( &p_sys->lock );    vlc_cancel( p_sys->eraser_thread );    vlc_join( p_sys->eraser_thread, NULL );    vlc_cond_destroy( &p_sys->cond );    vlc_mutex_destroy( &p_sys->lock );    if( p_sys->p_notify != NULL )    {        IDirectSoundNotify_Release(p_sys->p_notify );        p_sys->p_notify = NULL;    }    if( p_sys->p_dsbuffer != NULL )    {        IDirectSoundBuffer_Stop( p_sys->p_dsbuffer );        IDirectSoundBuffer_Release( p_sys->p_dsbuffer );        p_sys->p_dsbuffer = NULL;    }    if( p_sys->p_dsobject != NULL )    {        IDirectSound_Release( p_sys->p_dsobject );        p_sys->p_dsobject = NULL;    }    return DS_OK;}
开发者ID:videolan,项目名称:vlc,代码行数:32,


示例11: Close

/***************************************************************************** * Close: destroy interface stuff *****************************************************************************/static void Close(vlc_object_t *p_this){    intf_thread_t *p_intf = (intf_thread_t*) p_this;    intf_sys_t *p_sys = p_intf->p_sys;    vlc_playlist_t *playlist = p_sys->playlist;    vlc_cancel(p_sys->thread);    vlc_join(p_sys->thread, NULL);    int i;    for (i = 0; i < p_sys->i_songs; i++)        DeleteSong(&p_sys->p_queue[i]);    vlc_UrlClean(&p_sys->p_submit_url);    vlc_UrlClean(&p_sys->p_nowp_url);    vlc_cond_destroy(&p_sys->wait);    vlc_mutex_destroy(&p_sys->lock);    vlc_playlist_Lock(playlist);    vlc_player_RemoveListener(            vlc_playlist_GetPlayer(playlist), p_sys->player_listener);    vlc_playlist_RemoveListener(playlist, p_sys->playlist_listener);    vlc_playlist_Unlock(playlist);    free(p_sys);}
开发者ID:videolan,项目名称:vlc,代码行数:29,


示例12: vlc_timer_create

int vlc_timer_create (vlc_timer_t *id, void (*func) (void *), void *data){    struct vlc_timer *timer = malloc (sizeof (*timer));    if (unlikely(timer == NULL))        return ENOMEM;    vlc_mutex_init (&timer->lock);    vlc_cond_init (&timer->reschedule);    assert (func);    timer->func = func;    timer->data = data;    timer->value = 0;    timer->interval = 0;    atomic_init(&timer->overruns, 0);    if (vlc_clone (&timer->thread, vlc_timer_thread, timer,                   VLC_THREAD_PRIORITY_INPUT))    {        vlc_cond_destroy (&timer->reschedule);        vlc_mutex_destroy (&timer->lock);        free (timer);        return ENOMEM;    }    *id = timer;    return 0;}
开发者ID:0xheart0,项目名称:vlc,代码行数:27,


示例13: vlc_object_destroy

/** **************************************************************************** * Destroy a vlc object (Internal) * * This function destroys an object that has been previously allocated with * vlc_object_create. The object's refcount must be zero and it must not be * attached to other objects in any way. * * This function must be called with cancellation disabled (currently). *****************************************************************************/static void vlc_object_destroy( vlc_object_t *p_this ){    vlc_object_internals_t *p_priv = vlc_internals( p_this );    /* Send a kill to the object's thread if applicable */    vlc_object_kill( p_this );    /* Call the custom "subclass" destructor */    if( p_priv->pf_destructor )        p_priv->pf_destructor( p_this );    /* Any thread must have been cleaned up at this point. */    assert( !p_priv->b_thread );    /* Destroy the associated variables. */    var_DestroyAll( p_this );    vlc_cond_destroy( &p_priv->var_wait );    vlc_mutex_destroy( &p_priv->var_lock );    free( p_this->psz_header );    free( p_priv->psz_name );    vlc_spin_destroy( &p_priv->ref_spin );    if( p_priv->pipes[1] != -1 && p_priv->pipes[1] != p_priv->pipes[0] )        close( p_priv->pipes[1] );    if( p_priv->pipes[0] != -1 )        close( p_priv->pipes[0] );    if( VLC_OBJECT(p_this->p_libvlc) == p_this )        vlc_mutex_destroy (&(libvlc_priv ((libvlc_int_t *)p_this)->structure_lock));    free( p_priv );}
开发者ID:cmassiot,项目名称:vlc-broadcast,代码行数:44,


示例14: vlc_cond_init

/** * @brief Directory Monitoring thread loop */void *RunMonitoringThread( void *p_this ){    monitoring_thread_t *p_mon = (monitoring_thread_t*) p_this;    vlc_cond_init( &p_mon->wait );    vlc_mutex_init( &p_mon->lock );    var_Create( p_mon, "ml-recursive-scan", VLC_VAR_BOOL | VLC_VAR_DOINHERIT );    while( vlc_object_alive( p_mon ) )    {        vlc_mutex_lock( &p_mon->lock );        /* Update */        UpdateLibrary( p_mon );        /* We wait MONITORING_DELAY seconds or wait that the media library           signals us to do something */        vlc_cond_timedwait( &p_mon->wait, &p_mon->lock,                            mdate() + 1000000*MONITORING_DELAY );        vlc_mutex_unlock( &p_mon->lock );    }    vlc_cond_destroy( &p_mon->wait );    vlc_mutex_destroy( &p_mon->lock );    return NULL;}
开发者ID:CSRedRat,项目名称:vlc,代码行数:29,


示例15: Close

/***************************************************************************** * Close: destroy interface stuff *****************************************************************************/static void Close( vlc_object_t *p_this ){    playlist_t                  *p_playlist = pl_Get( p_this );    input_thread_t              *p_input;    intf_thread_t               *p_intf = ( intf_thread_t* ) p_this;    intf_sys_t                  *p_sys  = p_intf->p_sys;    var_DelCallback( p_playlist, "item-current", ItemChange, p_intf );    p_input = playlist_CurrentInput( p_playlist );    if ( p_input )    {        if( p_sys->b_state_cb )            var_DelCallback( p_input, "intf-event", PlayingChange, p_intf );        vlc_object_release( p_input );    }    int i;    for( i = 0; i < p_sys->i_songs; i++ )        DeleteSong( &p_sys->p_queue[i] );    free( p_sys->psz_submit_host );    free( p_sys->psz_submit_file );#if 0 //NOT USED    free( p_sys->psz_nowp_host );    free( p_sys->psz_nowp_file );#endif    vlc_cond_destroy( &p_sys->wait );    vlc_mutex_destroy( &p_sys->lock );    free( p_sys );}
开发者ID:Italianmoose,项目名称:Stereoscopic-VLC,代码行数:33,


示例16: Close

/***************************************************************************** * Close: *****************************************************************************/static void Close( vlc_object_t *p_this ){    services_discovery_t *p_sd = ( services_discovery_t* )p_this;    services_discovery_sys_t *p_sys  = p_sd->p_sys;    int i;    vlc_cancel (p_sys->thread);    vlc_join (p_sys->thread, NULL);    var_DelCallback( p_sd, "podcast-urls", UrlsChange, p_sys );    var_DelCallback( p_sd, "podcast-request", Request, p_sys );    vlc_cond_destroy( &p_sys->wait );    vlc_mutex_destroy( &p_sys->lock );    for( i = 0; i < p_sys->i_input; i++ )    {        input_thread_t *p_input = p_sd->p_sys->pp_input[i];        if( !p_input )            continue;        input_Stop( p_input, true );        vlc_thread_join( p_input );        vlc_object_release( p_input );        p_sd->p_sys->pp_input[i] = NULL;    }    free( p_sd->p_sys->pp_input );    for( i = 0; i < p_sys->i_urls; i++ ) free( p_sys->ppsz_urls[i] );    free( p_sys->ppsz_urls );    for( i = 0; i < p_sys->i_items; i++ ) vlc_gc_decref( p_sys->pp_items[i] );    free( p_sys->pp_items );    free( p_sys->psz_request );    free( p_sys );}
开发者ID:iamnpc,项目名称:myfaplayer,代码行数:37,


示例17: malloc

struct vlc_h2_output *vlc_h2_output_create(struct vlc_tls *tls, bool client){    struct vlc_h2_output *out = malloc(sizeof (*out));    if (unlikely(out == NULL))        return NULL;    out->tls = tls;    out->prio.first = NULL;    out->prio.last = &out->prio.first;    out->queue.first = NULL;    out->queue.last = &out->queue.first;    out->size = 0;    out->failed = false;    out->closing = false;    vlc_mutex_init(&out->lock);    vlc_cond_init(&out->wait);    void *(*cb)(void *) = client ? vlc_h2_client_output_thread                                 : vlc_h2_output_thread;    if (vlc_clone(&out->thread, cb, out, VLC_THREAD_PRIORITY_INPUT))    {        vlc_cond_destroy(&out->wait);        vlc_mutex_destroy(&out->lock);        free(out);        out = NULL;    }    return out;}
开发者ID:0xheart0,项目名称:vlc,代码行数:30,


示例18: Close

/***************************************************************************** * Close: destroy interface stuff *****************************************************************************/static void Close(vlc_object_t *p_this){    intf_thread_t               *p_intf = (intf_thread_t*) p_this;    intf_sys_t                  *p_sys  = p_intf->p_sys;    var_DelCallback(pl_Get(p_intf), "activity", ItemChange, p_intf);    vlc_cancel(p_sys->thread);    vlc_join(p_sys->thread, NULL);    input_thread_t *p_input = pl_CurrentInput(p_intf);    if (p_input)    {        if (p_sys->b_state_cb)            var_DelCallback(p_input, "intf-event", PlayingChange, p_intf);        vlc_object_release(p_input);    }    int i;    for (i = 0; i < p_sys->i_songs; i++)        DeleteSong(&p_sys->p_queue[i]);    vlc_UrlClean(&p_sys->p_submit_url);#if 0 //NOT USED    free(p_sys->psz_nowp_host);    free(p_sys->psz_nowp_file);#endif    vlc_cond_destroy(&p_sys->wait);    vlc_mutex_destroy(&p_sys->lock);    free(p_sys);}
开发者ID:Kubink,项目名称:vlc,代码行数:33,


示例19: _DLL_InitTerm

unsigned long _System _DLL_InitTerm(unsigned long hmod, unsigned long flag){    VLC_UNUSED (hmod);    switch (flag)    {        case 0 :    /* Initialization */            if(_CRT_init() == -1)                return 0;            vlc_mutex_init (&super_mutex);            vlc_cond_init (&super_variable);            vlc_threadvar_create (&thread_key, NULL);            vlc_rwlock_init (&config_lock);            vlc_rwlock_init (&msg_lock);            vlc_CPU_init ();            return 1;        case 1 :    /* Termination */            vlc_rwlock_destroy (&msg_lock);            vlc_rwlock_destroy (&config_lock);            vlc_threadvar_delete (&thread_key);            vlc_cond_destroy (&super_variable);            vlc_mutex_destroy (&super_mutex);            _CRT_term();            return 1;    }    return 0;   /* Failed */}
开发者ID:Tilka,项目名称:vlc,代码行数:33,


示例20: Close

/***************************************************************************** * Close: close the target *****************************************************************************/static void Close( vlc_object_t * p_this ){    sout_access_out_t *p_access = (sout_access_out_t *) p_this;    sout_access_out_sys_t *p_sys = p_access->p_sys;    int i;    vlc_cancel( p_sys->p_thread->thread );    vlc_join( p_sys->p_thread->thread, NULL );    vlc_cond_destroy( &p_sys->p_thread->wait );    vlc_mutex_destroy( &p_sys->p_thread->lock );    block_FifoRelease( p_sys->p_thread->p_fifo_input );    block_FifoRelease( p_sys->p_thread->p_empty_blocks );    for( i = 0; i < 64; i++ ) /* RTMP_HEADER_STREAM_INDEX_MASK */    {        if( p_sys->p_thread->rtmp_headers_recv[i].body != NULL )        {            free( p_sys->p_thread->rtmp_headers_recv[i].body->body );            free( p_sys->p_thread->rtmp_headers_recv[i].body );        }    }    net_Close( p_sys->p_thread->fd );    vlc_object_release( p_sys->p_thread );    vlc_UrlClean( &p_sys->p_thread->url );    free( p_sys->p_thread->psz_application );    free( p_sys->p_thread->psz_media );    free( p_sys );}
开发者ID:banketree,项目名称:faplayer,代码行数:36,


示例21: Close

/***************************************************************************** * Close: close the plugin *****************************************************************************/static void Close( vlc_object_t *p_this ){    filter_t     *p_filter = (filter_t *)p_this;    filter_sys_t *p_sys = p_filter->p_sys;    /* Stop Goom Thread */    vlc_mutex_lock( &p_sys->p_thread->lock );    p_sys->p_thread->b_exit = true;    vlc_cond_signal( &p_sys->p_thread->wait );    vlc_mutex_unlock( &p_sys->p_thread->lock );    vlc_join( p_sys->p_thread->thread, NULL );    /* Free data */    aout_filter_RequestVout( p_filter, p_sys->p_thread->p_vout, NULL );    vlc_mutex_destroy( &p_sys->p_thread->lock );    vlc_cond_destroy( &p_sys->p_thread->wait );    while( p_sys->p_thread->i_blocks-- )    {        block_Release( p_sys->p_thread->pp_blocks[p_sys->p_thread->i_blocks] );    }    free( p_sys->p_thread );    free( p_sys );}
开发者ID:LTNGlobal-opensource,项目名称:vlc-sdi,代码行数:30,


示例22: E_

/***************************************************************************** * CloseEncoder: ffmpeg encoder destruction *****************************************************************************/void E_(CloseEncoder)( vlc_object_t *p_this ){    encoder_t *p_enc = (encoder_t *)p_this;    encoder_sys_t *p_sys = p_enc->p_sys;#if LIBAVCODEC_BUILD >= 4702    if ( p_sys->b_inited && p_enc->i_threads >= 1 )    {        int i;        struct thread_context_t ** pp_contexts =                (struct thread_context_t **)p_sys->p_context->thread_opaque;        for ( i = 0; i < p_enc->i_threads; i++ )        {            pp_contexts[i]->b_die = 1;            vlc_cond_signal( &pp_contexts[i]->cond );            vlc_thread_join( pp_contexts[i] );            vlc_mutex_destroy( &pp_contexts[i]->lock );            vlc_cond_destroy( &pp_contexts[i]->cond );            vlc_object_destroy( pp_contexts[i] );        }        free( pp_contexts );    }#endif    avcodec_close( p_sys->p_context );    av_free( p_sys->p_context );    if( p_sys->p_buffer ) free( p_sys->p_buffer );    if( p_sys->p_buffer_out ) free( p_sys->p_buffer_out );    free( p_sys );}
开发者ID:forthyen,项目名称:SDesk,代码行数:36,


示例23: Close

/***************************************************************************** * Close: destroy interface stuff *****************************************************************************/static void Close(vlc_object_t *p_this){    intf_thread_t               *p_intf = (intf_thread_t*) p_this;    intf_sys_t                  *p_sys  = p_intf->p_sys;    vlc_cancel(p_sys->thread);    vlc_join(p_sys->thread, NULL);    var_DelCallback(pl_Get(p_intf), "input-current", ItemChange, p_intf);    if (p_sys->p_input != NULL)    {        var_DelCallback(p_sys->p_input, "intf-event", PlayingChange, p_intf);        vlc_object_release(p_sys->p_input);    }    int i;    for (i = 0; i < p_sys->i_songs; i++)        DeleteSong(&p_sys->p_queue[i]);    vlc_UrlClean(&p_sys->p_submit_url);    vlc_UrlClean(&p_sys->p_nowp_url);    vlc_cond_destroy(&p_sys->wait);    vlc_mutex_destroy(&p_sys->lock);    free(p_sys);}
开发者ID:0xheart0,项目名称:vlc,代码行数:28,


示例24: libvlc_media_release

/************************************************************************** * Delete a media descriptor object **************************************************************************/void libvlc_media_release( libvlc_media_t *p_md ){    if (!p_md)        return;    p_md->i_refcount--;    if( p_md->i_refcount > 0 )        return;    if( p_md->p_subitems )        libvlc_media_list_release( p_md->p_subitems );    uninstall_input_item_observer( p_md );    vlc_gc_decref( p_md->p_input_item );    vlc_cond_destroy( &p_md->parsed_cond );    vlc_mutex_destroy( &p_md->parsed_lock );    /* Construct the event */    libvlc_event_t event;    event.type = libvlc_MediaFreed;    event.u.media_freed.md = p_md;    /* Send the event */    libvlc_event_send( p_md->p_event_manager, &event );    libvlc_event_manager_release( p_md->p_event_manager );    free( p_md );}
开发者ID:LDiracDelta,项目名称:vlc_censor_plugin,代码行数:34,


示例25: playlist_preparser_Delete

void playlist_preparser_Delete( playlist_preparser_t *p_preparser ){    vlc_mutex_lock( &p_preparser->lock );    /* Remove pending item to speed up preparser thread exit */    while( p_preparser->i_waiting > 0 )    {        preparser_entry_t *p_entry = p_preparser->pp_waiting[0];        vlc_gc_decref( p_entry->p_item );        free( p_entry );        REMOVE_ELEM( p_preparser->pp_waiting, p_preparser->i_waiting, 0 );    }    vlc_sem_post( &p_preparser->item_done );    while( p_preparser->b_live )        vlc_cond_wait( &p_preparser->wait, &p_preparser->lock );    vlc_mutex_unlock( &p_preparser->lock );    /* Destroy the item preparser */    vlc_sem_destroy( &p_preparser->item_done );    vlc_cond_destroy( &p_preparser->wait );    vlc_mutex_destroy( &p_preparser->lock );    if( p_preparser->p_fetcher != NULL )        playlist_fetcher_Delete( p_preparser->p_fetcher );    free( p_preparser );}
开发者ID:mingyueqingquan,项目名称:vlc,代码行数:27,


示例26: ReleaseDLSys

static void ReleaseDLSys(vlc_object_t *obj){    vlc_object_t *libvlc = VLC_OBJECT(obj->p_libvlc);    vlc_mutex_lock(&sys_lock);    struct decklink_sys_t *sys = (struct decklink_sys_t*)var_GetAddress(libvlc, "decklink-sys");    if (--sys->users == 0) {        msg_Dbg(obj, "Destroying decklink data");        vlc_mutex_destroy(&sys->lock);        vlc_cond_destroy(&sys->cond);        if (sys->p_output) {            sys->p_output->StopScheduledPlayback(0, NULL, 0);            sys->p_output->DisableVideoOutput();            sys->p_output->DisableAudioOutput();            sys->p_output->Release();        }        free(sys);        var_Destroy(libvlc, "decklink-sys");    }    vlc_mutex_unlock(&sys_lock);}
开发者ID:Adatan,项目名称:vlc,代码行数:26,


示例27: _CRT_INIT

//BOOL WINAPI DllMain (HINSTANCE hinstDll, DWORD fdwReason, LPVOID lpvReserved)BOOL WINAPI _CRT_INIT (HINSTANCE hinstDll, DWORD fdwReason, LPVOID lpvReserved)   // sunqueen modify{    (void) hinstDll;    (void) lpvReserved;    switch (fdwReason)    {        case DLL_PROCESS_ATTACH:            InitializeCriticalSection (&clock_lock);            vlc_mutex_init (&super_mutex);            vlc_cond_init (&super_variable);            vlc_threadvar_create (&thread_key, NULL);            vlc_rwlock_init (&config_lock);            vlc_CPU_init ();            break;        case DLL_PROCESS_DETACH:            vlc_rwlock_destroy (&config_lock);            vlc_threadvar_delete (&thread_key);            vlc_cond_destroy (&super_variable);            vlc_mutex_destroy (&super_mutex);            DeleteCriticalSection (&clock_lock);            break;    }    return TRUE;}
开发者ID:12307,项目名称:VLC-for-VS2010,代码行数:27,


示例28: Close

//---------------------------------------------------------------------------// Close: destroy interface//---------------------------------------------------------------------------static void Close( vlc_object_t *p_this ){    intf_thread_t *p_intf = (intf_thread_t *)p_this;    msg_Dbg( p_intf, "closing skins2 module" );    /* Terminate input to ensure that our window provider is released. */    playlist_Deactivate( p_intf->p_sys->p_playlist );    vlc_mutex_lock( &skin_load.mutex );    skin_load.intf = NULL;    vlc_mutex_unlock( &skin_load.mutex);    AsyncQueue *pQueue = p_intf->p_sys->p_queue;    if( pQueue )    {        CmdGeneric *pCmd = new CmdExitLoop( p_intf );        if( pCmd )            pQueue->push( CmdGenericPtr( pCmd ) );    }    else    {        msg_Err( p_intf, "thread found already stopped (weird!)" );    }    vlc_join( p_intf->p_sys->thread, NULL );    vlc_mutex_destroy( &p_intf->p_sys->init_lock );    vlc_cond_destroy( &p_intf->p_sys->init_wait );    // Destroy structure    free( p_intf->p_sys );}
开发者ID:371816210,项目名称:vlc_vlc,代码行数:36,



注:本文中的vlc_cond_destroy函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ vlc_cond_init函数代码示例
C++ vlc_clone函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。