]> git.sesse.net Git - vlc/blobdiff - src/audio_output/aout_internal.h
Galaktos does no longer exist.
[vlc] / src / audio_output / aout_internal.h
index 9ac424275532afa8dc0b7bdbf1293d92a325351c..d18929a234ba5362d7a0a80dcefda5be46d01851 100644 (file)
         /* 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 );
@@ -133,8 +193,10 @@ int aout_VolumeNoneSet( aout_instance_t *, audio_volume_t );
 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 * );