34 #define MIMIC_HEADER_SIZE 20
65 0x0000000a, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
66 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
67 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000000b,
68 0x0000001b, 0x00000038, 0x00000078, 0x00000079, 0x0000007a, 0x000000f9,
69 0x000000fa, 0x000003fb, 0x000007f8, 0x000007f9, 0x000007fa, 0x000007fb,
70 0x00000ff8, 0x00000ff9, 0x00000001, 0x00000039, 0x0000007b, 0x000000fb,
71 0x000001f8, 0x000001f9, 0x00000ffa, 0x00000ffb, 0x00001ff8, 0x00001ff9,
72 0x00001ffa, 0x00001ffb, 0x00003ff8, 0x00003ff9, 0x00003ffa, 0x00000000,
73 0x00000004, 0x0000003a, 0x000001fa, 0x00003ffb, 0x00007ff8, 0x00007ff9,
74 0x00007ffa, 0x00007ffb, 0x0000fff8, 0x0000fff9, 0x0000fffa, 0x0000fffb,
75 0x0001fff8, 0x0001fff9, 0x0001fffa, 0x00000000, 0x0000000c, 0x000000f8,
76 0x000001fb, 0x0001fffb, 0x0003fff8, 0x0003fff9, 0x0003fffa, 0x0003fffb,
77 0x0007fff8, 0x0007fff9, 0x0007fffa, 0x0007fffb, 0x000ffff8, 0x000ffff9,
78 0x000ffffa, 0x00000000, 0x0000001a, 0x000003f8, 0x000ffffb, 0x001ffff8,
79 0x001ffff9, 0x001ffffa, 0x001ffffb, 0x003ffff8, 0x003ffff9, 0x003ffffa,
80 0x003ffffb, 0x007ffff8, 0x007ffff9, 0x007ffffa, 0x007ffffb, 0x00000000,
81 0x0000003b, 0x000003f9, 0x00fffff8, 0x00fffff9, 0x00fffffa, 0x00fffffb,
82 0x01fffff8, 0x01fffff9, 0x01fffffa, 0x01fffffb, 0x03fffff8, 0x03fffff9,
83 0x03fffffa, 0x03fffffb, 0x07fffff8, 0x00000000, 0x000003fa, 0x07fffff9,
84 0x07fffffa, 0x07fffffb, 0x0ffffff8, 0x0ffffff9, 0x0ffffffa, 0x0ffffffb,
85 0x1ffffff8, 0x1ffffff9, 0x1ffffffa, 0x1ffffffb, 0x3ffffff8, 0x3ffffff9,
90 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
91 0, 0, 0, 0, 2, 4, 5, 6, 7, 7, 7, 8,
92 8, 10, 11, 11, 11, 11, 12, 12, 2, 6, 7, 8,
93 9, 9, 12, 12, 13, 13, 13, 13, 14, 14, 14, 0,
94 3, 6, 9, 14, 15, 15, 15, 15, 16, 16, 16, 16,
95 17, 17, 17, 0, 4, 8, 9, 17, 18, 18, 18, 18,
96 19, 19, 19, 19, 20, 20, 20, 0, 5, 10, 20, 21,
97 21, 21, 21, 22, 22, 22, 22, 23, 23, 23, 23, 0,
98 6, 10, 24, 24, 24, 24, 25, 25, 25, 25, 26, 26,
99 26, 26, 27, 0, 10, 27, 27, 27, 28, 28, 28, 28,
100 29, 29, 29, 29, 30, 30, 30,
104 0, 8, 1, 2, 9, 16, 24, 17,
105 10, 3, 4, 11, 18, 25, 32, 40,
106 33, 26, 19, 12, 5, 6, 13, 20,
107 27, 34, 41, 48, 56, 49, 42, 35,
108 28, 21, 14, 7, 15, 22, 29, 36,
109 43, 50, 57, 58, 51, 44, 37, 30,
110 23, 31, 38, 45, 52, 59, 39, 46,
111 53, 60, 61, 54, 47, 55, 62, 63,
168 if (avctx == avctx_from)
178 if (i !=
src->next_cur_index &&
src->frames[i].f->data[0]) {
192 { -7, 7, -6, 6, -5, 5, -4, 4, },
193 { -15, 15, -14, 14, -13, 13, -12, 12,
194 -11, 11, -10, 10, -9, 9, -8, 8, },
195 { -31, 31, -30, 30, -29, 29, -28, 28,
196 -27, 27, -26, 26, -25, 25, -24, 24,
197 -23, 23, -22, 22, -21, 21, -20, 20,
198 -19, 19, -18, 18, -17, 17, -16, 16, },
199 { -63, 63, -62, 62, -61, 61, -60, 60,
200 -59, 59, -58, 58, -57, 57, -56, 56,
201 -55, 55, -54, 54, -53, 53, -52, 52,
202 -51, 51, -50, 50, -49, 49, -48, 48,
203 -47, 47, -46, 46, -45, 45, -44, 44,
204 -43, 43, -42, 42, -41, 41, -40, 40,
205 -39, 39, -38, 38, -37, 37, -36, 36,
206 -35, 35, -34, 34, -33, 33, -32, 32, },
207 { -127, 127, -126, 126, -125, 125, -124, 124,
208 -123, 123, -122, 122, -121, 121, -120, 120,
209 -119, 119, -118, 118, -117, 117, -116, 116,
210 -115, 115, -114, 114, -113, 113, -112, 112,
211 -111, 111, -110, 110, -109, 109, -108, 108,
212 -107, 107, -106, 106, -105, 105, -104, 104,
213 -103, 103, -102, 102, -101, 101, -100, 100,
214 -99, 99, -98, 98, -97, 97, -96, 96, },
215 { -95, 95, -94, 94, -93, 93, -92, 92,
216 -91, 91, -90, 90, -89, 89, -88, 88,
217 -87, 87, -86, 86, -85, 85, -84, 84,
218 -83, 83, -82, 82, -81, 81, -80, 80,
219 -79, 79, -78, 78, -77, 77, -76, 76,
220 -75, 75, -74, 74, -73, 73, -72, 72,
221 -71, 71, -70, 70, -69, 69, -68, 68,
222 -67, 67, -66, 66, -65, 65, -64, 64, },
234 for (pos = 1; pos < num_coeffs; pos++) {
235 uint32_t vlc, num_bits;
261 coeff = (coeff * qscale) / 1001;
272 int ret,
y, x, plane, cur_row = 0;
274 for (plane = 0; plane < 3; plane++) {
275 const int is_chroma = !!plane;
276 const int qscale = av_clip(10000 - quality, is_chroma ? 1000 : 2000,
288 if (is_iframe ||
get_bits1(&ctx->
gb) == is_chroma) {
292 if (is_chroma || is_iframe || !
get_bits1(&ctx->
gb)) {
313 "No such backreference! Buggy sample.\n");
345 for (i = 0; i < 3; i++)
353 int buf_size = avpkt->
size;
359 int quality, num_coeffs;
362 if (buf_size <= MIMIC_HEADER_SIZE) {
369 quality = bytestream2_get_le16u(&gb);
370 width = bytestream2_get_le16u(&gb);
371 height = bytestream2_get_le16u(&gb);
373 is_pframe = bytestream2_get_le32u(&gb);
374 num_coeffs = bytestream2_get_byteu(&gb);
380 if (!(width == 160 && height == 120) &&
381 !(width == 320 && height == 240)) {
390 for (i = 0; i < 3; i++) {
424 (
const uint32_t*) (buf + MIMIC_HEADER_SIZE),
428 res =
decode(ctx, quality, num_coeffs, !is_pframe);