/* else printf("%s:%d\n", __FILE__, __LINE__); */ \
}
+struct aout_filter_owner_sys_t
+{
+ aout_instance_t *p_aout;
+ aout_input_t *p_input;
+};
+
+/** an input stream for the audio output */
+struct aout_input_t
+{
+ /* When this lock is taken, the pipeline cannot be changed by a
+ * third-party. */
+ vlc_mutex_t lock;
+
+ audio_sample_format_t input;
+ aout_alloc_t input_alloc;
+
+ /* pre-filters */
+ aout_filter_t * pp_filters[AOUT_MAX_FILTERS];
+ int i_nb_filters;
+
+ aout_filter_t * p_playback_rate_filter;
+
+ /* resamplers */
+ aout_filter_t * pp_resamplers[AOUT_MAX_FILTERS];
+ int i_nb_resamplers;
+ int i_resampling_type;
+ mtime_t i_resamp_start_date;
+ int i_resamp_start_drift;
+
+ /* Mixer information */
+ audio_replay_gain_t replay_gain;
+
+ /* If b_restart == 1, the input pipeline will be re-created. */
+ bool b_restart;
+
+ /* If b_error == 1, there is no input pipeline. */
+ bool b_error;
+
+ /* Did we just change the output format? (expect buffer inconsistencies) */
+ bool b_changed;
+
+ /* last rate from input */
+ int i_last_input_rate;
+
+ /* */
+ int i_buffer_lost;
+
+ /* */
+ bool b_paused;
+ mtime_t i_pause_date;
+
+ /* */
+ bool b_recycle_vout;
+ aout_request_vout_t request_vout;
+
+ /* */
+ aout_mixer_input_t mixer;
+ };
+
/****************************************************************************
* Prototypes
*****************************************************************************/
+
/* From input.c : */
-int aout_InputNew( aout_instance_t * p_aout, aout_input_t * p_input );
+int aout_InputNew( aout_instance_t * p_aout, aout_input_t * p_input, const aout_request_vout_t * );
int aout_InputDelete( aout_instance_t * p_aout, aout_input_t * p_input );
int aout_InputPlay( aout_instance_t * p_aout, aout_input_t * p_input,
aout_buffer_t * p_buffer, int i_input_rate );
int aout_VolumeNoneInfos( aout_instance_t *, audio_volume_t * );
/* From dec.c */
-#define aout_DecNew(a, b, c, d) __aout_DecNew(VLC_OBJECT(a), b, c, d)
-aout_input_t * __aout_DecNew( vlc_object_t *, aout_instance_t **, audio_sample_format_t *, audio_replay_gain_t * );
+#define aout_DecNew(a, b, c, d, e) __aout_DecNew(VLC_OBJECT(a), b, c, d, e)
+aout_input_t * __aout_DecNew( vlc_object_t *, aout_instance_t **,
+ audio_sample_format_t *, const audio_replay_gain_t *,
+ const aout_request_vout_t * );
int aout_DecDelete ( aout_instance_t *, aout_input_t * );
aout_buffer_t * aout_DecNewBuffer( aout_input_t *, size_t );
void aout_DecDeleteBuffer( aout_instance_t *, aout_input_t *, aout_buffer_t * );