33 #define MIMIC_HEADER_SIZE 20
63 0x0000000a, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
64 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
65 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000000b,
66 0x0000001b, 0x00000038, 0x00000078, 0x00000079, 0x0000007a, 0x000000f9,
67 0x000000fa, 0x000003fb, 0x000007f8, 0x000007f9, 0x000007fa, 0x000007fb,
68 0x00000ff8, 0x00000ff9, 0x00000001, 0x00000039, 0x0000007b, 0x000000fb,
69 0x000001f8, 0x000001f9, 0x00000ffa, 0x00000ffb, 0x00001ff8, 0x00001ff9,
70 0x00001ffa, 0x00001ffb, 0x00003ff8, 0x00003ff9, 0x00003ffa, 0x00000000,
71 0x00000004, 0x0000003a, 0x000001fa, 0x00003ffb, 0x00007ff8, 0x00007ff9,
72 0x00007ffa, 0x00007ffb, 0x0000fff8, 0x0000fff9, 0x0000fffa, 0x0000fffb,
73 0x0001fff8, 0x0001fff9, 0x0001fffa, 0x00000000, 0x0000000c, 0x000000f8,
74 0x000001fb, 0x0001fffb, 0x0003fff8, 0x0003fff9, 0x0003fffa, 0x0003fffb,
75 0x0007fff8, 0x0007fff9, 0x0007fffa, 0x0007fffb, 0x000ffff8, 0x000ffff9,
76 0x000ffffa, 0x00000000, 0x0000001a, 0x000003f8, 0x000ffffb, 0x001ffff8,
77 0x001ffff9, 0x001ffffa, 0x001ffffb, 0x003ffff8, 0x003ffff9, 0x003ffffa,
78 0x003ffffb, 0x007ffff8, 0x007ffff9, 0x007ffffa, 0x007ffffb, 0x00000000,
79 0x0000003b, 0x000003f9, 0x00fffff8, 0x00fffff9, 0x00fffffa, 0x00fffffb,
80 0x01fffff8, 0x01fffff9, 0x01fffffa, 0x01fffffb, 0x03fffff8, 0x03fffff9,
81 0x03fffffa, 0x03fffffb, 0x07fffff8, 0x00000000, 0x000003fa, 0x07fffff9,
82 0x07fffffa, 0x07fffffb, 0x0ffffff8, 0x0ffffff9, 0x0ffffffa, 0x0ffffffb,
83 0x1ffffff8, 0x1ffffff9, 0x1ffffffa, 0x1ffffffb, 0x3ffffff8, 0x3ffffff9,
88 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
89 0, 0, 0, 0, 2, 4, 5, 6, 7, 7, 7, 8,
90 8, 10, 11, 11, 11, 11, 12, 12, 2, 6, 7, 8,
91 9, 9, 12, 12, 13, 13, 13, 13, 14, 14, 14, 0,
92 3, 6, 9, 14, 15, 15, 15, 15, 16, 16, 16, 16,
93 17, 17, 17, 0, 4, 8, 9, 17, 18, 18, 18, 18,
94 19, 19, 19, 19, 20, 20, 20, 0, 5, 10, 20, 21,
95 21, 21, 21, 22, 22, 22, 22, 23, 23, 23, 23, 0,
96 6, 10, 24, 24, 24, 24, 25, 25, 25, 25, 26, 26,
97 26, 26, 27, 0, 10, 27, 27, 27, 28, 28, 28, 28,
98 29, 29, 29, 29, 30, 30, 30,
102 0, 8, 1, 2, 9, 16, 24, 17,
103 10, 3, 4, 11, 18, 25, 32, 40,
104 33, 26, 19, 12, 5, 6, 13, 20,
105 27, 34, 41, 48, 56, 49, 42, 35,
106 28, 21, 14, 7, 15, 22, 29, 36,
107 43, 50, 57, 58, 51, 44, 37, 30,
108 23, 31, 38, 45, 52, 59, 39, 46,
109 53, 60, 61, 54, 47, 55, 62, 63,
135 if (avctx == avctx_from)
141 memcpy(dst->
buf_ptrs, src->buf_ptrs,
sizeof(src->buf_ptrs));
142 memcpy(dst->
flipped_ptrs, src->flipped_ptrs,
sizeof(src->flipped_ptrs));
153 { -7, 7, -6, 6, -5, 5, -4, 4, },
154 { -15, 15, -14, 14, -13, 13, -12, 12,
155 -11, 11, -10, 10, -9, 9, -8, 8, },
156 { -31, 31, -30, 30, -29, 29, -28, 28,
157 -27, 27, -26, 26, -25, 25, -24, 24,
158 -23, 23, -22, 22, -21, 21, -20, 20,
159 -19, 19, -18, 18, -17, 17, -16, 16, },
160 { -63, 63, -62, 62, -61, 61, -60, 60,
161 -59, 59, -58, 58, -57, 57, -56, 56,
162 -55, 55, -54, 54, -53, 53, -52, 52,
163 -51, 51, -50, 50, -49, 49, -48, 48,
164 -47, 47, -46, 46, -45, 45, -44, 44,
165 -43, 43, -42, 42, -41, 41, -40, 40,
166 -39, 39, -38, 38, -37, 37, -36, 36,
167 -35, 35, -34, 34, -33, 33, -32, 32, },
168 { -127, 127, -126, 126, -125, 125, -124, 124,
169 -123, 123, -122, 122, -121, 121, -120, 120,
170 -119, 119, -118, 118, -117, 117, -116, 116,
171 -115, 115, -114, 114, -113, 113, -112, 112,
172 -111, 111, -110, 110, -109, 109, -108, 108,
173 -107, 107, -106, 106, -105, 105, -104, 104,
174 -103, 103, -102, 102, -101, 101, -100, 100,
175 -99, 99, -98, 98, -97, 97, -96, 96, },
176 { -95, 95, -94, 94, -93, 93, -92, 92,
177 -91, 91, -90, 90, -89, 89, -88, 88,
178 -87, 87, -86, 86, -85, 85, -84, 84,
179 -83, 83, -82, 82, -81, 81, -80, 80,
180 -79, 79, -78, 78, -77, 77, -76, 76,
181 -75, 75, -74, 74, -73, 73, -72, 72,
182 -71, 71, -70, 70, -69, 69, -68, 68,
183 -67, 67, -66, 66, -65, 65, -64, 64, },
195 for (pos = 1; pos < num_coeffs; pos++) {
196 uint32_t vlc, num_bits;
222 coeff = (coeff * qscale) / 1001;
233 int ret,
y, x, plane, cur_row = 0;
235 for (plane = 0; plane < 3; plane++) {
236 const int is_chroma = !!plane;
237 const int qscale = av_clip(10000 - quality, is_chroma ? 1000 : 2000,
249 if (is_iframe ||
get_bits1(&ctx->
gb) == is_chroma) {
253 if (is_chroma || is_iframe || !
get_bits1(&ctx->
gb)) {
274 "No such backreference! Buggy sample.\n");
306 for (i = 0; i < 3; i++)
314 int buf_size = avpkt->
size;
320 int quality, num_coeffs;
323 if (buf_size <= MIMIC_HEADER_SIZE) {
330 quality = bytestream2_get_le16u(&gb);
331 width = bytestream2_get_le16u(&gb);
332 height = bytestream2_get_le16u(&gb);
334 is_pframe = bytestream2_get_le32u(&gb);
335 num_coeffs = bytestream2_get_byteu(&gb);
341 if (!(width == 160 && height == 120) &&
342 !(width == 320 && height == 240)) {
351 for (i = 0; i < 3; i++) {
386 (
const uint32_t*) (buf + MIMIC_HEADER_SIZE),
390 res =
decode(ctx, quality, num_coeffs, !is_pframe);
422 for (i = 0; i < 16; i++)