[vlc-devel] [PATCH 1/2] aout: use vlc_atomic_rc_t

Thomas Guillem thomas at gllm.fr
Fri Feb 21 16:34:51 CET 2020


Hi,

LGTM for the set.

I will apply on monday if no other objections.

On Fri, Feb 21, 2020, at 15:14, quentin.chateau at deepskycorp.com wrote:
> From: Quentin Chateau <quentin.chateau at deepskycorp.com>
> 
> ---
>  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 526489e5f6..60b11081b4 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);
> -- 
> 2.17.1
> 
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel


More information about the vlc-devel mailing list