vlc | branch: master | Quentin Chateau <[email protected]> | Fri Feb 21 15:14:34 2020 +0100| [a23c75a1f48404e4891526c7ee4ec34c199bf6f7] | committer: Thomas Guillem
aout: use vlc_atomic_rc_t Signed-off-by: Thomas Guillem <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=a23c75a1f48404e4891526c7ee4ec34c199bf6f7 --- src/audio_output/aout_internal.h | 3 ++- src/audio_output/output.c | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/audio_output/aout_internal.h b/src/audio_output/aout_internal.h index 57b4f3264d..8b563012e2 100644 --- a/src/audio_output/aout_internal.h +++ b/src/audio_output/aout_internal.h @@ -25,6 +25,7 @@ # include <stdatomic.h> +# include <vlc_atomic.h> # include <vlc_viewpoint.h> # include "../clock/clock.h" @@ -97,7 +98,7 @@ typedef struct atomic_uint buffers_played; atomic_uchar restart; - atomic_uintptr_t refs; + vlc_atomic_rc_t rc; } aout_owner_t; typedef struct diff --git a/src/audio_output/output.c b/src/audio_output/output.c index d7d013c81d..472acc968f 100644 --- a/src/audio_output/output.c +++ b/src/audio_output/output.c @@ -30,6 +30,7 @@ #include <vlc_common.h> #include <vlc_aout.h> #include <vlc_modules.h> +#include <vlc_atomic.h> #include "libvlc.h" #include "aout_internal.h" @@ -222,7 +223,7 @@ audio_output_t *aout_New (vlc_object_t *parent) vlc_mutex_init (&owner->vp.lock); vlc_viewpoint_init (&owner->vp.value); atomic_init (&owner->vp.update, false); - atomic_init(&owner->refs, 0); + vlc_atomic_rc_init(&owner->rc); /* Audio output module callbacks */ var_Create (aout, "volume", VLC_VAR_FLOAT); @@ -347,7 +348,7 @@ audio_output_t *aout_Hold(audio_output_t *aout) { aout_owner_t *owner = aout_owner(aout); - atomic_fetch_add_explicit(&owner->refs, 1, memory_order_relaxed); + vlc_atomic_rc_inc(&owner->rc); return aout; } @@ -380,7 +381,7 @@ void aout_Release(audio_output_t *aout) { aout_owner_t *owner = aout_owner(aout); - if (atomic_fetch_sub_explicit(&owner->refs, 1, memory_order_release)) + if (!vlc_atomic_rc_dec(&owner->rc)) return; atomic_thread_fence(memory_order_acquire); _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
