ffmpeg / libavcodec / ac3.h @ 983e3246
History | View | Annotate | Download (2.13 KB)
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 |
/**
|
21 |
* @file ac3.h
|
22 |
* Common code between AC3 encoder and decoder.
|
23 |
*/
|
24 |
|
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 |
|
46 |
extern const uint16_t ac3_freqs[3]; |
47 |
extern const uint16_t ac3_bitratetab[19]; |
48 |
extern const int16_t ac3_window[256]; |
49 |
extern const uint8_t sdecaytab[4]; |
50 |
extern const uint8_t fdecaytab[4]; |
51 |
extern const uint16_t sgaintab[4]; |
52 |
extern const uint16_t dbkneetab[4]; |
53 |
extern const uint16_t floortab[8]; |
54 |
extern const uint16_t fgaintab[8]; |
55 |
|
56 |
void ac3_common_init(void); |
57 |
void ac3_parametric_bit_allocation(AC3BitAllocParameters *s, uint8_t *bap,
|
58 |
int8_t *exp, int start, int end, |
59 |
int snroffset, int fgain, int is_lfe, |
60 |
int deltbae,int deltnseg, |
61 |
uint8_t *deltoffst, uint8_t *deltlen, uint8_t *deltba); |