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 },
285 for (
int i = 0;
i < 2;
i++) {
291 for (
int j = 0; j < 16; j++) {
320 for (
int i = 0;
i < 6;
i++) {
336 if (quantizer < 12 || quantizer > 161)
339 s->quantizer = quantizer;
344 for (
int i = 0;
i < 16;
i++)
347 for (
int i = 0;
i < 64;
i++)
350 for (
int i = 0;
i < 20;
i++)
358 unsigned a = rs[0] + rs[2];
359 unsigned b = rs[0] - rs[2];
360 unsigned c = rs[1] + ((
int)rs[3] >> 1);
361 unsigned d = ((
int)rs[1] >> 1) - rs[3];
372 unsigned x3, x2, x1, x0;
387 e = (unsigned)arr[7] + arr[1] - arr[3] - (arr[3] >> 1);
388 f = (unsigned)arr[7] - arr[1] + arr[5] + (arr[5] >> 1);
389 g = (unsigned)arr[5] - arr[3] - arr[7] - (arr[7] >> 1);
390 h = (unsigned)arr[5] + arr[3] + arr[1] + (arr[1] >> 1);
391 x3 = (unsigned)
g + (
h >> 2);
392 x2 = (unsigned)e + (
f >> 2);
393 x1 = (e >> 2) - (
unsigned)
f;
394 x0 = (unsigned)
h - (
g >> 2);
396 arr[0] =
tmp[0] + x0;
397 arr[1] =
tmp[1] + x1;
398 arr[2] =
tmp[2] + x2;
399 arr[3] =
tmp[3] + x3;
400 arr[4] =
tmp[3] - x3;
401 arr[5] =
tmp[2] - x2;
402 arr[6] =
tmp[1] - x1;
403 arr[7] =
tmp[0] - x0;
413 *last = (n >> 11) == 1;
414 *
run = (n >> 5) & 0x3F;
419 int bx,
int by,
int size,
int plane)
425 const int *qtab =
s->qtab[
size == 8];
456 mat[ztab[
pos]] = qval *(unsigned)
level;
463 for (
int y = 0; y <
size; y++)
466 for (
int y = 0; y <
size; y++) {
467 for (
int x = y + 1; x <
size; x++) {
468 int a = mat[x *
size + y];
469 int b = mat[y *
size + x];
471 mat[y *
size + x] =
a;
472 mat[x *
size + y] =
b;
476 for (
int x = 0; x <
size; x++)
485 int bx,
int by,
int size,
int plane)
496 for (
int y = by; y < by + 8; y += 4) {
497 for (
int x = bx; x < bx + 8; x += 4) {
514 return size == 16 ? (x + 1) >> 1 : x;
522 if (
b.x == -1 &&
b.y >=
b.size) {
523 ret.x = -1,
ret.y =
b.size - 1;
524 }
else if (
b.x >= -1 &&
b.y >= -1) {
526 }
else if (
b.x == -1 &&
b.y == -2) {
528 }
else if (
b.x == -2 &&
b.y == -1) {
535 return ret.block[y *
ret.linesize + x];
540 return ((
a +
b) + 1) / 2;
545 return ((
a +
b +
b +
c) * 2 / 4 + 1) / 2;
586 if ((bxy.
x % 2) == 0) {
592 ba.
y = bxy.
y + bxy.
x / 2;
597 bb.
y = bxy.
y + bxy.
x / 2 + 1;
606 ba.
y = bxy.
y + bxy.
x / 2 + 1;
627 }
else if (bxy.
y == 0) {
634 }
else if (bxy.
x == 1) {
667 }
else if (bxy.
x == 0) {
674 }
else if (bxy.
y == 1) {
722 return half3(acc1, clr, acc2);
743 }
else if (bxy.
y == 1) {
748 }
else if (bxy.
x < bxy.
size - 1) {
753 }
else if (bxy.
y % 2 == 0) {
756 ba.
x = bxy.
y / 2 + bxy.
size - 1;
760 bb.
x = bxy.
y / 2 + bxy.
size;
767 ba.
x = bxy.
y / 2 + bxy.
size;
778 for (
int y = 0; y <
size; y++) {
785 int w,
int h,
int ax,
int ay,
798 for (
int y = 0; y <
size; y++) {
800 for (
int x = 0; x <
size; x++) {
807 block[ax + x + (ay + y) * linesize] =
val;
816 for (
int y = 0; y <
h; y++) {
817 for (
int x = 0; x <
w; x++) {
827 int pmode,
int add_coeffs,
int size,
int plane)
831 int w = avctx->
width >> !!plane,
h = avctx->
height >> !!plane;
855 for (
int x = 0; x <
size; x++) {
860 for (
int y = 0; y <
size; y++) {
866 for (
int y = 0; y <
size; y++) {
867 for (
int x = 0; x <
size; x++) {
868 block[x] = (((top[x] +
left[0] + ((arr1[x] * (y + 1) +
869 arr2[y] * (x + 1)) >> 2 *
shift)) + 1) / 2) & 0xFF;
880 if (ax == 0 && ay == 0) {
882 }
else if (ax >= 1 && ay >= 1) {
888 fill = ((
left + top) * 2 / (2 *
size) + 1) / 2;
889 }
else if (ax >= 1) {
892 }
else if (ay >= 1) {
930 int index = (y & 0xC) | (x / 4 % 4);
938 val = x + (x >=
val ? 1 : 0);
949 int x,
int y,
int pmode,
int has_coeffs,
int plane)
972 for (
int by = y; by < y + 8; by += 4) {
973 for (
int bx = x; bx < x + 8; bx += 4) {
974 int new_pmode = pmode;
1048 if (pmode_uv == 2) {
1071 return x == 16 ? 0 : x == 8 ? 1 : x == 4 ? 2 : x == 2 ? 3 : 0;
1076 int offsetm,
int offsetx,
int offsety)
1081 int fheight = avctx->
height;
1082 int fwidth = avctx->
width;
1095 if (
mv.x >= INT_MAX ||
mv.y >= INT_MAX)
1098 motion[offsetm].
x =
mv.x;
1099 motion[offsetm].
y =
mv.y;
1101 for (
int i = 0;
i < 3;
i++) {
1102 int method, src_linesize, dst_linesize;
1106 offsetx = offsetx >> 1;
1107 offsety = offsety >> 1;
1112 fwidth = fwidth >> 1;
1113 fheight = fheight >> 1;
1119 if (!
s->pic[sidx]->data[
i])
1122 method = (
mv.x & 1) | ((
mv.y & 1) << 1);
1123 src_linesize =
s->pic[sidx]->linesize[
i];
1124 dst_linesize =
s->pic[
s->current_pic]->linesize[
i];
1125 dst =
s->pic[
s->current_pic]->data[
i] + offsetx + offsety * dst_linesize;
1127 if (offsetx + (
mv.x >> 1) < 0 ||
1128 offsety + (
mv.y >> 1) < 0 ||
1129 offsetx +
width + (
mv.x + 1 >> 1) > fwidth ||
1130 offsety +
height + (
mv.y + 1 >> 1) > fheight)
1135 src =
s->pic[sidx]->data[
i] + offsetx + (
mv.x >> 1) +
1136 (offsety + (
mv.y >> 1)) * src_linesize;
1137 for (
int y = 0; y <
height; y++) {
1138 for (
int x = 0; x <
width; x++)
1140 dst += dst_linesize;
1141 src += src_linesize;
1145 src =
s->pic[sidx]->data[
i] + offsetx + (
mv.x >> 1) +
1146 (offsety + (
mv.y >> 1)) * src_linesize;
1147 for (
int y = 0; y <
height; y++) {
1148 for (
int x = 0; x <
width; x++) {
1149 dst[x] = (uint8_t)((
src[x] >> 1) + (
src[x + 1] >> 1));
1152 dst += dst_linesize;
1153 src += src_linesize;
1157 src =
s->pic[sidx]->data[
i] + offsetx + (
mv.x >> 1) +
1158 (offsety + (
mv.y >> 1)) * src_linesize;
1159 for (
int y = 0; y <
height; y++) {
1160 for (
int x = 0; x <
width; x++) {
1161 dst[x] = (uint8_t)((
src[x] >> 1) + (
src[x + src_linesize] >> 1));
1164 dst += dst_linesize;
1165 src += src_linesize;
1169 src =
s->pic[sidx]->data[
i] + offsetx + (
mv.x >> 1) +
1170 (offsety + (
mv.y >> 1)) * src_linesize;
1171 for (
int y = 0; y <
height; y++) {
1172 for (
int x = 0; x <
width; x++) {
1173 dst[x] = (uint8_t)((((
src[x] >> 1) + (
src[x + 1] >> 1)) >> 1) +
1174 (((
src[x + src_linesize] >> 1) + (
src[x + 1 + src_linesize] >> 1)) >> 1));
1177 dst += dst_linesize;
1178 src += src_linesize;
1192 for (
int i = 0;
i < 2;
i++) {
1198 offsetm, offsetx +
i * adjx, offsety +
i * adjy);
1224 s->bdsp.bswap16_buf((uint16_t *)
s->bitstream,
1242 for (
int y = 0; y < avctx->
height; y += 16) {
1243 for (
int x = 0; x < avctx->
width; x += 16) {
1252 memset(motion, 0,
s->motion_size);
1262 for (
int y = 0; y < avctx->
height; y += 16) {
1263 for (
int x = 0; x < avctx->
width; x += 16) {
1266 motion[0].
x =
mid_pred(motion[x / 16 + 1].x, motion[x / 16 + 2].x, motion[x / 16 + 3].x);
1267 motion[0].
y =
mid_pred(motion[x / 16 + 1].y, motion[x / 16 + 2].y, motion[x / 16 + 3].y);
1268 motion[x / 16 + 2].
x = 0;
1269 motion[x / 16 + 2].
y = 0;
1273 if (idx == 6 || idx == 7) {
1287 for (
int sy = y; sy < y + 16; sy += 8) {
1288 for (
int sx = x; sx < x + 16; sx += 8) {
1308 s->current_pic = (
s->current_pic + 1) % 6;
1321 for (
int i = 0;
i < 6;
i++)
1330 s->bitstream_size = 0;
1334 for (
int i = 0;
i < 6;
i++) {
1342 .
p.
name =
"mobiclip",