37 #define MOBI_RL_VLC_BITS 12
38 #define MOBI_MV_VLC_BITS 6
42 0x00, 0x04, 0x01, 0x02, 0x05, 0x08, 0x0C, 0x09, 0x06, 0x03, 0x07, 0x0A,
43 0x0D, 0x0E, 0x0B, 0x0F
48 { 10, 13, 13, 10, 16, 10, 13, 13, 13, 13, 16, 10, 16, 13, 13, 16 },
49 { 11, 14, 14, 11, 18, 11, 14, 14, 14, 14, 18, 11, 18, 14, 14, 18 },
50 { 13, 16, 16, 13, 20, 13, 16, 16, 16, 16, 20, 13, 20, 16, 16, 20 },
51 { 14, 18, 18, 14, 23, 14, 18, 18, 18, 18, 23, 14, 23, 18, 18, 23 },
52 { 16, 20, 20, 16, 25, 16, 20, 20, 20, 20, 25, 16, 25, 20, 20, 25 },
53 { 18, 23, 23, 18, 29, 18, 23, 23, 23, 23, 29, 18, 29, 23, 23, 29 },
58 { 20, 19, 19, 25, 18, 25, 19, 24, 24, 19, 20, 18, 32, 18, 20, 19, 19, 24, 24, 19, 19, 25, 18, 25, 18, 25, 18, 25, 19, 24, 24, 19,
59 19, 24, 24, 19, 18, 32, 18, 20, 18, 32, 18, 24, 24, 19, 19, 24, 24, 18, 25, 18, 25, 18, 19, 24, 24, 19, 18, 32, 18, 24, 24, 18,},
60 { 22, 21, 21, 28, 19, 28, 21, 26, 26, 21, 22, 19, 35, 19, 22, 21, 21, 26, 26, 21, 21, 28, 19, 28, 19, 28, 19, 28, 21, 26, 26, 21,
61 21, 26, 26, 21, 19, 35, 19, 22, 19, 35, 19, 26, 26, 21, 21, 26, 26, 19, 28, 19, 28, 19, 21, 26, 26, 21, 19, 35, 19, 26, 26, 19,},
62 { 26, 24, 24, 33, 23, 33, 24, 31, 31, 24, 26, 23, 42, 23, 26, 24, 24, 31, 31, 24, 24, 33, 23, 33, 23, 33, 23, 33, 24, 31, 31, 24,
63 24, 31, 31, 24, 23, 42, 23, 26, 23, 42, 23, 31, 31, 24, 24, 31, 31, 23, 33, 23, 33, 23, 24, 31, 31, 24, 23, 42, 23, 31, 31, 23,},
64 { 28, 26, 26, 35, 25, 35, 26, 33, 33, 26, 28, 25, 45, 25, 28, 26, 26, 33, 33, 26, 26, 35, 25, 35, 25, 35, 25, 35, 26, 33, 33, 26,
65 26, 33, 33, 26, 25, 45, 25, 28, 25, 45, 25, 33, 33, 26, 26, 33, 33, 25, 35, 25, 35, 25, 26, 33, 33, 26, 25, 45, 25, 33, 33, 25,},
66 { 32, 30, 30, 40, 28, 40, 30, 38, 38, 30, 32, 28, 51, 28, 32, 30, 30, 38, 38, 30, 30, 40, 28, 40, 28, 40, 28, 40, 30, 38, 38, 30,
67 30, 38, 38, 30, 28, 51, 28, 32, 28, 51, 28, 38, 38, 30, 30, 38, 38, 28, 40, 28, 40, 28, 30, 38, 38, 30, 28, 51, 28, 38, 38, 28,},
68 { 36, 34, 34, 46, 32, 46, 34, 43, 43, 34, 36, 32, 58, 32, 36, 34, 34, 43, 43, 34, 34, 46, 32, 46, 32, 46, 32, 46, 34, 43, 43, 34,
69 34, 43, 43, 34, 32, 58, 32, 36, 32, 58, 32, 43, 43, 34, 34, 43, 43, 32, 46, 32, 46, 32, 34, 43, 43, 34, 32, 58, 32, 43, 43, 32,},
74 15, 0, 2, 1, 4, 8, 12, 3, 11, 13, 14, 7, 10, 5, 9, 6,
79 0, 4, 1, 8, 2, 12, 3, 5, 10, 15, 7, 13, 14, 11, 9, 6,
84 0x00, 0x1F, 0x3F, 0x0F, 0x08, 0x04, 0x02, 0x01, 0x0B, 0x0E, 0x1B, 0x0D,
85 0x03, 0x07, 0x0C, 0x17, 0x1D, 0x0A, 0x1E, 0x05, 0x10, 0x2F, 0x37, 0x3B,
86 0x13, 0x3D, 0x3E, 0x09, 0x1C, 0x06, 0x15, 0x1A, 0x33, 0x11, 0x12, 0x14,
87 0x18, 0x20, 0x3C, 0x35, 0x19, 0x16, 0x3A, 0x30, 0x31, 0x32, 0x27, 0x34,
88 0x2B, 0x2D, 0x39, 0x38, 0x23, 0x36, 0x2E, 0x21, 0x25, 0x22, 0x24, 0x2C,
89 0x2A, 0x28, 0x29, 0x26,
94 0x00, 0x0F, 0x04, 0x01, 0x08, 0x02, 0x0C, 0x03, 0x05, 0x0A, 0x0D, 0x07, 0x0E, 0x0B, 0x1F, 0x09,
95 0x06, 0x10, 0x3F, 0x1E, 0x17, 0x1D, 0x1B, 0x1C, 0x13, 0x18, 0x1A, 0x12, 0x11, 0x14, 0x15, 0x20,
96 0x2F, 0x16, 0x19, 0x37, 0x3D, 0x3E, 0x3B, 0x3C, 0x33, 0x35, 0x21, 0x24, 0x22, 0x28, 0x23, 0x2C,
97 0x30, 0x27, 0x2D, 0x25, 0x3A, 0x2B, 0x2E, 0x2A, 0x31, 0x34, 0x38, 0x32, 0x29, 0x26, 0x39, 0x36
103 12, 6, 4, 3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
104 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
105 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
106 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
107 1, 27, 11, 7, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
108 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
109 1, 41, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
110 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
113 27, 10, 5, 4, 3, 3, 3, 3, 2, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
114 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
115 8, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
116 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
117 1, 15, 10, 8, 4, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
118 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
119 1, 21, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
120 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
125 9, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
126 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12,
127 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 7, 10, 10, 9,
128 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
129 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
130 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6,
131 6, 6, 6, 6, 6, 6, 5, 5, 5, 4, 2, 3, 4, 4,
135 0x0, 0x822, 0x803, 0xB, 0xA, 0xB81, 0xB61, 0xB41, 0xB21, 0x122,
136 0x102, 0xE2, 0xC2, 0xA2, 0x63, 0x43, 0x24, 0xC, 0x25, 0x2E1, 0x301,
137 0xBA1, 0xBC1, 0xBE1, 0xC01, 0x26, 0x44, 0x83, 0xA3, 0xC3, 0x142,
138 0x321, 0x341, 0xC21, 0xC41, 0xC61, 0xC81, 0xCA1, 0xCC1, 0xCE1, 0xD01,
139 0x0, 0x9, 0x8, 0xB01, 0xAE1, 0xAC1, 0xAA1, 0xA81, 0xA61, 0xA41, 0xA21,
140 0x802, 0x2C1, 0x2A1, 0x281, 0x261, 0x241, 0x221, 0x201, 0x1E1, 0x82,
141 0x62, 0x7, 0x6, 0xA01, 0x9E1, 0x9C1, 0x9A1, 0x981, 0x961, 0x941, 0x921,
142 0x1C1, 0x1A1, 0x42, 0x23, 0x5, 0x901, 0x8E1, 0x8C1, 0x8A1, 0x181, 0x161,
143 0x141, 0x4, 0x881, 0x861, 0x841, 0x821, 0x121, 0x101, 0xE1, 0xC1, 0x22,
144 0x3, 0xA1, 0x81, 0x61, 0x801, 0x1, 0x21, 0x41, 0x2,
148 0x0, 0x807, 0x806, 0x16, 0x15, 0x842, 0x823, 0x805, 0x1A1, 0xA3, 0x102, 0x83,
149 0x64, 0x44, 0x27, 0x14, 0x13, 0x17, 0x18, 0x28, 0x122, 0x862, 0x882, 0x9E1, 0xA01,
150 0x19, 0x1A, 0x1B, 0x29, 0xC3, 0x2A, 0x45, 0xE3, 0x1C1, 0x808, 0x8A2, 0x8C2, 0xA21,
151 0xA41, 0xA61, 0xA81, 0x0, 0x12, 0x11, 0x9C1, 0x9A1, 0x981, 0x961, 0x941, 0x822, 0x804,
152 0x181, 0x161, 0xE2, 0xC2, 0xA2, 0x63, 0x43, 0x26, 0x25, 0x10, 0x82, 0xF, 0xE, 0xD, 0x901,
153 0x8E1, 0x8C1, 0x803, 0x141, 0x121, 0x101, 0x921, 0x62, 0x24, 0xC, 0xB, 0xA, 0x881, 0x861,
154 0xC1, 0x8A1, 0xE1, 0x42, 0x23, 0x9, 0x802, 0xA1, 0x841, 0x821, 0x81, 0x61, 0x8, 0x7, 0x22,
155 0x6, 0x41, 0x5, 0x4, 0x801, 0x1, 0x2, 0x21, 0x3,
160 10, 8, 8, 7, 8, 8, 8, 7, 8, 8, 8, 7, 7, 7, 7, 6,
166 { 2, 3, 3, 5, 5, 4, 4, 5, 5, 2 },
167 { 2, 3, 4, 4, 3, 4, 4, 2 },
168 { 3, 4, 4, 2, 4, 4, 3, 2 },
169 { 1, 3, 4, 5, 5, 3, 3 },
170 { 2, 4, 4, 3, 3, 4, 4, 2 },
171 { 2, 3, 4, 4, 4, 4, 3, 2 },
172 { 2, 3, 4, 4, 4, 4, 3, 2 },
173 { 2, 2, 3, 4, 5, 5, 2 },
174 { 2, 3, 4, 4, 3, 4, 4, 2 },
175 { 2, 4, 4, 3, 4, 4, 3, 2 },
176 { 2, 3, 3, 5, 5, 4, 3, 2 },
177 { 2, 3, 4, 4, 3, 3, 2 },
178 { 1, 4, 4, 3, 3, 4, 4 },
179 { 2, 3, 4, 4, 3, 3, 2 },
180 { 2, 3, 4, 4, 3, 3, 2 },
181 { 3, 3, 2, 2, 3, 3 },
184 { 3, 4, 5, 5, 3, 5, 6, 6, 4, 1 },
185 { 2, 3, 4, 5, 5, 2, 3, 3 },
186 { 2, 4, 4, 3, 3, 4, 4, 2 },
187 { 1, 4, 4, 3, 4, 4, 3 },
188 { 3, 3, 2, 4, 5, 5, 3, 2 },
189 { 3, 4, 4, 3, 3, 3, 3, 2 },
190 { 1, 3, 3, 4, 4, 4, 5, 5 },
191 { 1, 4, 4, 3, 3, 4, 4 },
192 { 2, 4, 4, 3, 3, 4, 4, 2 },
193 { 1, 3, 3, 4, 4, 4, 5, 5 },
194 { 2, 3, 4, 4, 4, 4, 3, 2 },
195 { 2, 3, 3, 4, 4, 3, 2 },
196 { 1, 4, 4, 3, 3, 4, 4 },
197 { 1, 4, 4, 3, 3, 4, 4 },
198 { 2, 3, 3, 4, 4, 3, 2 },
199 { 2, 3, 3, 3, 3, 2 },
206 { 1, 8, 9, 4, 3, 2, 7, 5, 6, 0 },
207 { 0, 9, 5, 4, 2, 3, 8, 1 },
208 { 3, 9, 5, 0, 4, 8, 2, 1 },
209 { 1, 3, 4, 8, 5, 2, 0 },
210 { 0, 5, 4, 8, 2, 3, 9, 1 },
211 { 0, 3, 5, 9, 4, 8, 2, 1 },
212 { 0, 3, 9, 5, 8, 4, 2, 1 },
213 { 0, 2, 3, 4, 8, 5, 1 },
214 { 0, 3, 8, 4, 2, 5, 9, 1 },
215 { 2, 8, 9, 3, 5, 4, 0, 1 },
216 { 0, 4, 3, 8, 9, 5, 2, 1 },
217 { 0, 4, 8, 5, 3, 2, 1 },
218 { 1, 9, 4, 2, 0, 5, 3 },
219 { 2, 4, 9, 5, 3, 0, 1 },
220 { 0, 4, 9, 5, 3, 2, 1 },
221 { 5, 4, 1, 0, 3, 2 },
224 { 8, 2, 3, 6, 1, 7, 5, 4, 9, 0 },
225 { 9, 2, 3, 5, 4, 1, 8, 0 },
226 { 0, 5, 4, 2, 9, 3, 8, 1 },
227 { 1, 5, 4, 2, 8, 3, 0 },
228 { 2, 9, 8, 3, 5, 4, 0, 1 },
229 { 3, 5, 4, 2, 9, 8, 0, 1 },
230 { 1, 2, 0, 9, 8, 3, 5, 4 },
231 { 1, 8, 5, 2, 0, 4, 3 },
232 { 0, 5, 4, 2, 8, 3, 9, 1 },
233 { 1, 2, 0, 9, 8, 3, 5, 4 },
234 { 0, 3, 9, 8, 5, 4, 2, 1 },
235 { 0, 4, 3, 8, 5, 2, 1 },
236 { 1, 5, 4, 2, 0, 9, 3 },
237 { 1, 9, 5, 2, 0, 4, 3 },
238 { 0, 5, 3, 9, 4, 2, 1 },
239 { 0, 4, 5, 3, 2, 1 },
290 for (
int i = 0;
i < 2;
i++) {
292 for (
int j = 0; j < 16; j++) {
322 for (
int i = 0;
i < 6;
i++) {
338 if (quantizer < 12 || quantizer > 161)
341 s->quantizer = quantizer;
346 for (
int i = 0;
i < 16;
i++)
349 for (
int i = 0;
i < 64;
i++)
352 for (
int i = 0;
i < 20;
i++)
360 unsigned a = rs[0] + rs[2];
361 unsigned b = rs[0] - rs[2];
362 unsigned c = rs[1] + ((
int)rs[3] >> 1);
363 unsigned d = ((
int)rs[1] >> 1) - rs[3];
374 unsigned x3, x2, x1, x0;
389 e = (unsigned)arr[7] + arr[1] - arr[3] - (arr[3] >> 1);
390 f = (unsigned)arr[7] - arr[1] + arr[5] + (arr[5] >> 1);
391 g = (unsigned)arr[5] - arr[3] - arr[7] - (arr[7] >> 1);
392 h = (unsigned)arr[5] + arr[3] + arr[1] + (arr[1] >> 1);
393 x3 = (unsigned)
g + (
h >> 2);
394 x2 = (unsigned)e + (
f >> 2);
395 x1 = (e >> 2) - (
unsigned)
f;
396 x0 = (unsigned)
h - (
g >> 2);
398 arr[0] =
tmp[0] + x0;
399 arr[1] =
tmp[1] + x1;
400 arr[2] =
tmp[2] + x2;
401 arr[3] =
tmp[3] + x3;
402 arr[4] =
tmp[3] - x3;
403 arr[5] =
tmp[2] - x2;
404 arr[6] =
tmp[1] - x1;
405 arr[7] =
tmp[0] - x0;
416 *last = (n >> 11) == 1;
417 *
run = (n >> 5) & 0x3F;
422 int bx,
int by,
int size,
int plane)
428 const int *qtab =
s->qtab[
size == 8];
459 mat[ztab[
pos]] = qval *(unsigned)
level;
466 for (
int y = 0; y <
size; y++)
469 for (
int y = 0; y <
size; y++) {
470 for (
int x = y + 1; x <
size; x++) {
471 int a = mat[x *
size + y];
472 int b = mat[y *
size + x];
474 mat[y *
size + x] =
a;
475 mat[x *
size + y] =
b;
479 for (
int x = 0; x <
size; x++)
488 int bx,
int by,
int size,
int plane)
499 for (
int y = by; y < by + 8; y += 4) {
500 for (
int x = bx; x < bx + 8; x += 4) {
517 return size == 16 ? (x + 1) >> 1 : x;
525 if (
b.x == -1 &&
b.y >=
b.size) {
526 ret.x = -1,
ret.y =
b.size - 1;
527 }
else if (
b.x >= -1 &&
b.y >= -1) {
529 }
else if (
b.x == -1 &&
b.y == -2) {
531 }
else if (
b.x == -2 &&
b.y == -1) {
538 return ret.block[y *
ret.linesize + x];
543 return ((
a +
b) + 1) / 2;
548 return ((
a +
b +
b +
c) * 2 / 4 + 1) / 2;
589 if ((bxy.
x % 2) == 0) {
595 ba.
y = bxy.
y + bxy.
x / 2;
600 bb.
y = bxy.
y + bxy.
x / 2 + 1;
609 ba.
y = bxy.
y + bxy.
x / 2 + 1;
630 }
else if (bxy.
y == 0) {
637 }
else if (bxy.
x == 1) {
670 }
else if (bxy.
x == 0) {
677 }
else if (bxy.
y == 1) {
725 return half3(acc1, clr, acc2);
746 }
else if (bxy.
y == 1) {
751 }
else if (bxy.
x < bxy.
size - 1) {
756 }
else if (bxy.
y % 2 == 0) {
759 ba.
x = bxy.
y / 2 + bxy.
size - 1;
763 bb.
x = bxy.
y / 2 + bxy.
size;
770 ba.
x = bxy.
y / 2 + bxy.
size;
781 for (
int y = 0; y <
size; y++) {
788 int w,
int h,
int ax,
int ay,
801 for (
int y = 0; y <
size; y++) {
803 for (
int x = 0; x <
size; x++) {
810 block[ax + x + (ay + y) * linesize] =
val;
819 for (
int y = 0; y <
h; y++) {
820 for (
int x = 0; x <
w; x++) {
830 int pmode,
int add_coeffs,
int size,
int plane)
834 int w = avctx->
width >> !!plane,
h = avctx->
height >> !!plane;
858 for (
int x = 0; x <
size; x++) {
863 for (
int y = 0; y <
size; y++) {
869 for (
int y = 0; y <
size; y++) {
870 for (
int x = 0; x <
size; x++) {
871 block[x] = (((top[x] +
left[0] + ((arr1[x] * (y + 1) +
872 arr2[y] * (x + 1)) >> 2 *
shift)) + 1) / 2) & 0xFF;
883 if (ax == 0 && ay == 0) {
885 }
else if (ax >= 1 && ay >= 1) {
891 fill = ((
left + top) * 2 / (2 *
size) + 1) / 2;
892 }
else if (ax >= 1) {
895 }
else if (ay >= 1) {
933 int index = (y & 0xC) | (x / 4 % 4);
941 val = x + (x >=
val ? 1 : 0);
952 int x,
int y,
int pmode,
int has_coeffs,
int plane)
975 for (
int by = y; by < y + 8; by += 4) {
976 for (
int bx = x; bx < x + 8; bx += 4) {
977 int new_pmode = pmode;
1051 if (pmode_uv == 2) {
1074 return x == 16 ? 0 : x == 8 ? 1 : x == 4 ? 2 : x == 2 ? 3 : 0;
1079 int offsetm,
int offsetx,
int offsety)
1084 int fheight = avctx->
height;
1085 int fwidth = avctx->
width;
1098 if (
mv.x >= INT_MAX ||
mv.y >= INT_MAX)
1101 motion[offsetm].
x =
mv.x;
1102 motion[offsetm].
y =
mv.y;
1104 for (
int i = 0;
i < 3;
i++) {
1105 int method, src_linesize, dst_linesize;
1109 offsetx = offsetx >> 1;
1110 offsety = offsety >> 1;
1115 fwidth = fwidth >> 1;
1116 fheight = fheight >> 1;
1122 if (!
s->pic[sidx]->data[
i])
1125 method = (
mv.x & 1) | ((
mv.y & 1) << 1);
1126 src_linesize =
s->pic[sidx]->linesize[
i];
1127 dst_linesize =
s->pic[
s->current_pic]->linesize[
i];
1128 dst =
s->pic[
s->current_pic]->data[
i] + offsetx + offsety * dst_linesize;
1130 if (offsetx + (
mv.x >> 1) < 0 ||
1131 offsety + (
mv.y >> 1) < 0 ||
1132 offsetx +
width + (
mv.x + 1 >> 1) > fwidth ||
1133 offsety +
height + (
mv.y + 1 >> 1) > fheight)
1138 src =
s->pic[sidx]->data[
i] + offsetx + (
mv.x >> 1) +
1139 (offsety + (
mv.y >> 1)) * src_linesize;
1140 for (
int y = 0; y <
height; y++) {
1141 for (
int x = 0; x <
width; x++)
1143 dst += dst_linesize;
1144 src += src_linesize;
1148 src =
s->pic[sidx]->data[
i] + offsetx + (
mv.x >> 1) +
1149 (offsety + (
mv.y >> 1)) * src_linesize;
1150 for (
int y = 0; y <
height; y++) {
1151 for (
int x = 0; x <
width; x++) {
1152 dst[x] = (uint8_t)((
src[x] >> 1) + (
src[x + 1] >> 1));
1155 dst += dst_linesize;
1156 src += src_linesize;
1160 src =
s->pic[sidx]->data[
i] + offsetx + (
mv.x >> 1) +
1161 (offsety + (
mv.y >> 1)) * src_linesize;
1162 for (
int y = 0; y <
height; y++) {
1163 for (
int x = 0; x <
width; x++) {
1164 dst[x] = (uint8_t)((
src[x] >> 1) + (
src[x + src_linesize] >> 1));
1167 dst += dst_linesize;
1168 src += src_linesize;
1172 src =
s->pic[sidx]->data[
i] + offsetx + (
mv.x >> 1) +
1173 (offsety + (
mv.y >> 1)) * src_linesize;
1174 for (
int y = 0; y <
height; y++) {
1175 for (
int x = 0; x <
width; x++) {
1176 dst[x] = (uint8_t)((((
src[x] >> 1) + (
src[x + 1] >> 1)) >> 1) +
1177 (((
src[x + src_linesize] >> 1) + (
src[x + 1 + src_linesize] >> 1)) >> 1));
1180 dst += dst_linesize;
1181 src += src_linesize;
1195 for (
int i = 0;
i < 2;
i++) {
1202 offsetm, offsetx +
i * adjx, offsety +
i * adjy);
1228 s->bdsp.bswap16_buf((uint16_t *)
s->bitstream,
1246 for (
int y = 0; y < avctx->
height; y += 16) {
1247 for (
int x = 0; x < avctx->
width; x += 16) {
1256 memset(motion, 0,
s->motion_size);
1266 for (
int y = 0; y < avctx->
height; y += 16) {
1267 for (
int x = 0; x < avctx->
width; x += 16) {
1270 motion[0].
x =
mid_pred(motion[x / 16 + 1].x, motion[x / 16 + 2].x, motion[x / 16 + 3].x);
1271 motion[0].
y =
mid_pred(motion[x / 16 + 1].y, motion[x / 16 + 2].y, motion[x / 16 + 3].y);
1272 motion[x / 16 + 2].
x = 0;
1273 motion[x / 16 + 2].
y = 0;
1278 if (idx == 6 || idx == 7) {
1292 for (
int sy = y; sy < y + 16; sy += 8) {
1293 for (
int sx = x; sx < x + 16; sx += 8) {
1313 s->current_pic = (
s->current_pic + 1) % 6;
1326 for (
int i = 0;
i < 6;
i++)
1335 s->bitstream_size = 0;
1339 for (
int i = 0;
i < 6;
i++) {
1347 .
p.
name =
"mobiclip",