FFmpeg
Loading...
Searching...
No Matches
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
27static 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};
28static 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};
29static 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};
30static 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};
31static 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
35static 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
41static 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
48static 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
59 0, 0, -3, -4, -7, -15, -31
60};
61
62static 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 */
static const uint8_t mpc7_scfi[MPC7_SCFI_SIZE *2]
Definition mpc7data.h:35
static const int8_t mpc7_idx32[]
Definition mpc7data.h:29
#define MPC7_DSCF_SIZE
Definition mpc7data.h:39
static const uint8_t mpc7_hdr[MPC7_HDR_SIZE *2]
Definition mpc7data.h:48
static const uint8_t mpc7_dscf[MPC7_DSCF_SIZE *2]
Definition mpc7data.h:41
static const uint8_t mpc7_quant_vlc_sizes[MPC7_QUANT_VLC_TABLES]
Definition mpc7data.h:54
#define MPC7_QUANT_VLC_TABLES
Definition mpc7data.h:53
static const uint8_t mpc7_quant_vlcs[177 *2 *2]
Definition mpc7data.h:62
#define MPC7_SCFI_SIZE
Definition mpc7data.h:33
static const int8_t mpc7_idx51[]
Definition mpc7data.h:31
static const int8_t mpc7_idx30[]
Definition mpc7data.h:27
static const int8_t mpc7_quant_vlc_off[MPC7_QUANT_VLC_TABLES]
Definition mpc7data.h:58
#define MPC7_HDR_SIZE
Definition mpc7data.h:46
static const int8_t mpc7_idx50[]
Definition mpc7data.h:30
static const int8_t mpc7_idx31[]
Definition mpc7data.h:28