示例#1
0
static void Destructor( gc_object_t *p_gc )
{
    input_resource_t *p_resource = vlc_priv( p_gc, input_resource_t );

    DestroySout( p_resource );
    DestroyVout( p_resource );
    DestroyAout( p_resource );

    vlc_mutex_destroy( &p_resource->lock_hold );
    vlc_mutex_destroy( &p_resource->lock );
    free( p_resource );
}
示例#2
0
void input_resource_Release( input_resource_t *p_resource )
{
    if( atomic_fetch_sub( &p_resource->refs, 1 ) != 1 )
        return;

    DestroySout( p_resource );
    DestroyVout( p_resource );
    if( p_resource->p_aout != NULL )
        aout_Destroy( p_resource->p_aout );

    vlc_mutex_destroy( &p_resource->lock_hold );
    vlc_mutex_destroy( &p_resource->lock );
    free( p_resource );
}