#include <stddef.h>
#include <vlc_common.h>
#include <libvlc.h>
+#include <vlc_modules.h>
-#ifdef HAVE_ALLOCA_H
-# include <alloca.h>
-#endif
#include <vlc_aout.h>
#include "aout_internal.h"
/*****************************************************************************
if( !p_mixer->module )
{
msg_Err( p_aout, "no suitable audio mixer" );
- vlc_object_detach( p_mixer );
free( p_mixer->input );
vlc_object_release( p_mixer );
return VLC_EGENERIC;
if( !p_aout->p_mixer )
return;
- vlc_object_detach( p_aout->p_mixer );
-
module_unneed( p_aout->p_mixer, p_aout->p_mixer->module );
free( p_aout->p_mixer->input );
}
- aout_lock_output_fifo( p_aout );
aout_lock_input_fifos( p_aout );
+ aout_lock_output_fifo( p_aout );
/* Retrieve the date of the next buffer. */
exact_start_date = p_aout->output.fifo.end_date;
{
/* Additionally check that p_first_byte_to_mix is well
* located. */
- mtime_t i_nb_bytes = (start_date - p_buffer->i_pts)
+ mtime_t i_buffer = (start_date - p_buffer->i_pts)
* p_aout->p_mixer->fmt.i_bytes_per_frame
* p_aout->p_mixer->fmt.i_rate
/ p_aout->p_mixer->fmt.i_frame_length
}
mixer_nb_bytes = p_input->mixer.begin - p_buffer->p_buffer;
- if ( !((i_nb_bytes + p_aout->p_mixer->fmt.i_bytes_per_frame
+ if ( !((i_buffer + p_aout->p_mixer->fmt.i_bytes_per_frame
> mixer_nb_bytes) &&
- (i_nb_bytes < p_aout->p_mixer->fmt.i_bytes_per_frame
+ (i_buffer < p_aout->p_mixer->fmt.i_bytes_per_frame
+ mixer_nb_bytes)) )
{
msg_Warn( p_aout, "mixer start isn't output start (%"PRId64")",
- i_nb_bytes - mixer_nb_bytes );
+ i_buffer - mixer_nb_bytes );
/* Round to the nearest multiple */
- i_nb_bytes /= p_aout->p_mixer->fmt.i_bytes_per_frame;
- i_nb_bytes *= p_aout->p_mixer->fmt.i_bytes_per_frame;
- if( i_nb_bytes < 0 )
+ i_buffer /= p_aout->p_mixer->fmt.i_bytes_per_frame;
+ i_buffer *= p_aout->p_mixer->fmt.i_bytes_per_frame;
+ if( i_buffer < 0 )
{
/* Is it really the best way to do it ? */
aout_lock_output_fifo( p_aout );
break;
}
- p_input->mixer.begin = p_buffer->p_buffer + i_nb_bytes;
+ p_input->mixer.begin = p_buffer->p_buffer + i_buffer;
}
}
}
if ( p_aout->p_mixer->allocation.b_alloc )
{
p_output_buffer->i_nb_samples = p_aout->output.i_nb_samples;
- p_output_buffer->i_nb_bytes = p_aout->output.i_nb_samples
+ p_output_buffer->i_buffer = p_aout->output.i_nb_samples
* p_aout->p_mixer->fmt.i_bytes_per_frame
/ p_aout->p_mixer->fmt.i_frame_length;
}