diff --git a/lib/media.c b/lib/media.c index 36dee3b9e52f8268f5359cccf6d1c35b7752bfca..d4e3ba7a62141040bafea8af2aba26839a75397d 100644 --- a/lib/media.c +++ b/lib/media.c @@ -394,7 +394,7 @@ libvlc_media_t * libvlc_media_new_from_input_item( p_md->p_libvlc_instance = p_instance; p_md->p_input_item = p_input_item; - vlc_atomic_rc_init(&p_md->refcount); + p_md->i_refcount = 1; vlc_cond_init(&p_md->parsed_cond); vlc_mutex_init(&p_md->parsed_lock); @@ -547,7 +547,9 @@ void libvlc_media_release( libvlc_media_t *p_md ) if (!p_md) return; - if(!vlc_atomic_rc_dec( &p_md->refcount )) + p_md->i_refcount--; + + if( p_md->i_refcount > 0 ) return; uninstall_input_item_observer( p_md ); @@ -583,7 +585,7 @@ void libvlc_media_release( libvlc_media_t *p_md ) void libvlc_media_retain( libvlc_media_t *p_md ) { assert (p_md); - vlc_atomic_rc_inc(&p_md->refcount); + p_md->i_refcount++; } /************************************************************************** diff --git a/lib/media_internal.h b/lib/media_internal.h index cfeb0561785b5d6a717245b32724473030366d93..aefc731c68b877c21ac10ca24a31e4a74262443b 100644 --- a/lib/media_internal.h +++ b/lib/media_internal.h @@ -29,13 +29,12 @@ #include <vlc_common.h> #include <vlc_input.h> -#include <vlc_atomic.h> struct libvlc_media_t { libvlc_event_manager_t event_manager; input_item_t *p_input_item; - vlc_atomic_rc_t refcount; + int i_refcount; libvlc_instance_t *p_libvlc_instance; libvlc_state_t state; VLC_FORWARD_DECLARE_OBJECT(libvlc_media_list_t*) p_subitems; /* A media descriptor can have Sub items. This is the only dependancy we really have on media_list */