Mercurial > libavcodec.hg
annotate ac3dec_data.c @ 11923:2013535ff4e5 libavcodec
Rename PACK4x8() to PACK4UINT8().
| author | rbultje |
|---|---|
| date | Tue, 22 Jun 2010 20:57:00 +0000 |
| parents | 7dd2a45249a9 |
| children |
| rev | line source |
|---|---|
| 7032 | 1 /* |
|
7470
1a93d3bbe3ee
cosmetics: make all references to AC-3 capitalized and hyphenated
jbr
parents:
7033
diff
changeset
|
2 * AC-3 and E-AC-3 decoder tables |
| 7032 | 3 * Copyright (c) 2007 Bartlomiej Wolowiec <bartek.wolowiec@gmail.com> |
| 4 * | |
| 5 * This file is part of FFmpeg. | |
| 6 * | |
| 7 * FFmpeg is free software; you can redistribute it and/or | |
| 8 * modify it under the terms of the GNU Lesser General Public | |
| 9 * License as published by the Free Software Foundation; either | |
| 10 * version 2.1 of the License, or (at your option) any later version. | |
| 11 * | |
| 12 * FFmpeg is distributed in the hope that it will be useful, | |
| 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| 15 * Lesser General Public License for more details. | |
| 16 * | |
| 17 * You should have received a copy of the GNU Lesser General Public | |
| 18 * License along with FFmpeg; if not, write to the Free Software | |
| 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |
| 20 */ | |
| 21 | |
| 22 /** | |
|
11644
7dd2a45249a9
Remove explicit filename from Doxygen @file commands.
diego
parents:
11559
diff
changeset
|
23 * @file |
| 9978 | 24 * Tables taken directly from the AC-3 spec. |
| 7032 | 25 */ |
| 26 | |
| 27 #include "ac3dec_data.h" | |
| 28 #include "ac3.h" | |
| 29 | |
|
7472
83c16f531a90
Hardcode the table for ungrouping 3 values in 5 bits. It will be reused by
jbr
parents:
7470
diff
changeset
|
30 /** |
| 9978 | 31 * Table used to ungroup 3 values stored in 5 bits. |
| 32 * Used by bap=1 mantissas and GAQ. | |
|
7472
83c16f531a90
Hardcode the table for ungrouping 3 values in 5 bits. It will be reused by
jbr
parents:
7470
diff
changeset
|
33 * ff_ac3_ungroup_3_in_5_bits_tab[i] = { i/9, (i%9)/3, (i%9)%3 } |
|
83c16f531a90
Hardcode the table for ungrouping 3 values in 5 bits. It will be reused by
jbr
parents:
7470
diff
changeset
|
34 */ |
|
83c16f531a90
Hardcode the table for ungrouping 3 values in 5 bits. It will be reused by
jbr
parents:
7470
diff
changeset
|
35 const uint8_t ff_ac3_ungroup_3_in_5_bits_tab[32][3] = { |
|
83c16f531a90
Hardcode the table for ungrouping 3 values in 5 bits. It will be reused by
jbr
parents:
7470
diff
changeset
|
36 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 2 }, { 0, 1, 0 }, |
|
83c16f531a90
Hardcode the table for ungrouping 3 values in 5 bits. It will be reused by
jbr
parents:
7470
diff
changeset
|
37 { 0, 1, 1 }, { 0, 1, 2 }, { 0, 2, 0 }, { 0, 2, 1 }, |
|
83c16f531a90
Hardcode the table for ungrouping 3 values in 5 bits. It will be reused by
jbr
parents:
7470
diff
changeset
|
38 { 0, 2, 2 }, { 1, 0, 0 }, { 1, 0, 1 }, { 1, 0, 2 }, |
|
83c16f531a90
Hardcode the table for ungrouping 3 values in 5 bits. It will be reused by
jbr
parents:
7470
diff
changeset
|
39 { 1, 1, 0 }, { 1, 1, 1 }, { 1, 1, 2 }, { 1, 2, 0 }, |
|
83c16f531a90
Hardcode the table for ungrouping 3 values in 5 bits. It will be reused by
jbr
parents:
7470
diff
changeset
|
40 { 1, 2, 1 }, { 1, 2, 2 }, { 2, 0, 0 }, { 2, 0, 1 }, |
|
83c16f531a90
Hardcode the table for ungrouping 3 values in 5 bits. It will be reused by
jbr
parents:
7470
diff
changeset
|
41 { 2, 0, 2 }, { 2, 1, 0 }, { 2, 1, 1 }, { 2, 1, 2 }, |
|
83c16f531a90
Hardcode the table for ungrouping 3 values in 5 bits. It will be reused by
jbr
parents:
7470
diff
changeset
|
42 { 2, 2, 0 }, { 2, 2, 1 }, { 2, 2, 2 }, { 3, 0, 0 }, |
|
83c16f531a90
Hardcode the table for ungrouping 3 values in 5 bits. It will be reused by
jbr
parents:
7470
diff
changeset
|
43 { 3, 0, 1 }, { 3, 0, 2 }, { 3, 1, 0 }, { 3, 1, 1 } |
|
83c16f531a90
Hardcode the table for ungrouping 3 values in 5 bits. It will be reused by
jbr
parents:
7470
diff
changeset
|
44 }; |
|
83c16f531a90
Hardcode the table for ungrouping 3 values in 5 bits. It will be reused by
jbr
parents:
7470
diff
changeset
|
45 |
|
9980
ac31ff44d1a5
cosmetics: Reorder some tables/lines to make future diffs smaller.
diego
parents:
9978
diff
changeset
|
46 /** |
|
ac31ff44d1a5
cosmetics: Reorder some tables/lines to make future diffs smaller.
diego
parents:
9978
diff
changeset
|
47 * Table of bin locations for rematrixing bands |
|
ac31ff44d1a5
cosmetics: Reorder some tables/lines to make future diffs smaller.
diego
parents:
9978
diff
changeset
|
48 * reference: Section 7.5.2 Rematrixing : Frequency Band Definitions |
|
ac31ff44d1a5
cosmetics: Reorder some tables/lines to make future diffs smaller.
diego
parents:
9978
diff
changeset
|
49 */ |
|
ac31ff44d1a5
cosmetics: Reorder some tables/lines to make future diffs smaller.
diego
parents:
9978
diff
changeset
|
50 const uint8_t ff_ac3_rematrix_band_tab[5] = { 13, 25, 37, 61, 253 }; |
|
ac31ff44d1a5
cosmetics: Reorder some tables/lines to make future diffs smaller.
diego
parents:
9978
diff
changeset
|
51 |
| 7032 | 52 const uint8_t ff_eac3_hebap_tab[64] = { |
| 53 0, 1, 2, 3, 4, 5, 6, 7, 8, 8, | |
| 54 8, 8, 9, 9, 9, 10, 10, 10, 10, 11, | |
| 55 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, | |
| 56 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, | |
| 57 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, | |
| 58 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, | |
| 59 19, 19, 19, 19, | |
| 60 }; | |
| 61 | |
| 62 /** | |
| 63 * Table E2.16 Default Coupling Banding Structure | |
| 64 */ | |
| 65 const uint8_t ff_eac3_default_cpl_band_struct[18] = | |
| 66 { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1 }; | |
| 11559 | 67 |
| 68 /** | |
| 69 * Table E2.15 Default Spectral Extension Banding Structure | |
| 70 */ | |
| 71 const uint8_t ff_eac3_default_spx_band_struct[17] = | |
| 72 { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 }; |
