FFmpeg
mpc7data.h
Go to the documentation of this file.
1 /*
2  * Musepack decoder
3  * Copyright (c) 2006 Konstantin Shishkov
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 #ifndef AVCODEC_MPC7DATA_H
23 #define AVCODEC_MPC7DATA_H
24 
25 #include <stdint.h>
26 
27 static const int8_t mpc7_idx30[] = { -1, 0, 1,-1, 0, 1,-1, 0, 1,-1, 0, 1,-1, 0, 1,-1, 0, 1,-1, 0, 1,-1, 0, 1,-1, 0, 1};
28 static const int8_t mpc7_idx31[] = { -1,-1,-1, 0, 0, 0, 1, 1, 1,-1,-1,-1, 0, 0, 0, 1, 1, 1,-1,-1,-1, 0, 0, 0, 1, 1, 1};
29 static const int8_t mpc7_idx32[] = { -1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1};
30 static const int8_t mpc7_idx50[] = { -2,-1, 0, 1, 2,-2,-1, 0, 1, 2,-2,-1, 0, 1, 2,-2,-1, 0, 1, 2,-2,-1, 0, 1, 2};
31 static const int8_t mpc7_idx51[] = { -2,-2,-2,-2,-2,-1,-1,-1,-1,-1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2};
32 
33 #define MPC7_SCFI_SIZE 4
34 #define MPC7_SCFI_BITS 3
35 static const uint8_t mpc7_scfi[MPC7_SCFI_SIZE * 2] = {
36  0x03, 2, 0x00, 3, 0x02, 3, 0x01, 1,
37 };
38 
39 #define MPC7_DSCF_SIZE 16
40 #define MPC7_DSCF_BITS 6
41 static const uint8_t mpc7_dscf[MPC7_DSCF_SIZE * 2] = {
42  0x05, 3, 0x01, 5, 0x0D, 5, 0x0B, 4, 0x09, 3, 0x06, 3, 0x00, 6, 0x0E, 6,
43  0x02, 5, 0x07, 4, 0x08, 3, 0x0F, 4, 0x04, 4, 0x0A, 4, 0x03, 5, 0x0C, 5,
44 };
45 
46 #define MPC7_HDR_SIZE 10
47 #define MPC7_HDR_BITS 9
48 static const uint8_t mpc7_hdr[MPC7_HDR_SIZE * 2] = {
49  0x04, 2, 0x03, 4, 0x02, 5, 0x07, 6, 0x00, 8,
50  0x09, 9, 0x08, 9, 0x01, 7, 0x06, 3, 0x05, 1,
51 };
52 
53 #define MPC7_QUANT_VLC_TABLES 7
55  27, 25, 7, 9, 15, 31, 63
56 };
57 
58 static const int8_t mpc7_quant_vlc_off[MPC7_QUANT_VLC_TABLES] = {
59  0, 0, -3, -4, -7, -15, -31
60 };
61 
62 static const uint8_t mpc7_quant_vlcs[177 * 2 * 2] = {
63  /* quant_vlc[0][0] - 27 entries */
64  0x07, 5, 0x13, 5, 0x17, 5, 0x0F, 5, 0x0B, 5, 0x03, 5, 0x15, 5,
65  0x05, 5, 0x19, 5, 0x01, 5, 0x09, 5, 0x11, 5, 0x0A, 4, 0x10, 4,
66  0x02, 6, 0x18, 6, 0x12, 6, 0x08, 6, 0x16, 4, 0x04, 4, 0x0C, 4,
67  0x0E, 4, 0x06, 6, 0x14, 6, 0x00, 6, 0x1A, 6, 0x0D, 3,
68  /* quant_vlc[0][1] - 27 entries */
69  0x0A, 4, 0x10, 4, 0x16, 4, 0x04, 4, 0x0C, 4, 0x0E, 4, 0x09, 6,
70  0x14, 8, 0x06, 8, 0x1A, 8, 0x00, 8, 0x05, 7, 0x15, 7, 0x17, 7,
71  0x03, 7, 0x18, 9, 0x02, 9, 0x12, 9, 0x08, 9, 0x13, 7, 0x19, 7,
72  0x11, 7, 0x07, 7, 0x0B, 7, 0x01, 7, 0x0F, 7, 0x0D, 1,
73  /* quant_vlc[1][0] - 25 entries */
74  0x03, 5, 0x13, 5, 0x15, 5, 0x0F, 5, 0x05, 5, 0x09, 5, 0x10, 4,
75  0x08, 4, 0x12, 4, 0x06, 4, 0x0E, 5, 0x02, 5, 0x0C, 3, 0x0A, 5,
76  0x16, 5, 0x18, 7, 0x00, 7, 0x14, 7, 0x04, 7, 0x17, 6, 0x01, 6,
77  0x0B, 4, 0x07, 4, 0x11, 4, 0x0D, 4,
78  /* quant_vlc[1][1] - 25 entries */
79  0x07, 3, 0x0B, 3, 0x11, 3, 0x0D, 3, 0x0C, 2, 0x16, 6, 0x0E, 6,
80  0x0A, 6, 0x02, 6, 0x05, 7, 0x09, 7, 0x15, 7, 0x0F, 7, 0x10, 5,
81  0x13, 7, 0x01, 7, 0x17, 7, 0x14, 10, 0x00, 10, 0x04, 10, 0x18, 10,
82  0x03, 8, 0x08, 5, 0x06, 5, 0x12, 5,
83  /* quant_vlc[2][0] - 7 entries */
84  0x02, 2, 0x03, 2, 0x01, 3, 0x05, 3, 0x00, 4, 0x06, 4, 0x04, 3,
85  /* quant_vlc[2][1] - 7 entries */
86  0x05, 3, 0x00, 5, 0x06, 5, 0x01, 4, 0x04, 2, 0x02, 2, 0x03, 2,
87  /* quant_vlc[3][0] - 9 entries */
88  0x01, 3, 0x07, 3, 0x08, 4, 0x00, 4, 0x06, 3, 0x02, 3, 0x05, 3,
89  0x03, 3, 0x04, 3,
90  /* quant_vlc[3][1] - 9 entries */
91  0x03, 2, 0x08, 5, 0x00, 5, 0x07, 4, 0x02, 3, 0x04, 2, 0x01, 4,
92  0x06, 4, 0x05, 3,
93  /* quant_vlc[4][0] - 15 entries */
94  0x05, 3, 0x08, 3, 0x06, 3, 0x07, 3, 0x02, 4, 0x0B, 4, 0x03, 4,
95  0x0D, 5, 0x01, 5, 0x0A, 4, 0x04, 4, 0x0E, 6, 0x00, 6, 0x0C, 5,
96  0x09, 4,
97  /* quant_vlc[4][1] - 15 entries */
98  0x04, 3, 0x03, 4, 0x0C, 5, 0x02, 5, 0x09, 3, 0x05, 3, 0x08, 3,
99  0x06, 3, 0x07, 3, 0x01, 6, 0x0E, 8, 0x00, 8, 0x0D, 7, 0x0B, 5,
100  0x0A, 4,
101  /* quant_vlc[5][0] - 31 entries */
102  0x0C, 4, 0x1A, 5, 0x01, 6, 0x1D, 6, 0x0D, 4, 0x10, 4, 0x11, 4,
103  0x0E, 4, 0x19, 5, 0x05, 5, 0x0F, 4, 0x1E, 7, 0x00, 7, 0x1C, 6,
104  0x06, 5, 0x18, 5, 0x07, 5, 0x17, 5, 0x09, 5, 0x02, 6, 0x03, 6,
105  0x08, 5, 0x16, 5, 0x14, 5, 0x0A, 5, 0x15, 5, 0x13, 5, 0x1B, 6,
106  0x04, 6, 0x0B, 5, 0x12, 5,
107  /* quant_vlc[5][1] - 31 entries */
108  0x0F, 3, 0x0A, 4, 0x14, 4, 0x17, 5, 0x07, 5, 0x13, 4, 0x0B, 4,
109  0x16, 5, 0x08, 5, 0x0C, 4, 0x12, 4, 0x11, 4, 0x0D, 4, 0x18, 6,
110  0x06, 6, 0x1B, 8, 0x1A, 8, 0x02, 10, 0x00, 13, 0x1D, 13, 0x01, 13,
111  0x1E, 13, 0x1C, 11, 0x03, 9, 0x04, 8, 0x05, 7, 0x19, 7, 0x0E, 4,
112  0x10, 4, 0x15, 5, 0x09, 5,
113  /* quant_vlc[6][0] - 63 entries */
114  0x18, 5, 0x25, 5, 0x19, 5, 0x24, 5, 0x23, 5, 0x1B, 5, 0x1D, 5,
115  0x1F, 5, 0x22, 5, 0x1C, 5, 0x1A, 5, 0x20, 5, 0x0B, 6, 0x3A, 7,
116  0x3E, 8, 0x00, 8, 0x1E, 5, 0x33, 6, 0x0C, 6, 0x21, 5, 0x04, 7,
117  0x05, 7, 0x32, 6, 0x39, 7, 0x38, 7, 0x0D, 6, 0x31, 6, 0x0E, 6,
118  0x3D, 8, 0x01, 8, 0x06, 7, 0x30, 6, 0x37, 7, 0x07, 7, 0x0F, 6,
119  0x2F, 6, 0x2E, 6, 0x10, 6, 0x3C, 8, 0x02, 8, 0x08, 7, 0x11, 6,
120  0x2D, 6, 0x2C, 6, 0x13, 6, 0x36, 7, 0x35, 7, 0x12, 6, 0x2B, 6,
121  0x29, 6, 0x14, 6, 0x15, 6, 0x0A, 7, 0x09, 7, 0x16, 6, 0x3B, 8,
122  0x03, 8, 0x34, 7, 0x2A, 6, 0x17, 6, 0x28, 6, 0x27, 6, 0x26, 6,
123  /* quant_vlc[6][1] - 63 entries */
124  0x20, 4, 0x2A, 5, 0x15, 5, 0x1F, 4, 0x29, 5, 0x0F, 6, 0x2F, 6,
125  0x28, 5, 0x16, 5, 0x07, 9, 0x36, 9, 0x08, 9, 0x39, 10, 0x38, 10,
126  0x32, 7, 0x2E, 6, 0x17, 5, 0x10, 6, 0x11, 6, 0x27, 5, 0x26, 5,
127  0x0C, 7, 0x0A, 8, 0x34, 8, 0x2D, 6, 0x18, 5, 0x12, 6, 0x2C, 6,
128  0x31, 7, 0x0D, 7, 0x13, 6, 0x19, 5, 0x25, 5, 0x1A, 5, 0x24, 5,
129  0x2B, 6, 0x05, 10, 0x06, 10, 0x35, 9, 0x33, 8, 0x30, 7, 0x1B, 5,
130  0x23, 5, 0x1C, 5, 0x14, 6, 0x0E, 7, 0x09, 9, 0x3A, 12, 0x00, 14,
131  0x3E, 14, 0x02, 14, 0x3C, 14, 0x04, 12, 0x3D, 14, 0x01, 14, 0x03, 14,
132  0x3B, 14, 0x37, 10, 0x0B, 8, 0x22, 5, 0x1D, 5, 0x21, 5, 0x1E, 5,
133 };
134 
135 #endif /* AVCODEC_MPC7DATA_H */
mpc7_scfi
static const uint8_t mpc7_scfi[MPC7_SCFI_SIZE *2]
Definition: mpc7data.h:35
mpc7_hdr
static const uint8_t mpc7_hdr[MPC7_HDR_SIZE *2]
Definition: mpc7data.h:48
mpc7_idx32
static const int8_t mpc7_idx32[]
Definition: mpc7data.h:29
mpc7_idx51
static const int8_t mpc7_idx51[]
Definition: mpc7data.h:31
mpc7_quant_vlcs
static const uint8_t mpc7_quant_vlcs[177 *2 *2]
Definition: mpc7data.h:62
MPC7_HDR_SIZE
#define MPC7_HDR_SIZE
Definition: mpc7data.h:46
MPC7_QUANT_VLC_TABLES
#define MPC7_QUANT_VLC_TABLES
Definition: mpc7data.h:53
MPC7_SCFI_SIZE
#define MPC7_SCFI_SIZE
Definition: mpc7data.h:33
mpc7_quant_vlc_sizes
static const uint8_t mpc7_quant_vlc_sizes[MPC7_QUANT_VLC_TABLES]
Definition: mpc7data.h:54
mpc7_idx31
static const int8_t mpc7_idx31[]
Definition: mpc7data.h:28
mpc7_idx30
static const int8_t mpc7_idx30[]
Definition: mpc7data.h:27
mpc7_dscf
static const uint8_t mpc7_dscf[MPC7_DSCF_SIZE *2]
Definition: mpc7data.h:41
mpc7_idx50
static const int8_t mpc7_idx50[]
Definition: mpc7data.h:30
MPC7_DSCF_SIZE
#define MPC7_DSCF_SIZE
Definition: mpc7data.h:39
mpc7_quant_vlc_off
static const int8_t mpc7_quant_vlc_off[MPC7_QUANT_VLC_TABLES]
Definition: mpc7data.h:58