• Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1  /* ------------------------------------------------------------------
2   * Copyright (C) 1998-2009 PacketVideo
3   *
4   * Licensed under the Apache License, Version 2.0 (the "License");
5   * you may not use this file except in compliance with the License.
6   * You may obtain a copy of the License at
7   *
8   *      http://www.apache.org/licenses/LICENSE-2.0
9   *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
13   * express or implied.
14   * See the License for the specific language governing permissions
15   * and limitations under the License.
16   * -------------------------------------------------------------------
17   */
18  /*
19  ------------------------------------------------------------------------------
20     PacketVideo Corp.
21     MP3 Decoder Library
22  
23     Filename: pvmp3_dec_defs.h
24  
25       Date: 09/21/2007
26  
27  ------------------------------------------------------------------------------
28   REVISION HISTORY
29  
30   Description:
31  
32  ------------------------------------------------------------------------------
33   INCLUDE DESCRIPTION
34  
35   This include file has the mp3 decoder common defines.
36  
37  ------------------------------------------------------------------------------
38  */
39  
40  /*----------------------------------------------------------------------------
41  ; CONTINUE ONLY IF NOT ALREADY DEFINED
42  ----------------------------------------------------------------------------*/
43  #ifndef PVMP3_DEC_DEFS_H
44  #define PVMP3_DEC_DEFS_H
45  
46  /*----------------------------------------------------------------------------
47  ; INCLUDES
48  ----------------------------------------------------------------------------*/
49  #include "pvmp3_audio_type_defs.h"
50  #include "pvmp3decoder_api.h"
51  
52  /*----------------------------------------------------------------------------
53  ; MACROS
54  ; Define module specific macros here
55  ----------------------------------------------------------------------------*/
56  #define module(x, POW2)   ((x)&((POW2)-1))
57  
58  /*----------------------------------------------------------------------------
59  ; DEFINES
60  ; Include all pre-processor statements here.
61  ----------------------------------------------------------------------------*/
62  #define BUFSIZE   8192   // big enough to hold 4608 bytes == biggest mp3 frame
63  
64  #define CHAN           2
65  #define GRAN           2
66  
67  
68  #define SUBBANDS_NUMBER        32
69  #define FILTERBANK_BANDS       18
70  #define HAN_SIZE              512
71  
72  
73  /* MPEG Header Definitions - ID Bit Values */
74  
75  #define MPEG_1              0
76  #define MPEG_2              1
77  #define MPEG_2_5            2
78  #define INVALID_VERSION   (-1)
79  
80  /* MPEG Header Definitions - Mode Values */
81  
82  #define MPG_MD_STEREO           0
83  #define MPG_MD_JOINT_STEREO     1
84  #define MPG_MD_DUAL_CHANNEL     2
85  #define MPG_MD_MONO             3
86  
87  
88  
89  #define LEFT        0
90  #define RIGHT       1
91  
92  
93  #define SYNC_WORD         (int32)0x7ff
94  #define SYNC_WORD_LNGTH   11
95  
96  /*----------------------------------------------------------------------------
97  ; EXTERNAL VARIABLES REFERENCES
98  ; Declare variables used in this module but defined elsewhere
99  ----------------------------------------------------------------------------*/
100  
101  /*----------------------------------------------------------------------------
102  ; SIMPLE TYPEDEF'S
103  ----------------------------------------------------------------------------*/
104  
105  /*----------------------------------------------------------------------------
106  ; ENUMERATED TYPEDEF'S
107  ----------------------------------------------------------------------------*/
108  #ifdef __cplusplus
109  extern "C"
110  {
111  #endif
112  
113      /*----------------------------------------------------------------------------
114      ; STRUCTURES TYPEDEF'S
115      ----------------------------------------------------------------------------*/
116  
117      /* Header Information Structure */
118  
119      typedef struct
120      {
121          int32 version_x;
122          int32 layer_description;
123          int32 error_protection;
124          int32 bitrate_index;
125          int32 sampling_frequency;
126          int32 padding;
127          int32 extension;
128          int32 mode;
129          int32 mode_ext;
130          int32 copyright;
131          int32 original;
132          int32 emphasis;
133      } mp3Header;
134  
135  
136      /* Layer III side information. */
137  
138      typedef  struct
139      {
140          uint32 part2_3_length;
141          uint32 big_values;
142          int32 global_gain;
143          uint32 scalefac_compress;
144          uint32 window_switching_flag;
145          uint32 block_type;
146          uint32 mixed_block_flag;
147          uint32 table_select[3];
148          uint32 subblock_gain[3];
149          uint32 region0_count;
150          uint32 region1_count;
151          uint32 preflag;
152          uint32 scalefac_scale;
153          uint32 count1table_select;
154  
155      } granuleInfo;
156  
157      typedef  struct
158      {
159          uint32      scfsi[4];
160          granuleInfo gran[2];
161  
162      } channelInfo;
163  
164      /* Layer III side info. */
165  
166      typedef struct
167      {
168          uint32      main_data_begin;
169          uint32      private_bits;
170          channelInfo ch[2];
171  
172      } mp3SideInfo;
173  
174      /* Layer III scale factors. */
175      typedef struct
176      {
177          int32 l[23];            /* [cb] */
178          int32 s[3][13];         /* [window][cb] */
179  
180      } mp3ScaleFactors;
181  
182  
183  #ifdef __cplusplus
184  }
185  #endif
186  
187  /*----------------------------------------------------------------------------
188  ; GLOBAL FUNCTION DEFINITIONS
189  ; Function Prototype declaration
190  ----------------------------------------------------------------------------*/
191  
192  /*----------------------------------------------------------------------------
193  ; END
194  ----------------------------------------------------------------------------*/
195  
196  #endif
197  
198  
199  
200