typedef struct
{
+ vlc_mutex_t lock;
module_t *module; /**< Output plugin (or NULL if inactive) */
aout_input_t *input;
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 )
vlc_mutex_unlock( &aout_owner(p_aout)->volume.lock );
}
+#define aout_assert_locked( aout ) \
+ vlc_assert_locked( &aout_owner(aout)->lock )
+
/* Helpers */
/**
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);
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
#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 );
*****************************************************************************/
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;
*****************************************************************************/
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;
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 )
{
{
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. */
{
aout_owner_t *owner = aout_owner (p_aout);
- vlc_assert_locked( &p_aout->lock );
+ aout_assert_locked( p_aout );
if (owner->module == NULL)
return;
{
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)
*/
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 );
}
*/
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 );
{
/* 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;
}
{
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.
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);
}
*/
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;
}
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;