Changes made to mad plugin:
[vlc.git] / plugins / mad / mad_adec.h
1 /***************************************************************************
2              mad_adec.h  -  description
3                 -------------------
4     begin                : Mon Nov 5 2001
5     copyright            : (C) 2001 by Jean-Paul Saman
6     email                : jpsaman@wxs.nl
7  ***************************************************************************/
8
9 /***************************************************************************
10  *                                                                         *
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.                                   *
15  *                                                                         *
16  ***************************************************************************/
17
18 #ifndef _VLC_MAD_ADEC_H_
19 #define _VLC_MAD_ADEC_H_
20 /*****************************************************************************
21  * mad_adec_thread_t : mad decoder thread descriptor
22  *****************************************************************************/
23
24 // FIXME: Ugly define inside a decoder
25 #define ADEC_FRAME_SIZE (2*1152)
26 // MAD_BUFFER_MDLEN (511 + 2048 + MAD_BUFLEN_GUARD) and MAD_BUFLEN_GUARD is 8
27 #define MAD_BUFFER_SIZE (MAD_BUFFER_MDLEN)
28 //#define MAD_BUFFER_SIZE (ADEC_FRAME_SIZE*2)
29 #define MAD_OUTPUT_SIZE (ADEC_FRAME_SIZE*2)
30
31 typedef struct mad_adec_thread_s
32 {
33     /*
34      * Decoder properties
35      */
36     struct mad_decoder *libmad_decoder;
37     mad_timer_t         libmad_timer;  
38     byte_t              buffer[MAD_BUFFER_SIZE]; 
39    
40     /*
41      * Thread properties
42      */
43     vlc_thread_t        thread_id;                /* id for thread functions */
44
45     /*
46      * Input properties
47      */
48     decoder_fifo_t *    p_fifo;                /* stores the PES stream data */
49     /* The bit stream structure handles the PES stream at the bit level */
50     bit_stream_t        bit_stream;
51     decoder_config_t *  p_config;
52
53     /* Store i_pts for syncing audio frames */
54     mtime_t             i_current_pts, i_next_pts;
55
56     /*
57      * Output properties
58      */
59     aout_fifo_t *       p_aout_fifo; /* stores the decompressed audio frames */
60
61 } mad_adec_thread_t;
62
63 /*****************************************************************************
64  * Prototypes
65  *****************************************************************************/
66 vlc_thread_t            mad_adec_CreateThread( decoder_config_t * p_config );
67
68 #endif