/*****************************************************************************
* filters.c : audio output filters management
*****************************************************************************
- * Copyright (C) 2002-2004 the VideoLAN team
+ * Copyright (C) 2002-2007 the VideoLAN team
* $Id$
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
/*****************************************************************************
* Preamble
*****************************************************************************/
-#include <stdlib.h> /* calloc(), malloc(), free() */
-#include <string.h>
-
#include <vlc/vlc.h>
+#include <vlc_interface.h>
#ifdef HAVE_ALLOCA_H
# include <alloca.h>
#endif
-#include "audio_output.h"
+#include <vlc_aout.h>
#include "aout_internal.h"
/*****************************************************************************
if( *pi_nb_filters + 1 > AOUT_MAX_FILTERS )
{
msg_Err( p_aout, "max filter reached (%d)", AOUT_MAX_FILTERS );
+ intf_UserFatal( p_aout, VLC_FALSE, _("Audio filtering failed"),
+ _("The maximum number of filters (%d) was reached."),
+ AOUT_MAX_FILTERS );
return -1;
}
{
ReleaseFilter( pp_filters[0] );
msg_Err( p_aout, "max filter reached (%d)", AOUT_MAX_FILTERS );
+ intf_UserFatal( p_aout, VLC_FALSE, _("Audio filtering failed"),
+ _("The maximum number of filters (%d) was reached."),
+ AOUT_MAX_FILTERS );
return -1;
}
pp_filters[1] = FindFilter( p_aout, &pp_filters[0]->output,
{
ReleaseFilter( pp_filters[0] );
msg_Err( p_aout, "max filter reached (%d)", AOUT_MAX_FILTERS );
+ intf_UserFatal( p_aout, VLC_FALSE, _("Audio filtering failed"),
+ _("The maximum number of filters (%d) was reached."),
+ AOUT_MAX_FILTERS );
return -1;
}
pp_filters[1] = FindFilter( p_aout, &pp_filters[0]->output,
int i_nb_filters )
{
int i;
+ (void)p_aout;
for ( i = 0; i < i_nb_filters; i++ )
{
aout_filter_t * p_filter = pp_filters[i];
int i_output_size = p_filter->output.i_bytes_per_frame
- * p_filter->output.i_rate
+ * p_filter->output.i_rate * AOUT_MAX_INPUT_RATE
/ p_filter->output.i_frame_length;
int i_input_size = p_filter->input.i_bytes_per_frame
- * p_filter->input.i_rate
+ * p_filter->input.i_rate * AOUT_MAX_INPUT_RATE
/ p_filter->input.i_frame_length;
p_first_alloc->i_bytes_per_sec = __MAX( p_first_alloc->i_bytes_per_sec,
aout_BufferFree( *pp_input_buffer );
*pp_input_buffer = p_output_buffer;
}
+
+ if( p_output_buffer->i_nb_samples <= 0 )
+ break;
}
}