# include "config.h"
#endif
+#include <assert.h>
+
#include <vlc_common.h>
-#include <vlc_interface.h>
+#include <vlc_dialog.h>
#ifdef HAVE_ALLOCA_H
# include <alloca.h>
memcpy( &p_filter->input, p_input_format, sizeof(audio_sample_format_t) );
memcpy( &p_filter->output, p_output_format,
sizeof(audio_sample_format_t) );
- p_filter->p_module = module_need( p_filter, "audio filter", NULL, 0 );
+ p_filter->p_module = module_need( p_filter, "audio filter", NULL, false );
if ( p_filter->p_module == NULL )
{
vlc_object_detach( p_filter );
if( *pi_nb_filters + 1 > AOUT_MAX_FILTERS )
{
msg_Err( p_aout, "max filter reached (%d)", AOUT_MAX_FILTERS );
- intf_UserFatal( p_aout, false, _("Audio filtering failed"),
- _("The maximum number of filters (%d) was reached."),
- AOUT_MAX_FILTERS );
+ dialog_Fatal( p_aout, _("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, false, _("Audio filtering failed"),
- _("The maximum number of filters (%d) was reached."),
- AOUT_MAX_FILTERS );
+ dialog_Fatal( p_aout, _("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, false, _("Audio filtering failed"),
- _("The maximum number of filters (%d) was reached."),
- AOUT_MAX_FILTERS );
+ dialog_Fatal( p_aout, _("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,
for ( i = 0; i < i_nb_filters; i++ )
{
- module_unneed( pp_filters[i], pp_filters[i]->p_module );
- vlc_object_detach( pp_filters[i] );
- vlc_object_release( pp_filters[i] );
+ aout_filter_t *p_filter = pp_filters[i];
+
+ module_unneed( p_filter, p_filter->p_module );
+ free( p_filter->p_owner );
+ vlc_object_detach( p_filter );
+ vlc_object_release( p_filter );
}
}
p_first_alloc->i_bytes_per_sec = __MAX(
p_first_alloc->i_bytes_per_sec,
i_input_size );
- p_filter->output_alloc.i_alloc_type = AOUT_ALLOC_NONE;
+ p_filter->output_alloc.b_alloc = false;
}
else
{
/* We're gonna need a buffer allocation. */
memcpy( &p_filter->output_alloc, p_first_alloc,
sizeof(aout_alloc_t) );
- p_first_alloc->i_alloc_type = AOUT_ALLOC_STACK;
+ p_first_alloc->b_alloc = true;
p_first_alloc->i_bytes_per_sec = i_input_size;
}
}
/* Resamplers can produce slightly more samples than (i_in_nb *
* p_filter->output.i_rate / p_filter->input.i_rate) so we need
* slightly bigger buffers. */
- aout_BufferAlloc( &p_filter->output_alloc,
- ((mtime_t)(*pp_input_buffer)->i_nb_samples + 2)
- * 1000000 / p_filter->input.i_rate,
- *pp_input_buffer, p_output_buffer );
+ p_output_buffer = aout_BufferAlloc( &p_filter->output_alloc,
+ ((mtime_t)(*pp_input_buffer)->i_nb_samples + 2)
+ * 1000000 / p_filter->input.i_rate,
+ *pp_input_buffer );
if( p_output_buffer == NULL )
return;
*pp_input_buffer = p_output_buffer;
}
}
+}
- assert( (*pp_input_buffer) == NULL || (*pp_input_buffer)->i_alloc_type != AOUT_ALLOC_STACK );
+/*****************************************************************************
+ * aout_filter_RequestVout
+ *****************************************************************************/
+vout_thread_t *aout_filter_RequestVout( aout_filter_t *p_filter,
+ vout_thread_t *p_vout, video_format_t *p_fmt )
+{
+ if( !p_filter->request_vout.pf_request_vout )
+ return NULL;
+ return p_filter->request_vout.pf_request_vout( p_filter->request_vout.p_private,
+ p_vout, p_fmt, true );
}