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