1 /***************************************************************************
2 mad_adec.h - description
5 copyright : (C) 2001 by Jean-Paul Saman
7 ***************************************************************************/
9 /***************************************************************************
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
16 ***************************************************************************/
18 #ifndef _VLC_MAD_ADEC_H_
19 #define _VLC_MAD_ADEC_H_
21 /*****************************************************************************
22 * mad_adec_thread_t : mad decoder thread descriptor
23 *****************************************************************************/
25 enum mad_scaling { FAST_SCALING, MPG321_SCALING };
27 typedef struct mad_adec_thread_s
32 struct mad_decoder libmad_decoder;
33 mad_timer_t libmad_timer;
34 byte_t buffer[MAD_BUFFER_MDLEN];
39 vlc_thread_t thread_id; /* id for thread functions */
41 /* The bit stream structure handles the PES stream at the bit level */
42 bit_stream_t bit_stream;
47 decoder_fifo_t * p_fifo; /* stores the PES stream data */
48 data_packet_t * p_data;
50 /* Store i_pts for syncing audio frames */
51 mtime_t i_current_pts, i_next_pts;
56 aout_instance_t * p_aout; /* opaque */
57 aout_input_t * p_aout_input; /* opaque */
58 audio_sample_format_t output_format;
59 audio_date_t end_date;
61 enum mad_scaling audio_scaling;
65 /*****************************************************************************
67 *****************************************************************************/
68 vlc_thread_t mad_adec_CreateThread( decoder_fifo_t * p_fifo );