31 #define AIC_HDR_SIZE 24
32 #define AIC_BAND_COEFFS (64 + 32 + 192 + 96)
47 8, 16, 19, 22, 22, 26, 26, 27,
48 16, 16, 22, 22, 26, 27, 27, 29,
49 19, 22, 26, 26, 27, 29, 29, 35,
50 22, 24, 27, 27, 29, 32, 34, 38,
51 26, 27, 29, 29, 32, 35, 38, 46,
52 27, 29, 34, 34, 35, 40, 46, 56,
53 29, 34, 34, 37, 40, 48, 56, 69,
54 34, 37, 38, 40, 48, 58, 69, 83,
58 0, 4, 1, 2, 5, 8, 12, 9,
59 6, 3, 7, 10, 13, 14, 11, 15,
60 47, 43, 46, 45, 42, 39, 35, 38,
61 41, 44, 40, 37, 34, 33, 36, 32,
62 16, 20, 17, 18, 21, 24, 28, 25,
63 22, 19, 23, 26, 29, 30, 27, 31,
64 63, 59, 62, 61, 58, 55, 51, 54,
65 57, 60, 56, 53, 50, 49, 52, 48,
69 64, 72, 65, 66, 73, 80, 88, 81,
70 74, 67, 75, 82, 89, 90, 83, 91,
71 0, 4, 1, 2, 5, 8, 12, 9,
72 6, 3, 7, 10, 13, 14, 11, 15,
73 16, 20, 17, 18, 21, 24, 28, 25,
74 22, 19, 23, 26, 29, 30, 27, 31,
75 155, 147, 154, 153, 146, 139, 131, 138,
76 145, 152, 144, 137, 130, 129, 136, 128,
77 47, 43, 46, 45, 42, 39, 35, 38,
78 41, 44, 40, 37, 34, 33, 36, 32,
79 63, 59, 62, 61, 58, 55, 51, 54,
80 57, 60, 56, 53, 50, 49, 52, 48,
81 96, 104, 97, 98, 105, 112, 120, 113,
82 106, 99, 107, 114, 121, 122, 115, 123,
83 68, 76, 69, 70, 77, 84, 92, 85,
84 78, 71, 79, 86, 93, 94, 87, 95,
85 100, 108, 101, 102, 109, 116, 124, 117,
86 110, 103, 111, 118, 125, 126, 119, 127,
87 187, 179, 186, 185, 178, 171, 163, 170,
88 177, 184, 176, 169, 162, 161, 168, 160,
89 159, 151, 158, 157, 150, 143, 135, 142,
90 149, 156, 148, 141, 134, 133, 140, 132,
91 191, 183, 190, 189, 182, 175, 167, 174,
92 181, 188, 180, 173, 166, 165, 172, 164,
96 0, 4, 1, 2, 5, 8, 12, 9,
97 6, 3, 7, 10, 13, 14, 11, 15,
98 31, 27, 30, 29, 26, 23, 19, 22,
99 25, 28, 24, 21, 18, 17, 20, 16,
100 32, 36, 33, 34, 37, 40, 44, 41,
101 38, 35, 39, 42, 45, 46, 43, 47,
102 63, 59, 62, 61, 58, 55, 51, 54,
103 57, 60, 56, 53, 50, 49, 52, 48,
107 16, 24, 17, 18, 25, 32, 40, 33,
108 26, 19, 27, 34, 41, 42, 35, 43,
109 0, 4, 1, 2, 5, 8, 12, 9,
110 6, 3, 7, 10, 13, 14, 11, 15,
111 20, 28, 21, 22, 29, 36, 44, 37,
112 30, 23, 31, 38, 45, 46, 39, 47,
113 95, 87, 94, 93, 86, 79, 71, 78,
114 85, 92, 84, 77, 70, 69, 76, 68,
115 63, 59, 62, 61, 58, 55, 51, 54,
116 57, 60, 56, 53, 50, 49, 52, 48,
117 91, 83, 90, 89, 82, 75, 67, 74,
118 81, 88, 80, 73, 66, 65, 72, 64,
119 112, 120, 113, 114, 121, 128, 136, 129,
120 122, 115, 123, 130, 137, 138, 131, 139,
121 96, 100, 97, 98, 101, 104, 108, 105,
122 102, 99, 103, 106, 109, 110, 107, 111,
123 116, 124, 117, 118, 125, 132, 140, 133,
124 126, 119, 127, 134, 141, 142, 135, 143,
125 191, 183, 190, 189, 182, 175, 167, 174,
126 181, 188, 180, 173, 166, 165, 172, 164,
127 159, 155, 158, 157, 154, 151, 147, 150,
128 153, 156, 152, 149, 146, 145, 148, 144,
129 187, 179, 186, 185, 178, 171, 163, 170,
130 177, 184, 176, 169, 162, 161, 168, 160,
171 if (frame_size > size) {
178 "Picture dimension changed: old: %d x %d, new: %d x %d\n",
182 ctx->
quant = src[15];
188 #define GET_CODE(val, type, add_bits) \
191 val = get_ue_golomb(gb); \
193 val = get_unary(gb, 1, 31); \
195 val = (val << add_bits) + get_bits(gb, add_bits); \
199 int band,
int slice_width,
int force_chroma)
201 int has_skips, coeff_type, coeff_bits, skip_type,
skip_bits;
214 for (mb = 0; mb < slice_width; mb++) {
217 GET_CODE(val, skip_type, skip_bits);
221 if (idx >= num_coeffs)
223 GET_CODE(val, coeff_type, coeff_bits);
225 if (val >= 0x10000 || val < 0)
227 dst[scan[idx]] = val;
228 }
while (idx < num_coeffs - 1);
232 for (mb = 0; mb < slice_width; mb++) {
233 for (idx = 0; idx < num_coeffs; idx++) {
234 GET_CODE(val, coeff_type, coeff_bits);
235 if (val >= 0x10000 || val < 0)
237 dst[scan[idx]] = val;
246 int16_t **base, int16_t **ext)
250 for (i = 0; i < 4; i++) {
251 for (j = 0; j < 4; j++)
252 dst[scan[i * 8 + j]] = (*base)[j];
253 for (j = 0; j < 4; j++)
254 dst[scan[i * 8 + j + 4]] = (*ext)[j];
259 for (j = 0; j < 8; j++)
260 dst[scan[i * 8 + j]] = (*ext)[j];
266 int16_t **base, int16_t **ext,
272 for (i = 0; i < 8; i++) {
273 for (j = 0; j < 4; j++)
274 dst[scan[i * 8 + j]] = (*base)[j];
275 for (j = 0; j < 4; j++)
276 dst[scan[i * 8 + j + 4]] = (*ext)[j];
281 for (i = 0; i < 64; i++)
282 dst[scan[i]] = (*ext)[i];
291 for (i = 0; i < 64; i++) {
292 int val = (uint16_t)block[i];
301 const uint8_t *src,
int src_size)
314 Y = ctx->
frame->
data[0] + mb_x * 16 + mb_y * 16 * ystride;
315 for (i = 0; i < 2; i++)
316 C[i] = ctx->
frame->
data[i + 1] + mb_x * 8
328 for (mb = 0; mb < slice_width; mb++) {
329 for (blk = 0; blk < 4; blk++) {
335 &base_y, &ext_y, blk);
340 dst = Y + (blk >> 1) * 8 * ystride + (blk & 1) * 8;
344 dst = Y + (blk & 1) * 8 + (blk >> 1) * ystride;
351 for (blk = 0; blk < 2; blk++) {
370 int buf_size = avpkt->
size;
382 if (buf_size < off) {
398 slice_size = bytestream2_get_le16(&gb) * 4;
399 if (slice_size + off > buf_size || !slice_size) {
405 buf + off, slice_size)) < 0)
429 for (i = 0; i < 64; i++)
438 for (i = 1; i < 32; i++) {