Mercurial > libavcodec.hg
annotate ac3.h @ 2470:06aafb585f69 libavcodec
require a few valid and equal mp3 headers for resync
author | michael |
---|---|
date | Sat, 29 Jan 2005 23:59:32 +0000 |
parents | 785b6b4682b5 |
children | ef2149182f1c |
rev | line source |
---|---|
782 | 1 /* |
2 * Common code between AC3 encoder and decoder | |
3 * Copyright (c) 2000, 2001, 2002 Fabrice Bellard. | |
4 * | |
5 * This library is free software; you can redistribute it and/or | |
6 * modify it under the terms of the GNU Lesser General Public | |
7 * License as published by the Free Software Foundation; either | |
8 * version 2 of the License, or (at your option) any later version. | |
9 * | |
10 * This library is distributed in the hope that it will be useful, | |
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
13 * Lesser General Public License for more details. | |
14 * | |
15 * You should have received a copy of the GNU Lesser General Public | |
16 * License along with this library; if not, write to the Free Software | |
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 */ | |
19 | |
1106 | 20 /** |
21 * @file ac3.h | |
22 * Common code between AC3 encoder and decoder. | |
23 */ | |
24 | |
782 | 25 #define AC3_MAX_CODED_FRAME_SIZE 3840 /* in bytes */ |
26 #define AC3_MAX_CHANNELS 6 /* including LFE channel */ | |
27 | |
28 #define NB_BLOCKS 6 /* number of PCM blocks inside an AC3 frame */ | |
29 #define AC3_FRAME_SIZE (NB_BLOCKS * 256) | |
30 | |
31 /* exponent encoding strategy */ | |
32 #define EXP_REUSE 0 | |
33 #define EXP_NEW 1 | |
34 | |
35 #define EXP_D15 1 | |
36 #define EXP_D25 2 | |
37 #define EXP_D45 3 | |
38 | |
39 typedef struct AC3BitAllocParameters { | |
40 int fscod; /* frequency */ | |
41 int halfratecod; | |
42 int sgain, sdecay, fdecay, dbknee, floor; | |
43 int cplfleak, cplsleak; | |
44 } AC3BitAllocParameters; | |
45 | |
2280
785b6b4682b5
* these vars could be either static or extern (compilation fix gcc-3.5)
kabi
parents:
1106
diff
changeset
|
46 #if 0 |
1064 | 47 extern const uint16_t ac3_freqs[3]; |
48 extern const uint16_t ac3_bitratetab[19]; | |
49 extern const int16_t ac3_window[256]; | |
50 extern const uint8_t sdecaytab[4]; | |
51 extern const uint8_t fdecaytab[4]; | |
52 extern const uint16_t sgaintab[4]; | |
53 extern const uint16_t dbkneetab[4]; | |
54 extern const uint16_t floortab[8]; | |
55 extern const uint16_t fgaintab[8]; | |
2280
785b6b4682b5
* these vars could be either static or extern (compilation fix gcc-3.5)
kabi
parents:
1106
diff
changeset
|
56 #endif |
782 | 57 |
58 void ac3_common_init(void); | |
1064 | 59 void ac3_parametric_bit_allocation(AC3BitAllocParameters *s, uint8_t *bap, |
60 int8_t *exp, int start, int end, | |
782 | 61 int snroffset, int fgain, int is_lfe, |
62 int deltbae,int deltnseg, | |
1064 | 63 uint8_t *deltoffst, uint8_t *deltlen, uint8_t *deltba); |