56 0, 1, 2, 3, 4, 5, 6, 7,
57 8, 9, 10, 11, 12, 13, 14, 16,
58 17, 19, 21, 23, 25, 28, 31, 34,
59 37, 41, 45, 50, 55, 60, 66, 73,
60 80, 88, 97, 107, 118, 130, 143, 157,
61 173, 190, 209, 230, 253, 279, 307, 337,
62 371, 408, 449, 494, 544, 598, 658, 724,
63 796, 876, 963, 1060, 1166, 1282, 1411, 1552,
64 1707, 1878, 2066, 2272, 2499, 2749, 3024, 3327,
65 3660, 4026, 4428, 4871, 5358, 5894, 6484, 7132,
66 7845, 8630, 9493, 10442, 11487, 12635, 13899, 15289,
67 16818, 18500, 20350, 22385, 24623, 27086, 29794, 32767,
71 0, 1, 2, 3, 4, 5, 6, 7,
72 8, 9, 10, 11, 12, 13, 14, 15,
73 16, 17, 18, 19, 20, 21, 22, 23,
74 24, 25, 26, 27, 28, 29, 30, 31,
75 32, 33, 34, 35, 36, 37, 38, 39,
76 40, 41, 42, 43, 47, 51, 56, 61,
77 66, 72, 79, 86, 94, 102, 112, 122,
78 133, 145, 158, 173, 189, 206, 225, 245,
79 267, 292, 318, 348, 379, 414, 452, 493,
80 538, 587, 640, 699, 763, 832, 908, 991,
81 1081, 1180, 1288, 1405, 1534, 1673, 1826, 1993,
82 2175, 2373, 2590, 2826, 3084, 3365, 3672, 4008,
83 4373, 4772, 5208, 5683, 6202, 6767, 7385, 8059,
84 8794, 9597, 10472, 11428, 12471, 13609, 14851, 16206,
85 17685, 19298, 21060, 22981, 25078, 27367, 29864, 32589,
86 -29973, -26728, -23186, -19322, -15105, -10503, -5481, -1,
87 1, 1, 5481, 10503, 15105, 19322, 23186, 26728,
88 29973, -32589, -29864, -27367, -25078, -22981, -21060, -19298,
89 -17685, -16206, -14851, -13609, -12471, -11428, -10472, -9597,
90 -8794, -8059, -7385, -6767, -6202, -5683, -5208, -4772,
91 -4373, -4008, -3672, -3365, -3084, -2826, -2590, -2373,
92 -2175, -1993, -1826, -1673, -1534, -1405, -1288, -1180,
93 -1081, -991, -908, -832, -763, -699, -640, -587,
94 -538, -493, -452, -414, -379, -348, -318, -292,
95 -267, -245, -225, -206, -189, -173, -158, -145,
96 -133, -122, -112, -102, -94, -86, -79, -72,
97 -66, -61, -56, -51, -47, -43, -42, -41,
98 -40, -39, -38, -37, -36, -35, -34, -33,
99 -32, -31, -30, -29, -28, -27, -26, -25,
100 -24, -23, -22, -21, -20, -19, -18, -17,
101 -16, -15, -14, -13, -12, -11, -10, -9,
102 -8, -7, -6, -5, -4, -3, -2, -1
107 0x0, 0x1, 0x2, 0x3, 0x6, 0xA, 0xF, 0x15,
108 -0x15, -0xF, -0xA, -0x6, -0x3, -0x2, -0x1, 0x0
112 0x0, 0x1, 0x2, 0x3, 0x6, 0xA, 0xF, 0x15,
113 0x0, -0x1, -0x2, -0x3, -0x6, -0xA, -0xF, -0x15
117 0x000, 0x008, 0x010, 0x020, 0x030, 0x040, 0x050, 0x060, 0x070, 0x080,
118 0x090, 0x0A0, 0x0B0, 0x0C0, 0x0D0, 0x0E0, 0x0F0, 0x100, 0x110, 0x120,
119 0x130, 0x140, 0x150, 0x160, 0x170, 0x180, 0x190, 0x1A0, 0x1B0, 0x1C0,
120 0x1D0, 0x1E0, 0x1F0, 0x200, 0x208, 0x210, 0x218, 0x220, 0x228, 0x230,
121 0x238, 0x240, 0x248, 0x250, 0x258, 0x260, 0x268, 0x270, 0x278, 0x280,
122 0x288, 0x290, 0x298, 0x2A0, 0x2A8, 0x2B0, 0x2B8, 0x2C0, 0x2C8, 0x2D0,
123 0x2D8, 0x2E0, 0x2E8, 0x2F0, 0x2F8, 0x300, 0x308, 0x310, 0x318, 0x320,
124 0x328, 0x330, 0x338, 0x340, 0x348, 0x350, 0x358, 0x360, 0x368, 0x370,
125 0x378, 0x380, 0x388, 0x390, 0x398, 0x3A0, 0x3A8, 0x3B0, 0x3B8, 0x3C0,
126 0x3C8, 0x3D0, 0x3D8, 0x3E0, 0x3E8, 0x3F0, 0x3F8, 0x400, 0x440, 0x480,
127 0x4C0, 0x500, 0x540, 0x580, 0x5C0, 0x600, 0x640, 0x680, 0x6C0, 0x700,
128 0x740, 0x780, 0x7C0, 0x800, 0x900, 0xA00, 0xB00, 0xC00, 0xD00, 0xE00,
129 0xF00, 0x1000, 0x1400, 0x1800, 0x1C00, 0x2000, 0x3000, 0x4000
133 0, 2, 4, 6, 8, 10, 12, 15,
134 18, 21, 24, 28, 32, 36, 40, 44,
135 49, 54, 59, 64, 70, 76, 82, 88,
136 95, 102, 109, 116, 124, 132, 140, 148,
137 160, 170, 180, 190, 200, 210, 220, 230,
138 240, 255, 270, 285, 300, 320, 340, 360,
139 380, 400, 425, 450, 475, 500, 525, 550,
140 580, 610, 650, 700, 750, 800, 900, 1000,
141 -0, -2, -4, -6, -8, -10, -12, -15,
142 -18, -21, -24, -28, -32, -36, -40, -44,
143 -49, -54, -59, -64, -70, -76, -82, -88,
144 -95, -102,-109,-116,-124,-132,-140,-148,
145 -160,-170,-180,-190,-200,-210,-220,-230,
146 -240,-255,-270,-285,-300,-320,-340,-360,
147 -380,-400,-425,-450,-475,-500,-525,-550,
148 -580,-610,-650,-700,-750,-800,-900,-1000,
161 s->sample[0] =
s->sample[1] = 0;
167 for (
i = 0;
i < 128;
i++) {
178 s->sample[0] =
s->sample[1] = 0x80;
182 s->sample[0] =
s->sample[1] = 0x80;
193 for (
i = -128;
i < 128;
i++) {
200 for (
i = -128;
i < 128;
i++) {
201 int16_t cube = (
i *
i *
i) / 64;
202 s->array[
i+128] = cube;
212 for (
i = 0;
i < 127;
i++) {
242 int *got_frame_ptr,
AVPacket *avpkt)
244 int buf_size = avpkt->
size;
250 int16_t *output_samples, *samples_end;
253 if (stereo && (buf_size & 1))
294 output_samples = (int16_t *)
frame->data[0];
295 samples_end = output_samples +
out;
310 while (output_samples < samples_end) {
311 predictor[ch] +=
s->array[bytestream2_get_byteu(&gb)];
329 while (output_samples < samples_end) {
341 int shift[2] = { 4, 4 };
347 while (output_samples < samples_end) {
348 int diff = bytestream2_get_byteu(&gb);
354 shift[ch] -= (2 * n);
373 uint8_t *output_samples_u8 =
frame->data[0],
374 *samples_end_u8 = output_samples_u8 +
out;
375 while (output_samples_u8 < samples_end_u8) {
376 int n = bytestream2_get_byteu(&gb);
378 s->sample[0] +=
s->sol_table[n >> 4];
380 *output_samples_u8++ =
s->sample[0];
382 s->sample[stereo] +=
s->sol_table[n & 0x0F];
384 *output_samples_u8++ =
s->sample[stereo];
387 while (output_samples < samples_end) {
388 int n = bytestream2_get_byteu(&gb);
392 *output_samples++ =
s->sample[ch];
401 while (output_samples < samples_end) {
402 int8_t n = bytestream2_get_byteu(&gb);
406 s->sample[ch] +=
s->array[n + 128];
408 *output_samples++ =
s->sample[ch];
416 while (output_samples < samples_end) {
417 uint8_t n = bytestream2_get_byteu(&gb);
419 *output_samples++ =
s->sample[idx] += (unsigned)
s->array[n];
428 while (output_samples < samples_end) {
429 uint8_t n = bytestream2_get_byteu(&gb);
434 *output_samples++ =
s->sample[idx];
443 while (output_samples < samples_end) {
444 const uint8_t n = bytestream2_get_byteu(&gb);
449 s->sample[idx] +=
s->scale * (unsigned)
wady_table[n & 0x7f];
466 s->sample[0] =
s->sample[1] = 0;
469 #define DPCM_DECODER(id_, name_, long_name_) \
470 const FFCodec ff_ ## name_ ## _decoder = { \
472 CODEC_LONG_NAME(long_name_), \
473 .p.type = AVMEDIA_TYPE_AUDIO, \
475 .p.capabilities = AV_CODEC_CAP_DR1, \
476 .priv_data_size = sizeof(DPCMContext), \
477 .init = dpcm_decode_init, \
478 .flush = dpcm_flush, \
479 FF_CODEC_DECODE_CB(dpcm_decode_frame), \