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;
215 for (mb = 0; mb < slice_width; mb++) {
218 GET_CODE(val, skip_type, skip_bits);
222 if (idx >= num_coeffs)
224 GET_CODE(val, coeff_type, coeff_bits);
228 dst[scan[idx]] =
val;
229 }
while (idx < num_coeffs - 1);
233 for (mb = 0; mb < slice_width; mb++) {
234 for (idx = 0; idx < num_coeffs; idx++) {
235 GET_CODE(val, coeff_type, coeff_bits);
238 dst[scan[idx]] =
val;
247 int16_t **base, int16_t **ext)
251 for (i = 0; i < 4; i++) {
252 for (j = 0; j < 4; j++)
253 dst[scan[i * 8 + j]] = (*base)[j];
254 for (j = 0; j < 4; j++)
255 dst[scan[i * 8 + j + 4]] = (*ext)[j];
260 for (j = 0; j < 8; j++)
261 dst[scan[i * 8 + j]] = (*ext)[j];
267 int16_t **base, int16_t **ext,
273 for (i = 0; i < 8; i++) {
274 for (j = 0; j < 4; j++)
275 dst[scan[i * 8 + j]] = (*base)[j];
276 for (j = 0; j < 4; j++)
277 dst[scan[i * 8 + j + 4]] = (*ext)[j];
282 for (i = 0; i < 64; i++)
283 dst[scan[i]] = (*ext)[i];
292 for (i = 0; i < 64; i++) {
293 int val = (uint16_t)block[i];
315 Y = ctx->
frame->
data[0] + mb_x * 16 + mb_y * 16 * ystride;
316 for (i = 0; i < 2; i++)
317 C[i] = ctx->
frame->
data[i + 1] + mb_x * 8
329 for (mb = 0; mb < slice_width; mb++) {
330 for (blk = 0; blk < 4; blk++) {
336 &base_y, &ext_y, blk);
341 dst = Y + (blk >> 1) * 8 * ystride + (blk & 1) * 8;
345 dst = Y + (blk & 1) * 8 + (blk >> 1) * ystride;
352 for (blk = 0; blk < 2; blk++) {
371 int buf_size = avpkt->
size;
383 if (buf_size < off) {
399 slice_size = bytestream2_get_le16(&gb) * 4;
400 if (slice_size + off > buf_size || !slice_size) {
406 buf + off, slice_size)) < 0)
430 for (i = 0; i < 64; i++)
439 for (i = 1; i < 32; i++) {