X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Faudio_mixer%2Ftrivial.c;h=7fb0ea8ae5a4a8ec053503841983afe91ab47546;hb=fdcdeaa3da38b09860fa0d8e8398e27468660f19;hp=de911673422325b6164f582bff361c5ebab86572;hpb=6c9479be6c55fb23fb7bbfce02543e2bd8bce50b;p=vlc diff --git a/modules/audio_mixer/trivial.c b/modules/audio_mixer/trivial.c index de91167342..7fb0ea8ae5 100644 --- a/modules/audio_mixer/trivial.c +++ b/modules/audio_mixer/trivial.c @@ -29,17 +29,16 @@ # include "config.h" #endif -#include #include #include #include +#include /***************************************************************************** * Local prototypes *****************************************************************************/ -static int Create ( vlc_object_t * ); - -static void DoWork ( aout_mixer_t *, aout_buffer_t * ); +static int Create( vlc_object_t * ); +static void DoNothing( aout_mixer_t *, aout_buffer_t *p_buffer, float ); /***************************************************************************** * Module descriptor @@ -47,7 +46,7 @@ static void DoWork ( aout_mixer_t *, aout_buffer_t * ); vlc_module_begin () set_category( CAT_AUDIO ) set_subcategory( SUBCAT_AUDIO_MISC ) - set_description( N_("Trivial audio mixer") ) + set_description( N_("Dummy audio mixer") ) set_capability( "audio mixer", 1 ) set_callbacks( Create, NULL ) vlc_module_end () @@ -59,92 +58,14 @@ static int Create( vlc_object_t *p_this ) { aout_mixer_t *p_mixer = (aout_mixer_t *)p_this; - if ( p_mixer->fmt.i_format != VLC_CODEC_FL32 - && p_mixer->fmt.i_format != VLC_CODEC_FI32 ) - { - return -1; - } - - p_mixer->mix = DoWork; - + p_mixer->mix = DoNothing; return 0; } -/***************************************************************************** - * DoWork: mix a new output buffer - *****************************************************************************/ -static void DoWork( aout_mixer_t *p_mixer, aout_buffer_t * p_buffer ) +static void DoNothing( aout_mixer_t *p_mixer, aout_buffer_t *p_buffer, + float multiplier ) { - unsigned i = 0; - aout_mixer_input_t * p_input = p_mixer->input[i]; - int i_nb_channels = aout_FormatNbChannels( &p_mixer->fmt ); - int i_buffer = p_buffer->i_nb_samples * sizeof(int32_t) - * i_nb_channels; - uint8_t * p_in; - uint8_t * p_out; - - while ( p_input->is_invalid ) - { - p_input = p_mixer->input[++i]; - /* This can't crash because if no input has b_error == 0, the - * audio mixer cannot run and we can't be here. */ - } - p_in = p_input->begin; - p_out = p_buffer->p_buffer; - - for ( ; ; ) - { - ptrdiff_t i_available_bytes = (p_input->fifo.p_first->p_buffer - - p_in) - + p_input->fifo.p_first->i_nb_samples - * sizeof(int32_t) - * i_nb_channels; - - if ( i_available_bytes < i_buffer ) - { - aout_buffer_t * p_old_buffer; - - vlc_memcpy( p_out, p_in, i_available_bytes ); - i_buffer -= i_available_bytes; - p_out += i_available_bytes; - - /* Next buffer */ - p_old_buffer = aout_FifoPop( NULL, &p_input->fifo ); - aout_BufferFree( p_old_buffer ); - if ( p_input->fifo.p_first == NULL ) - { - msg_Err( p_mixer, "internal amix error" ); - return; - } - p_in = p_input->fifo.p_first->p_buffer; - } - else - { - vlc_memcpy( p_out, p_in, i_buffer ); - p_input->begin = p_in + i_buffer; - break; - } - } - - /* Empty other FIFOs to avoid a memory leak. */ - for ( i++; i < p_mixer->input_count; i++ ) - { - aout_fifo_t * p_fifo; - aout_buffer_t * p_deleted; - - p_input = p_mixer->input[i]; - if ( p_input->is_invalid ) - continue; - p_fifo = &p_input->fifo; - p_deleted = p_fifo->p_first; - while ( p_deleted != NULL ) - { - aout_buffer_t * p_next = p_deleted->p_next; - aout_BufferFree( p_deleted ); - p_deleted = p_next; - } - p_fifo->p_first = NULL; - p_fifo->pp_last = &p_fifo->p_first; - } + (void) p_mixer; + (void) p_buffer; + (void) multiplier; } -