Mercurial > libavcodec.hg
comparison ac3.h @ 782:dd7d5748d064 libavcodec
preparing integration of new AC3 decoder
author | bellard |
---|---|
date | Mon, 28 Oct 2002 00:39:05 +0000 |
parents | |
children | b32afefe7d33 |
comparison
equal
deleted
inserted
replaced
781:6f5e87957bcb | 782:dd7d5748d064 |
---|---|
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 | |
20 #define AC3_MAX_CODED_FRAME_SIZE 3840 /* in bytes */ | |
21 #define AC3_MAX_CHANNELS 6 /* including LFE channel */ | |
22 | |
23 #define NB_BLOCKS 6 /* number of PCM blocks inside an AC3 frame */ | |
24 #define AC3_FRAME_SIZE (NB_BLOCKS * 256) | |
25 | |
26 /* exponent encoding strategy */ | |
27 #define EXP_REUSE 0 | |
28 #define EXP_NEW 1 | |
29 | |
30 #define EXP_D15 1 | |
31 #define EXP_D25 2 | |
32 #define EXP_D45 3 | |
33 | |
34 typedef struct AC3BitAllocParameters { | |
35 int fscod; /* frequency */ | |
36 int halfratecod; | |
37 int sgain, sdecay, fdecay, dbknee, floor; | |
38 int cplfleak, cplsleak; | |
39 } AC3BitAllocParameters; | |
40 | |
41 extern const UINT16 ac3_freqs[3]; | |
42 extern const UINT16 ac3_bitratetab[19]; | |
43 extern const INT16 ac3_window[256]; | |
44 extern const UINT8 sdecaytab[4]; | |
45 extern const UINT8 fdecaytab[4]; | |
46 extern const UINT16 sgaintab[4]; | |
47 extern const UINT16 dbkneetab[4]; | |
48 extern const UINT16 floortab[8]; | |
49 extern const UINT16 fgaintab[8]; | |
50 | |
51 void ac3_common_init(void); | |
52 void ac3_parametric_bit_allocation(AC3BitAllocParameters *s, UINT8 *bap, | |
53 INT8 *exp, int start, int end, | |
54 int snroffset, int fgain, int is_lfe, | |
55 int deltbae,int deltnseg, | |
56 UINT8 *deltoffst, UINT8 *deltlen, UINT8 *deltba); |