[vlc-commits] aout: privatize the lock

Rémi Denis-Courmont git at videolan.org
Thu Aug 4 17:16:42 CEST 2011


vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Thu Aug  4 16:51:07 2011 +0300| [1022827bbae184a03b9dca82012f849d59a9710a] | committer: Rémi Denis-Courmont

aout: privatize the lock

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=1022827bbae184a03b9dca82012f849d59a9710a
---

 include/vlc_aout.h               |    2 --
 src/audio_output/aout_internal.h |    8 ++++++--
 src/audio_output/common.c        |    5 ++---
 src/audio_output/input.c         |    9 ++++-----
 src/audio_output/output.c        |   20 ++++++++++----------
 5 files changed, 22 insertions(+), 22 deletions(-)

diff --git a/include/vlc_aout.h b/include/vlc_aout.h
index a0791f8..5a978c9 100644
--- a/include/vlc_aout.h
+++ b/include/vlc_aout.h
@@ -163,8 +163,6 @@ struct audio_output
 {
     VLC_COMMON_MEMBERS
 
-    vlc_mutex_t             lock;
-
     audio_sample_format_t format; /**< Output format (plugin can modify it
         only when succesfully probed and not afterward) */
 
diff --git a/src/audio_output/aout_internal.h b/src/audio_output/aout_internal.h
index ab2eb1e..2b53fd7 100644
--- a/src/audio_output/aout_internal.h
+++ b/src/audio_output/aout_internal.h
@@ -92,6 +92,7 @@ struct aout_input_t
 
 typedef struct
 {
+    vlc_mutex_t lock;
     module_t *module; /**< Output plugin (or NULL if inactive) */
     aout_input_t *input;
 
@@ -205,13 +206,13 @@ void aout_unlock_check (unsigned);
 static inline void aout_lock( audio_output_t *p_aout )
 {
     aout_lock_check( OUTPUT_LOCK );
-    vlc_mutex_lock( &p_aout->lock );
+    vlc_mutex_lock( &aout_owner(p_aout)->lock );
 }
 
 static inline void aout_unlock( audio_output_t *p_aout )
 {
     aout_unlock_check( OUTPUT_LOCK );
-    vlc_mutex_unlock( &p_aout->lock );
+    vlc_mutex_unlock( &aout_owner(p_aout)->lock );
 }
 
 static inline void aout_lock_volume( audio_output_t *p_aout )
@@ -226,6 +227,9 @@ static inline void aout_unlock_volume( audio_output_t *p_aout )
     vlc_mutex_unlock( &aout_owner(p_aout)->volume.lock );
 }
 
+#define aout_assert_locked( aout ) \
+        vlc_assert_locked( &aout_owner(aout)->lock )
+
 /* Helpers */
 
 /**
diff --git a/src/audio_output/common.c b/src/audio_output/common.c
index 560be14..190b7fb 100644
--- a/src/audio_output/common.c
+++ b/src/audio_output/common.c
@@ -57,14 +57,13 @@ audio_output_t *aout_New( vlc_object_t * p_parent )
 
     aout_owner_t *owner = aout_owner (aout);
 
+    vlc_mutex_init (&owner->lock);
     owner->module = NULL;
     owner->input = NULL;
     vlc_mutex_init (&owner->volume.lock);
     owner->volume.multiplier = 1.0;
     owner->volume.mixer = NULL;
 
-    vlc_mutex_init (&aout->lock);
-
     aout_VolumeNoneInit (aout);
     vlc_object_set_destructor (aout, aout_Destructor);
     var_Create (aout, "intf-change", VLC_VAR_VOID);
@@ -81,7 +80,7 @@ static void aout_Destructor (vlc_object_t *obj)
     aout_owner_t *owner = aout_owner (aout);
 
     vlc_mutex_destroy (&owner->volume.lock);
-    vlc_mutex_destroy (&aout->lock);
+    vlc_mutex_destroy (&owner->lock);
 }
 
 #ifdef AOUT_DEBUG
diff --git a/src/audio_output/input.c b/src/audio_output/input.c
index d9edfd6..4cbc596 100644
--- a/src/audio_output/input.c
+++ b/src/audio_output/input.c
@@ -48,8 +48,6 @@
 
 #include "aout_internal.h"
 
-#define AOUT_ASSERT_LOCKED vlc_assert_locked( &p_aout->lock )
-
 static void inputFailure( audio_output_t *, aout_input_t *, const char * );
 static void inputDrop( aout_input_t *, aout_buffer_t * );
 static void inputResamplingStop( aout_input_t *p_input );
@@ -430,7 +428,7 @@ int aout_InputNew( audio_output_t * p_aout, aout_input_t * p_input, const aout_r
  *****************************************************************************/
 int aout_InputDelete( audio_output_t * p_aout, aout_input_t * p_input )
 {
-    AOUT_ASSERT_LOCKED;
+    aout_assert_locked( p_aout );
     if ( p_input->b_error )
         return 0;
 
@@ -458,7 +456,7 @@ int aout_InputDelete( audio_output_t * p_aout, aout_input_t * p_input )
  *****************************************************************************/
 void aout_InputCheckAndRestart( audio_output_t * p_aout, aout_input_t * p_input )
 {
-    AOUT_ASSERT_LOCKED;
+    aout_assert_locked( p_aout );
 
     if( !p_input->b_restart )
         return;
@@ -483,7 +481,8 @@ block_t *aout_InputPlay( audio_output_t *p_aout, aout_input_t *p_input,
                          block_t *p_buffer, int i_input_rate )
 {
     mtime_t start_date;
-    AOUT_ASSERT_LOCKED;
+
+    aout_assert_locked( p_aout );
 
     if( i_input_rate != INPUT_RATE_DEFAULT && p_input->p_playback_rate_filter == NULL )
     {
diff --git a/src/audio_output/output.c b/src/audio_output/output.c
index 34233cb..2a35615 100644
--- a/src/audio_output/output.c
+++ b/src/audio_output/output.c
@@ -48,7 +48,7 @@ int aout_OutputNew( audio_output_t *p_aout,
 {
     aout_owner_t *owner = aout_owner (p_aout);
 
-    vlc_assert_locked( &p_aout->lock );
+    aout_assert_locked( p_aout );
     p_aout->format = *p_format;
 
     /* Retrieve user defaults. */
@@ -206,7 +206,7 @@ void aout_OutputDelete( audio_output_t * p_aout )
 {
     aout_owner_t *owner = aout_owner (p_aout);
 
-    vlc_assert_locked( &p_aout->lock );
+    aout_assert_locked( p_aout );
 
     if (owner->module == NULL)
         return;
@@ -226,7 +226,7 @@ void aout_OutputPlay (audio_output_t *aout, block_t *block)
 {
     aout_owner_t *owner = aout_owner (aout);
 
-    vlc_assert_locked (&aout->lock);
+    aout_assert_locked (aout);
 
     aout_FiltersPlay (owner->filters, owner->nb_filters, &block);
     if (block == NULL)
@@ -247,7 +247,7 @@ void aout_OutputPlay (audio_output_t *aout, block_t *block)
  */
 void aout_OutputPause( audio_output_t *aout, bool pause, mtime_t date )
 {
-    vlc_assert_locked( &aout->lock );
+    aout_assert_locked( aout );
     if( aout->pf_pause != NULL )
         aout->pf_pause( aout, pause, date );
 }
@@ -260,7 +260,7 @@ void aout_OutputPause( audio_output_t *aout, bool pause, mtime_t date )
  */
 void aout_OutputFlush( audio_output_t *aout, bool wait )
 {
-    vlc_assert_locked( &aout->lock );
+    aout_assert_locked( aout );
 
     if( aout->pf_flush != NULL )
         aout->pf_flush( aout, wait );
@@ -287,7 +287,7 @@ void aout_VolumeNoneInit (audio_output_t *aout)
 {
     /* aout_New() -safely- calls this function without the lock, before any
      * other thread knows of this audio output instance.
-    vlc_assert_locked (&aout->lock); */
+    aout_assert_locked (aout); */
     aout->pf_volume_set = aout_VolumeNoneSet;
 }
 
@@ -298,7 +298,7 @@ static int aout_VolumeSoftSet (audio_output_t *aout, float volume, bool mute)
 {
     aout_owner_t *owner = aout_owner (aout);
 
-    vlc_assert_locked (&aout->lock);
+    aout_assert_locked (aout);
 
     /* Cubic mapping from software volume to amplification factor.
      * This provides a good tradeoff between low and high volume ranges.
@@ -326,7 +326,7 @@ void aout_VolumeSoftInit (audio_output_t *aout)
     audio_volume_t volume = var_InheritInteger (aout, "volume");
     bool mute = var_InheritBool (aout, "mute");
 
-    vlc_assert_locked (&aout->lock);
+    aout_assert_locked (aout);
     aout->pf_volume_set = aout_VolumeSoftSet;
     aout_VolumeSoftSet (aout, volume / (float)AOUT_VOLUME_DEFAULT, mute);
 }
@@ -338,7 +338,7 @@ void aout_VolumeSoftInit (audio_output_t *aout)
  */
 void aout_VolumeHardInit (audio_output_t *aout, aout_volume_cb setter)
 {
-    vlc_assert_locked (&aout->lock);
+    aout_assert_locked (aout);
     aout->pf_volume_set = setter;
 }
 
@@ -442,7 +442,7 @@ static block_t *aout_OutputSlice (audio_output_t *p_aout)
     const unsigned samples = p->samples;
     assert( samples > 0 );
 
-    vlc_assert_locked( &p_aout->lock );
+    aout_assert_locked( p_aout );
 
     /* Retrieve the date of the next buffer. */
     date_t exact_start_date = p->fifo.end_date;



More information about the vlc-commits mailing list