X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Faudio_output%2Foutput.c;h=b799855b43db43ac012c2ce0837f088aac515b64;hb=418410c4cf946f467bee5e88361b2a071aeffa9b;hp=8e00ade69ebebf516b3adc78321a23b1c4501d06;hpb=2e0102d92da57379e9b65457b36c8e96f93f35b0;p=vlc diff --git a/src/audio_output/output.c b/src/audio_output/output.c index 8e00ade69e..b799855b43 100644 --- a/src/audio_output/output.c +++ b/src/audio_output/output.c @@ -24,12 +24,12 @@ /***************************************************************************** * Preamble *****************************************************************************/ -#include /* calloc(), malloc(), free() */ -#include - -#include +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif -#include "audio_output.h" +#include +#include #include "aout_internal.h" /***************************************************************************** @@ -156,7 +156,7 @@ int aout_OutputNew( aout_instance_t * p_aout, var_AddCallback( p_aout, "audio-channels", aout_ChannelsRestart, NULL ); } - val.b_bool = VLC_TRUE; + val.b_bool = true; var_Set( p_aout, "intf-change", val ); aout_FormatPrepare( &p_aout->output.output ); @@ -176,7 +176,7 @@ int aout_OutputNew( aout_instance_t * p_aout, { /* Non-S/PDIF mixer only deals with float32 or fixed32. */ p_aout->mixer.mixer.i_format - = (p_aout->p_libvlc_global->i_cpu & CPU_CAPABILITY_FPU) ? + = (vlc_CPU() & CPU_CAPABILITY_FPU) ? VLC_FOURCC('f','l','3','2') : VLC_FOURCC('f','i','3','2'); aout_FormatPrepare( &p_aout->mixer.mixer ); @@ -231,9 +231,12 @@ void aout_OutputDelete( aout_instance_t * p_aout ) aout_FiltersDestroyPipeline( p_aout, p_aout->output.pp_filters, p_aout->output.i_nb_filters ); + + vlc_mutex_lock( &p_aout->output_fifo_lock ); aout_FifoDestroy( p_aout, &p_aout->output.fifo ); + vlc_mutex_unlock( &p_aout->output_fifo_lock ); - p_aout->output.b_error = VLC_TRUE; + p_aout->output.b_error = true; } /***************************************************************************** @@ -269,7 +272,7 @@ void aout_OutputPlay( aout_instance_t * p_aout, aout_buffer_t * p_buffer ) *****************************************************************************/ aout_buffer_t * aout_OutputNextBuffer( aout_instance_t * p_aout, mtime_t start_date, - vlc_bool_t b_can_sleek ) + bool b_can_sleek ) { aout_buffer_t * p_buffer; @@ -283,8 +286,8 @@ aout_buffer_t * aout_OutputNextBuffer( aout_instance_t * p_aout, while ( p_buffer && p_buffer->start_date < (b_can_sleek ? start_date : mdate()) - AOUT_PTS_TOLERANCE ) { - msg_Dbg( p_aout, "audio output is too slow ("I64Fd"), " - "trashing "I64Fd"us", mdate() - p_buffer->start_date, + msg_Dbg( p_aout, "audio output is too slow (%"PRId64"), " + "trashing %"PRId64"us", mdate() - p_buffer->start_date, p_buffer->end_date - p_buffer->start_date ); p_buffer = p_buffer->p_next; aout_BufferFree( p_aout->output.fifo.p_first ); @@ -323,10 +326,12 @@ aout_buffer_t * aout_OutputNextBuffer( aout_instance_t * p_aout, * --Gibalou */ { + const mtime_t i_delta = p_buffer->start_date - start_date; vlc_mutex_unlock( &p_aout->output_fifo_lock ); + if ( !p_aout->output.b_starving ) - msg_Dbg( p_aout, "audio output is starving ("I64Fd"), " - "playing silence", p_buffer->start_date - start_date ); + msg_Dbg( p_aout, "audio output is starving (%"PRId64"), " + "playing silence", i_delta ); p_aout->output.b_starving = 1; return NULL; } @@ -341,7 +346,7 @@ aout_buffer_t * aout_OutputNextBuffer( aout_instance_t * p_aout, int i; mtime_t difference = start_date - p_buffer->start_date; msg_Warn( p_aout, "output date isn't PTS date, requesting " - "resampling ("I64Fd")", difference ); + "resampling (%"PRId64")", difference ); vlc_mutex_lock( &p_aout->input_fifos_lock ); for ( i = 0; i < p_aout->i_nb_inputs; i++ )