2 /* autogenerated from bad-video-orc.orc */
9 #ifndef _ORC_INTEGER_TYPEDEFS_
10 #define _ORC_INTEGER_TYPEDEFS_
11 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
13 typedef int8_t orc_int8;
14 typedef int16_t orc_int16;
15 typedef int32_t orc_int32;
16 typedef int64_t orc_int64;
17 typedef uint8_t orc_uint8;
18 typedef uint16_t orc_uint16;
19 typedef uint32_t orc_uint32;
20 typedef uint64_t orc_uint64;
21 #define ORC_UINT64_C(x) UINT64_C(x)
22 #elif defined(_MSC_VER)
23 typedef signed __int8 orc_int8;
24 typedef signed __int16 orc_int16;
25 typedef signed __int32 orc_int32;
26 typedef signed __int64 orc_int64;
27 typedef unsigned __int8 orc_uint8;
28 typedef unsigned __int16 orc_uint16;
29 typedef unsigned __int32 orc_uint32;
30 typedef unsigned __int64 orc_uint64;
31 #define ORC_UINT64_C(x) (x##Ui64)
32 #define inline __inline
35 typedef signed char orc_int8;
36 typedef short orc_int16;
37 typedef int orc_int32;
38 typedef unsigned char orc_uint8;
39 typedef unsigned short orc_uint16;
40 typedef unsigned int orc_uint32;
41 #if INT_MAX == LONG_MAX
42 typedef long long orc_int64;
43 typedef unsigned long long orc_uint64;
44 #define ORC_UINT64_C(x) (x##ULL)
46 typedef long orc_int64;
47 typedef unsigned long orc_uint64;
48 #define ORC_UINT64_C(x) (x##UL)
73 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
74 #define ORC_RESTRICT restrict
75 #elif defined(__GNUC__) && __GNUC__ >= 4
76 #define ORC_RESTRICT __restrict__
83 #if defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)
84 #define ORC_INTERNAL __attribute__((visibility("hidden")))
85 #elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
86 #define ORC_INTERNAL __hidden
87 #elif defined (__GNUC__)
88 #define ORC_INTERNAL __attribute__((visibility("hidden")))
98 void video_convert_orc_memcpy_2d (guint8 * ORC_RESTRICT d1, int d1_stride,
99 const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
100 void video_convert_orc_convert_I420_UYVY (guint8 * ORC_RESTRICT d1,
101 guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
102 const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
103 const guint8 * ORC_RESTRICT s4, int n);
104 void video_convert_orc_convert_I420_YUY2 (guint8 * ORC_RESTRICT d1,
105 guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
106 const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
107 const guint8 * ORC_RESTRICT s4, int n);
108 void video_convert_orc_convert_I420_AYUV (guint8 * ORC_RESTRICT d1,
109 guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
110 const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
111 const guint8 * ORC_RESTRICT s4, int n);
112 void video_convert_orc_convert_YUY2_I420 (guint8 * ORC_RESTRICT d1,
113 guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
114 guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1,
115 const guint8 * ORC_RESTRICT s2, int n);
116 void video_convert_orc_convert_UYVY_YUY2 (guint8 * ORC_RESTRICT d1,
117 int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
118 void video_convert_orc_planar_chroma_420_422 (guint8 * ORC_RESTRICT d1,
119 int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
120 const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
121 void video_convert_orc_planar_chroma_420_444 (guint8 * ORC_RESTRICT d1,
122 int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
123 const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
124 void video_convert_orc_planar_chroma_422_444 (guint8 * ORC_RESTRICT d1,
125 int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
126 void video_convert_orc_planar_chroma_444_422 (guint8 * ORC_RESTRICT d1,
127 int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
128 void video_convert_orc_planar_chroma_444_420 (guint8 * ORC_RESTRICT d1,
129 int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
130 const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m);
131 void video_convert_orc_planar_chroma_422_420 (guint8 * ORC_RESTRICT d1,
132 int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
133 const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m);
134 void video_convert_orc_convert_YUY2_AYUV (guint8 * ORC_RESTRICT d1,
135 int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
136 void video_convert_orc_convert_UYVY_AYUV (guint8 * ORC_RESTRICT d1,
137 int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
138 void video_convert_orc_convert_YUY2_Y42B (guint8 * ORC_RESTRICT d1,
139 int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
140 guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
141 int s1_stride, int n, int m);
142 void video_convert_orc_convert_UYVY_Y42B (guint8 * ORC_RESTRICT d1,
143 int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
144 guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
145 int s1_stride, int n, int m);
146 void video_convert_orc_convert_YUY2_Y444 (guint8 * ORC_RESTRICT d1,
147 int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
148 guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
149 int s1_stride, int n, int m);
150 void video_convert_orc_convert_UYVY_Y444 (guint8 * ORC_RESTRICT d1,
151 int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
152 guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
153 int s1_stride, int n, int m);
154 void video_convert_orc_convert_UYVY_I420 (guint8 * ORC_RESTRICT d1,
155 guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
156 guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1,
157 const guint8 * ORC_RESTRICT s2, int n);
158 void video_convert_orc_convert_AYUV_I420 (guint8 * ORC_RESTRICT d1,
159 int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
160 guint8 * ORC_RESTRICT d3, int d3_stride, guint8 * ORC_RESTRICT d4,
161 int d4_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
162 const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m);
163 void video_convert_orc_convert_AYUV_YUY2 (guint8 * ORC_RESTRICT d1,
164 int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
165 void video_convert_orc_convert_AYUV_UYVY (guint8 * ORC_RESTRICT d1,
166 int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
167 void video_convert_orc_convert_AYUV_Y42B (guint8 * ORC_RESTRICT d1,
168 int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
169 guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
170 int s1_stride, int n, int m);
171 void video_convert_orc_convert_AYUV_Y444 (guint8 * ORC_RESTRICT d1,
172 int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
173 guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
174 int s1_stride, int n, int m);
175 void video_convert_orc_convert_Y42B_YUY2 (guint8 * ORC_RESTRICT d1,
176 int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
177 const guint8 * ORC_RESTRICT s2, int s2_stride,
178 const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
179 void video_convert_orc_convert_Y42B_UYVY (guint8 * ORC_RESTRICT d1,
180 int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
181 const guint8 * ORC_RESTRICT s2, int s2_stride,
182 const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
183 void video_convert_orc_convert_Y42B_AYUV (guint8 * ORC_RESTRICT d1,
184 int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
185 const guint8 * ORC_RESTRICT s2, int s2_stride,
186 const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
187 void video_convert_orc_convert_Y444_YUY2 (guint8 * ORC_RESTRICT d1,
188 int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
189 const guint8 * ORC_RESTRICT s2, int s2_stride,
190 const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
191 void video_convert_orc_convert_Y444_UYVY (guint8 * ORC_RESTRICT d1,
192 int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
193 const guint8 * ORC_RESTRICT s2, int s2_stride,
194 const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
195 void video_convert_orc_convert_Y444_AYUV (guint8 * ORC_RESTRICT d1,
196 int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
197 const guint8 * ORC_RESTRICT s2, int s2_stride,
198 const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
199 void video_convert_orc_convert_AYUV_ARGB (guint8 * ORC_RESTRICT d1,
200 int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1,
201 int p2, int p3, int p4, int p5, int n, int m);
202 void video_convert_orc_convert_AYUV_BGRA (guint8 * ORC_RESTRICT d1,
203 int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1,
204 int p2, int p3, int p4, int p5, int n, int m);
205 void video_convert_orc_convert_AYUV_ABGR (guint8 * ORC_RESTRICT d1,
206 int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1,
207 int p2, int p3, int p4, int p5, int n, int m);
208 void video_convert_orc_convert_AYUV_RGBA (guint8 * ORC_RESTRICT d1,
209 int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1,
210 int p2, int p3, int p4, int p5, int n, int m);
211 void video_convert_orc_convert_I420_BGRA (guint8 * ORC_RESTRICT d1,
212 const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
213 const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int p4, int p5,
217 /* begin Orc C target preamble */
218 #define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))
219 #define ORC_ABS(a) ((a)<0 ? -(a) : (a))
220 #define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))
221 #define ORC_MAX(a,b) ((a)>(b) ? (a) : (b))
222 #define ORC_SB_MAX 127
223 #define ORC_SB_MIN (-1-ORC_SB_MAX)
224 #define ORC_UB_MAX 255
226 #define ORC_SW_MAX 32767
227 #define ORC_SW_MIN (-1-ORC_SW_MAX)
228 #define ORC_UW_MAX 65535
230 #define ORC_SL_MAX 2147483647
231 #define ORC_SL_MIN (-1-ORC_SL_MAX)
232 #define ORC_UL_MAX 4294967295U
234 #define ORC_CLAMP_SB(x) ORC_CLAMP(x,ORC_SB_MIN,ORC_SB_MAX)
235 #define ORC_CLAMP_UB(x) ORC_CLAMP(x,ORC_UB_MIN,ORC_UB_MAX)
236 #define ORC_CLAMP_SW(x) ORC_CLAMP(x,ORC_SW_MIN,ORC_SW_MAX)
237 #define ORC_CLAMP_UW(x) ORC_CLAMP(x,ORC_UW_MIN,ORC_UW_MAX)
238 #define ORC_CLAMP_SL(x) ORC_CLAMP(x,ORC_SL_MIN,ORC_SL_MAX)
239 #define ORC_CLAMP_UL(x) ORC_CLAMP(x,ORC_UL_MIN,ORC_UL_MAX)
240 #define ORC_SWAP_W(x) ((((x)&0xff)<<8) | (((x)&0xff00)>>8))
241 #define ORC_SWAP_L(x) ((((x)&0xff)<<24) | (((x)&0xff00)<<8) | (((x)&0xff0000)>>8) | (((x)&0xff000000)>>24))
242 #define ORC_SWAP_Q(x) ((((x)&ORC_UINT64_C(0xff))<<56) | (((x)&ORC_UINT64_C(0xff00))<<40) | (((x)&ORC_UINT64_C(0xff0000))<<24) | (((x)&ORC_UINT64_C(0xff000000))<<8) | (((x)&ORC_UINT64_C(0xff00000000))>>8) | (((x)&ORC_UINT64_C(0xff0000000000))>>24) | (((x)&ORC_UINT64_C(0xff000000000000))>>40) | (((x)&ORC_UINT64_C(0xff00000000000000))>>56))
243 #define ORC_PTR_OFFSET(ptr,offset) ((void *)(((unsigned char *)(ptr)) + (offset)))
244 #define ORC_DENORMAL(x) ((x) & ((((x)&0x7f800000) == 0) ? 0xff800000 : 0xffffffff))
245 #define ORC_ISNAN(x) ((((x)&0x7f800000) == 0x7f800000) && (((x)&0x007fffff) != 0))
246 #define ORC_DENORMAL_DOUBLE(x) ((x) & ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == 0) ? ORC_UINT64_C(0xfff0000000000000) : ORC_UINT64_C(0xffffffffffffffff)))
247 #define ORC_ISNAN_DOUBLE(x) ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == ORC_UINT64_C(0x7ff0000000000000)) && (((x)&ORC_UINT64_C(0x000fffffffffffff)) != 0))
249 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
250 #define ORC_RESTRICT restrict
251 #elif defined(__GNUC__) && __GNUC__ >= 4
252 #define ORC_RESTRICT __restrict__
257 /* end Orc C target preamble */
261 /* video_convert_orc_memcpy_2d */
264 video_convert_orc_memcpy_2d (guint8 * ORC_RESTRICT d1, int d1_stride,
265 const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
269 orc_int8 *ORC_RESTRICT ptr0;
270 const orc_int8 *ORC_RESTRICT ptr4;
274 for (j = 0; j < m; j++) {
275 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
276 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
279 for (i = 0; i < n; i++) {
293 _backup_video_convert_orc_memcpy_2d (OrcExecutor * ORC_RESTRICT ex)
298 int m = ex->params[ORC_VAR_A1];
299 orc_int8 *ORC_RESTRICT ptr0;
300 const orc_int8 *ORC_RESTRICT ptr4;
304 for (j = 0; j < m; j++) {
305 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
306 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
309 for (i = 0; i < n; i++) {
322 video_convert_orc_memcpy_2d (guint8 * ORC_RESTRICT d1, int d1_stride,
323 const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
325 OrcExecutor _ex, *ex = &_ex;
326 static volatile int p_inited = 0;
327 static OrcCode *c = 0;
328 void (*func) (OrcExecutor *);
331 orc_once_mutex_lock ();
336 static const orc_uint8 bc[] = {
337 1, 7, 9, 27, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
338 116, 95, 111, 114, 99, 95, 109, 101, 109, 99, 112, 121, 95, 50, 100, 11,
339 1, 1, 12, 1, 1, 42, 0, 4, 2, 0,
341 p = orc_program_new_from_static_bytecode (bc);
342 orc_program_set_backup_function (p, _backup_video_convert_orc_memcpy_2d);
344 p = orc_program_new ();
345 orc_program_set_2d (p);
346 orc_program_set_name (p, "video_convert_orc_memcpy_2d");
347 orc_program_set_backup_function (p, _backup_video_convert_orc_memcpy_2d);
348 orc_program_add_destination (p, 1, "d1");
349 orc_program_add_source (p, 1, "s1");
351 orc_program_append_2 (p, "copyb", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
355 orc_program_compile (p);
356 c = orc_program_take_code (p);
357 orc_program_free (p);
360 orc_once_mutex_unlock ();
362 ex->arrays[ORC_VAR_A2] = c;
366 ORC_EXECUTOR_M (ex) = m;
367 ex->arrays[ORC_VAR_D1] = d1;
368 ex->params[ORC_VAR_D1] = d1_stride;
369 ex->arrays[ORC_VAR_S1] = (void *) s1;
370 ex->params[ORC_VAR_S1] = s1_stride;
378 /* video_convert_orc_convert_I420_UYVY */
381 video_convert_orc_convert_I420_UYVY (guint8 * ORC_RESTRICT d1,
382 guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
383 const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
384 const guint8 * ORC_RESTRICT s4, int n)
387 orc_union32 *ORC_RESTRICT ptr0;
388 orc_union32 *ORC_RESTRICT ptr1;
389 const orc_union16 *ORC_RESTRICT ptr4;
390 const orc_union16 *ORC_RESTRICT ptr5;
391 const orc_int8 *ORC_RESTRICT ptr6;
392 const orc_int8 *ORC_RESTRICT ptr7;
401 ptr0 = (orc_union32 *) d1;
402 ptr1 = (orc_union32 *) d2;
403 ptr4 = (orc_union16 *) s1;
404 ptr5 = (orc_union16 *) s2;
405 ptr6 = (orc_int8 *) s3;
406 ptr7 = (orc_int8 *) s4;
409 for (i = 0; i < n; i++) {
426 _dest.x2[0] = var39.x2[0];
427 _dest.x2[1] = var35.x2[0];
428 var36.x2[0] = _dest.i;
432 _dest.x2[0] = var39.x2[1];
433 _dest.x2[1] = var35.x2[1];
434 var36.x2[1] = _dest.i;
443 _dest.x2[0] = var39.x2[0];
444 _dest.x2[1] = var37.x2[0];
445 var38.x2[0] = _dest.i;
449 _dest.x2[0] = var39.x2[1];
450 _dest.x2[1] = var37.x2[1];
451 var38.x2[1] = _dest.i;
461 _backup_video_convert_orc_convert_I420_UYVY (OrcExecutor * ORC_RESTRICT ex)
465 orc_union32 *ORC_RESTRICT ptr0;
466 orc_union32 *ORC_RESTRICT ptr1;
467 const orc_union16 *ORC_RESTRICT ptr4;
468 const orc_union16 *ORC_RESTRICT ptr5;
469 const orc_int8 *ORC_RESTRICT ptr6;
470 const orc_int8 *ORC_RESTRICT ptr7;
479 ptr0 = (orc_union32 *) ex->arrays[0];
480 ptr1 = (orc_union32 *) ex->arrays[1];
481 ptr4 = (orc_union16 *) ex->arrays[4];
482 ptr5 = (orc_union16 *) ex->arrays[5];
483 ptr6 = (orc_int8 *) ex->arrays[6];
484 ptr7 = (orc_int8 *) ex->arrays[7];
487 for (i = 0; i < n; i++) {
504 _dest.x2[0] = var39.x2[0];
505 _dest.x2[1] = var35.x2[0];
506 var36.x2[0] = _dest.i;
510 _dest.x2[0] = var39.x2[1];
511 _dest.x2[1] = var35.x2[1];
512 var36.x2[1] = _dest.i;
521 _dest.x2[0] = var39.x2[0];
522 _dest.x2[1] = var37.x2[0];
523 var38.x2[0] = _dest.i;
527 _dest.x2[0] = var39.x2[1];
528 _dest.x2[1] = var37.x2[1];
529 var38.x2[1] = _dest.i;
538 video_convert_orc_convert_I420_UYVY (guint8 * ORC_RESTRICT d1,
539 guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
540 const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
541 const guint8 * ORC_RESTRICT s4, int n)
543 OrcExecutor _ex, *ex = &_ex;
544 static volatile int p_inited = 0;
545 static OrcCode *c = 0;
546 void (*func) (OrcExecutor *);
549 orc_once_mutex_lock ();
554 static const orc_uint8 bc[] = {
555 1, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
556 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 73, 52, 50,
557 48, 95, 85, 89, 86, 89, 11, 4, 4, 11, 4, 4, 12, 2, 2, 12,
558 2, 2, 12, 1, 1, 12, 1, 1, 20, 2, 196, 32, 6, 7, 21, 1,
559 196, 0, 32, 4, 21, 1, 196, 1, 32, 5, 2, 0,
561 p = orc_program_new_from_static_bytecode (bc);
562 orc_program_set_backup_function (p,
563 _backup_video_convert_orc_convert_I420_UYVY);
565 p = orc_program_new ();
566 orc_program_set_name (p, "video_convert_orc_convert_I420_UYVY");
567 orc_program_set_backup_function (p,
568 _backup_video_convert_orc_convert_I420_UYVY);
569 orc_program_add_destination (p, 4, "d1");
570 orc_program_add_destination (p, 4, "d2");
571 orc_program_add_source (p, 2, "s1");
572 orc_program_add_source (p, 2, "s2");
573 orc_program_add_source (p, 1, "s3");
574 orc_program_add_source (p, 1, "s4");
575 orc_program_add_temporary (p, 2, "t1");
577 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S3, ORC_VAR_S4,
579 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1,
581 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D2, ORC_VAR_T1, ORC_VAR_S2,
585 orc_program_compile (p);
586 c = orc_program_take_code (p);
587 orc_program_free (p);
590 orc_once_mutex_unlock ();
592 ex->arrays[ORC_VAR_A2] = c;
596 ex->arrays[ORC_VAR_D1] = d1;
597 ex->arrays[ORC_VAR_D2] = d2;
598 ex->arrays[ORC_VAR_S1] = (void *) s1;
599 ex->arrays[ORC_VAR_S2] = (void *) s2;
600 ex->arrays[ORC_VAR_S3] = (void *) s3;
601 ex->arrays[ORC_VAR_S4] = (void *) s4;
609 /* video_convert_orc_convert_I420_YUY2 */
612 video_convert_orc_convert_I420_YUY2 (guint8 * ORC_RESTRICT d1,
613 guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
614 const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
615 const guint8 * ORC_RESTRICT s4, int n)
618 orc_union32 *ORC_RESTRICT ptr0;
619 orc_union32 *ORC_RESTRICT ptr1;
620 const orc_union16 *ORC_RESTRICT ptr4;
621 const orc_union16 *ORC_RESTRICT ptr5;
622 const orc_int8 *ORC_RESTRICT ptr6;
623 const orc_int8 *ORC_RESTRICT ptr7;
632 ptr0 = (orc_union32 *) d1;
633 ptr1 = (orc_union32 *) d2;
634 ptr4 = (orc_union16 *) s1;
635 ptr5 = (orc_union16 *) s2;
636 ptr6 = (orc_int8 *) s3;
637 ptr7 = (orc_int8 *) s4;
640 for (i = 0; i < n; i++) {
657 _dest.x2[0] = var35.x2[0];
658 _dest.x2[1] = var39.x2[0];
659 var36.x2[0] = _dest.i;
663 _dest.x2[0] = var35.x2[1];
664 _dest.x2[1] = var39.x2[1];
665 var36.x2[1] = _dest.i;
674 _dest.x2[0] = var37.x2[0];
675 _dest.x2[1] = var39.x2[0];
676 var38.x2[0] = _dest.i;
680 _dest.x2[0] = var37.x2[1];
681 _dest.x2[1] = var39.x2[1];
682 var38.x2[1] = _dest.i;
692 _backup_video_convert_orc_convert_I420_YUY2 (OrcExecutor * ORC_RESTRICT ex)
696 orc_union32 *ORC_RESTRICT ptr0;
697 orc_union32 *ORC_RESTRICT ptr1;
698 const orc_union16 *ORC_RESTRICT ptr4;
699 const orc_union16 *ORC_RESTRICT ptr5;
700 const orc_int8 *ORC_RESTRICT ptr6;
701 const orc_int8 *ORC_RESTRICT ptr7;
710 ptr0 = (orc_union32 *) ex->arrays[0];
711 ptr1 = (orc_union32 *) ex->arrays[1];
712 ptr4 = (orc_union16 *) ex->arrays[4];
713 ptr5 = (orc_union16 *) ex->arrays[5];
714 ptr6 = (orc_int8 *) ex->arrays[6];
715 ptr7 = (orc_int8 *) ex->arrays[7];
718 for (i = 0; i < n; i++) {
735 _dest.x2[0] = var35.x2[0];
736 _dest.x2[1] = var39.x2[0];
737 var36.x2[0] = _dest.i;
741 _dest.x2[0] = var35.x2[1];
742 _dest.x2[1] = var39.x2[1];
743 var36.x2[1] = _dest.i;
752 _dest.x2[0] = var37.x2[0];
753 _dest.x2[1] = var39.x2[0];
754 var38.x2[0] = _dest.i;
758 _dest.x2[0] = var37.x2[1];
759 _dest.x2[1] = var39.x2[1];
760 var38.x2[1] = _dest.i;
769 video_convert_orc_convert_I420_YUY2 (guint8 * ORC_RESTRICT d1,
770 guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
771 const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
772 const guint8 * ORC_RESTRICT s4, int n)
774 OrcExecutor _ex, *ex = &_ex;
775 static volatile int p_inited = 0;
776 static OrcCode *c = 0;
777 void (*func) (OrcExecutor *);
780 orc_once_mutex_lock ();
785 static const orc_uint8 bc[] = {
786 1, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
787 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 73, 52, 50,
788 48, 95, 89, 85, 89, 50, 11, 4, 4, 11, 4, 4, 12, 2, 2, 12,
789 2, 2, 12, 1, 1, 12, 1, 1, 20, 2, 196, 32, 6, 7, 21, 1,
790 196, 0, 4, 32, 21, 1, 196, 1, 5, 32, 2, 0,
792 p = orc_program_new_from_static_bytecode (bc);
793 orc_program_set_backup_function (p,
794 _backup_video_convert_orc_convert_I420_YUY2);
796 p = orc_program_new ();
797 orc_program_set_name (p, "video_convert_orc_convert_I420_YUY2");
798 orc_program_set_backup_function (p,
799 _backup_video_convert_orc_convert_I420_YUY2);
800 orc_program_add_destination (p, 4, "d1");
801 orc_program_add_destination (p, 4, "d2");
802 orc_program_add_source (p, 2, "s1");
803 orc_program_add_source (p, 2, "s2");
804 orc_program_add_source (p, 1, "s3");
805 orc_program_add_source (p, 1, "s4");
806 orc_program_add_temporary (p, 2, "t1");
808 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S3, ORC_VAR_S4,
810 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_T1,
812 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D2, ORC_VAR_S2, ORC_VAR_T1,
816 orc_program_compile (p);
817 c = orc_program_take_code (p);
818 orc_program_free (p);
821 orc_once_mutex_unlock ();
823 ex->arrays[ORC_VAR_A2] = c;
827 ex->arrays[ORC_VAR_D1] = d1;
828 ex->arrays[ORC_VAR_D2] = d2;
829 ex->arrays[ORC_VAR_S1] = (void *) s1;
830 ex->arrays[ORC_VAR_S2] = (void *) s2;
831 ex->arrays[ORC_VAR_S3] = (void *) s3;
832 ex->arrays[ORC_VAR_S4] = (void *) s4;
840 /* video_convert_orc_convert_I420_AYUV */
843 video_convert_orc_convert_I420_AYUV (guint8 * ORC_RESTRICT d1,
844 guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
845 const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
846 const guint8 * ORC_RESTRICT s4, int n)
849 orc_union32 *ORC_RESTRICT ptr0;
850 orc_union32 *ORC_RESTRICT ptr1;
851 const orc_int8 *ORC_RESTRICT ptr4;
852 const orc_int8 *ORC_RESTRICT ptr5;
853 const orc_int8 *ORC_RESTRICT ptr6;
854 const orc_int8 *ORC_RESTRICT ptr7;
855 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
856 volatile orc_int8 var36;
862 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
863 volatile orc_int8 var39;
875 ptr0 = (orc_union32 *) d1;
876 ptr1 = (orc_union32 *) d2;
877 ptr4 = (orc_int8 *) s1;
878 ptr5 = (orc_int8 *) s2;
879 ptr6 = (orc_int8 *) s3;
880 ptr7 = (orc_int8 *) s4;
883 var36 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
885 var39 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
887 for (i = 0; i < n; i++) {
889 var42 = ptr6[i >> 1];
891 var43 = ptr7[i >> 1];
911 _dest.x2[0] = var45.i;
912 _dest.x2[1] = var44.i;
929 _dest.x2[0] = var46.i;
930 _dest.x2[1] = var44.i;
941 _backup_video_convert_orc_convert_I420_AYUV (OrcExecutor * ORC_RESTRICT ex)
945 orc_union32 *ORC_RESTRICT ptr0;
946 orc_union32 *ORC_RESTRICT ptr1;
947 const orc_int8 *ORC_RESTRICT ptr4;
948 const orc_int8 *ORC_RESTRICT ptr5;
949 const orc_int8 *ORC_RESTRICT ptr6;
950 const orc_int8 *ORC_RESTRICT ptr7;
951 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
952 volatile orc_int8 var36;
958 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
959 volatile orc_int8 var39;
971 ptr0 = (orc_union32 *) ex->arrays[0];
972 ptr1 = (orc_union32 *) ex->arrays[1];
973 ptr4 = (orc_int8 *) ex->arrays[4];
974 ptr5 = (orc_int8 *) ex->arrays[5];
975 ptr6 = (orc_int8 *) ex->arrays[6];
976 ptr7 = (orc_int8 *) ex->arrays[7];
979 var36 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
981 var39 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
983 for (i = 0; i < n; i++) {
985 var42 = ptr6[i >> 1];
987 var43 = ptr7[i >> 1];
1000 _dest.x2[0] = var36;
1001 _dest.x2[1] = var37;
1007 _dest.x2[0] = var45.i;
1008 _dest.x2[1] = var44.i;
1018 _dest.x2[0] = var39;
1019 _dest.x2[1] = var40;
1025 _dest.x2[0] = var46.i;
1026 _dest.x2[1] = var44.i;
1036 video_convert_orc_convert_I420_AYUV (guint8 * ORC_RESTRICT d1,
1037 guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
1038 const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
1039 const guint8 * ORC_RESTRICT s4, int n)
1041 OrcExecutor _ex, *ex = &_ex;
1042 static volatile int p_inited = 0;
1043 static OrcCode *c = 0;
1044 void (*func) (OrcExecutor *);
1047 orc_once_mutex_lock ();
1052 static const orc_uint8 bc[] = {
1053 1, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
1054 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 73, 52, 50,
1055 48, 95, 65, 89, 85, 86, 11, 4, 4, 11, 4, 4, 12, 1, 1, 12,
1056 1, 1, 12, 1, 1, 12, 1, 1, 14, 1, 255, 0, 0, 0, 20, 2,
1057 20, 2, 20, 1, 20, 1, 45, 34, 6, 45, 35, 7, 196, 32, 34, 35,
1058 196, 33, 16, 4, 195, 0, 33, 32, 196, 33, 16, 5, 195, 1, 33, 32,
1061 p = orc_program_new_from_static_bytecode (bc);
1062 orc_program_set_backup_function (p,
1063 _backup_video_convert_orc_convert_I420_AYUV);
1065 p = orc_program_new ();
1066 orc_program_set_name (p, "video_convert_orc_convert_I420_AYUV");
1067 orc_program_set_backup_function (p,
1068 _backup_video_convert_orc_convert_I420_AYUV);
1069 orc_program_add_destination (p, 4, "d1");
1070 orc_program_add_destination (p, 4, "d2");
1071 orc_program_add_source (p, 1, "s1");
1072 orc_program_add_source (p, 1, "s2");
1073 orc_program_add_source (p, 1, "s3");
1074 orc_program_add_source (p, 1, "s4");
1075 orc_program_add_constant (p, 1, 0x000000ff, "c1");
1076 orc_program_add_temporary (p, 2, "t1");
1077 orc_program_add_temporary (p, 2, "t2");
1078 orc_program_add_temporary (p, 1, "t3");
1079 orc_program_add_temporary (p, 1, "t4");
1081 orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T3, ORC_VAR_S3,
1082 ORC_VAR_D1, ORC_VAR_D1);
1083 orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T4, ORC_VAR_S4,
1084 ORC_VAR_D1, ORC_VAR_D1);
1085 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_T4,
1087 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_S1,
1089 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
1091 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_S2,
1093 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D2, ORC_VAR_T2, ORC_VAR_T1,
1097 orc_program_compile (p);
1098 c = orc_program_take_code (p);
1099 orc_program_free (p);
1102 orc_once_mutex_unlock ();
1104 ex->arrays[ORC_VAR_A2] = c;
1108 ex->arrays[ORC_VAR_D1] = d1;
1109 ex->arrays[ORC_VAR_D2] = d2;
1110 ex->arrays[ORC_VAR_S1] = (void *) s1;
1111 ex->arrays[ORC_VAR_S2] = (void *) s2;
1112 ex->arrays[ORC_VAR_S3] = (void *) s3;
1113 ex->arrays[ORC_VAR_S4] = (void *) s4;
1121 /* video_convert_orc_convert_YUY2_I420 */
1124 video_convert_orc_convert_YUY2_I420 (guint8 * ORC_RESTRICT d1,
1125 guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
1126 guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1,
1127 const guint8 * ORC_RESTRICT s2, int n)
1130 orc_union16 *ORC_RESTRICT ptr0;
1131 orc_union16 *ORC_RESTRICT ptr1;
1132 orc_int8 *ORC_RESTRICT ptr2;
1133 orc_int8 *ORC_RESTRICT ptr3;
1134 const orc_union32 *ORC_RESTRICT ptr4;
1135 const orc_union32 *ORC_RESTRICT ptr5;
1146 ptr0 = (orc_union16 *) d1;
1147 ptr1 = (orc_union16 *) d2;
1148 ptr2 = (orc_int8 *) d3;
1149 ptr3 = (orc_int8 *) d4;
1150 ptr4 = (orc_union32 *) s1;
1151 ptr5 = (orc_union32 *) s2;
1154 for (i = 0; i < n; i++) {
1160 _src.i = var35.x2[0];
1161 var39.x2[0] = _src.x2[1];
1162 var40.x2[0] = _src.x2[0];
1166 _src.i = var35.x2[1];
1167 var39.x2[1] = _src.x2[1];
1168 var40.x2[1] = _src.x2[0];
1177 _src.i = var36.x2[0];
1178 var41.x2[0] = _src.x2[1];
1179 var42.x2[0] = _src.x2[0];
1183 _src.i = var36.x2[1];
1184 var41.x2[1] = _src.x2[1];
1185 var42.x2[1] = _src.x2[0];
1190 var43.x2[0] = ((orc_uint8) var39.x2[0] + (orc_uint8) var41.x2[0] + 1) >> 1;
1191 var43.x2[1] = ((orc_uint8) var39.x2[1] + (orc_uint8) var41.x2[1] + 1) >> 1;
1209 _backup_video_convert_orc_convert_YUY2_I420 (OrcExecutor * ORC_RESTRICT ex)
1213 orc_union16 *ORC_RESTRICT ptr0;
1214 orc_union16 *ORC_RESTRICT ptr1;
1215 orc_int8 *ORC_RESTRICT ptr2;
1216 orc_int8 *ORC_RESTRICT ptr3;
1217 const orc_union32 *ORC_RESTRICT ptr4;
1218 const orc_union32 *ORC_RESTRICT ptr5;
1229 ptr0 = (orc_union16 *) ex->arrays[0];
1230 ptr1 = (orc_union16 *) ex->arrays[1];
1231 ptr2 = (orc_int8 *) ex->arrays[2];
1232 ptr3 = (orc_int8 *) ex->arrays[3];
1233 ptr4 = (orc_union32 *) ex->arrays[4];
1234 ptr5 = (orc_union32 *) ex->arrays[5];
1237 for (i = 0; i < n; i++) {
1243 _src.i = var35.x2[0];
1244 var39.x2[0] = _src.x2[1];
1245 var40.x2[0] = _src.x2[0];
1249 _src.i = var35.x2[1];
1250 var39.x2[1] = _src.x2[1];
1251 var40.x2[1] = _src.x2[0];
1260 _src.i = var36.x2[0];
1261 var41.x2[0] = _src.x2[1];
1262 var42.x2[0] = _src.x2[0];
1266 _src.i = var36.x2[1];
1267 var41.x2[1] = _src.x2[1];
1268 var42.x2[1] = _src.x2[0];
1273 var43.x2[0] = ((orc_uint8) var39.x2[0] + (orc_uint8) var41.x2[0] + 1) >> 1;
1274 var43.x2[1] = ((orc_uint8) var39.x2[1] + (orc_uint8) var41.x2[1] + 1) >> 1;
1291 video_convert_orc_convert_YUY2_I420 (guint8 * ORC_RESTRICT d1,
1292 guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
1293 guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1,
1294 const guint8 * ORC_RESTRICT s2, int n)
1296 OrcExecutor _ex, *ex = &_ex;
1297 static volatile int p_inited = 0;
1298 static OrcCode *c = 0;
1299 void (*func) (OrcExecutor *);
1302 orc_once_mutex_lock ();
1307 static const orc_uint8 bc[] = {
1308 1, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
1309 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 85, 89,
1310 50, 95, 73, 52, 50, 48, 11, 2, 2, 11, 2, 2, 11, 1, 1, 11,
1311 1, 1, 12, 4, 4, 12, 4, 4, 20, 2, 20, 2, 20, 2, 21, 1,
1312 199, 32, 34, 4, 97, 0, 34, 21, 1, 199, 33, 34, 5, 97, 1, 34,
1313 21, 1, 39, 32, 32, 33, 199, 3, 2, 32, 2, 0,
1315 p = orc_program_new_from_static_bytecode (bc);
1316 orc_program_set_backup_function (p,
1317 _backup_video_convert_orc_convert_YUY2_I420);
1319 p = orc_program_new ();
1320 orc_program_set_name (p, "video_convert_orc_convert_YUY2_I420");
1321 orc_program_set_backup_function (p,
1322 _backup_video_convert_orc_convert_YUY2_I420);
1323 orc_program_add_destination (p, 2, "d1");
1324 orc_program_add_destination (p, 2, "d2");
1325 orc_program_add_destination (p, 1, "d3");
1326 orc_program_add_destination (p, 1, "d4");
1327 orc_program_add_source (p, 4, "s1");
1328 orc_program_add_source (p, 4, "s2");
1329 orc_program_add_temporary (p, 2, "t1");
1330 orc_program_add_temporary (p, 2, "t2");
1331 orc_program_add_temporary (p, 2, "t3");
1333 orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_S1,
1335 orc_program_append_2 (p, "storew", 0, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_D1,
1337 orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_S2,
1339 orc_program_append_2 (p, "storew", 0, ORC_VAR_D2, ORC_VAR_T3, ORC_VAR_D1,
1341 orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
1343 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D4, ORC_VAR_D3, ORC_VAR_T1,
1347 orc_program_compile (p);
1348 c = orc_program_take_code (p);
1349 orc_program_free (p);
1352 orc_once_mutex_unlock ();
1354 ex->arrays[ORC_VAR_A2] = c;
1358 ex->arrays[ORC_VAR_D1] = d1;
1359 ex->arrays[ORC_VAR_D2] = d2;
1360 ex->arrays[ORC_VAR_D3] = d3;
1361 ex->arrays[ORC_VAR_D4] = d4;
1362 ex->arrays[ORC_VAR_S1] = (void *) s1;
1363 ex->arrays[ORC_VAR_S2] = (void *) s2;
1371 /* video_convert_orc_convert_UYVY_YUY2 */
1374 video_convert_orc_convert_UYVY_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
1375 const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
1379 orc_union32 *ORC_RESTRICT ptr0;
1380 const orc_union32 *ORC_RESTRICT ptr4;
1384 for (j = 0; j < m; j++) {
1385 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
1386 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
1389 for (i = 0; i < n; i++) {
1393 var33.x2[0] = ORC_SWAP_W (var32.x2[0]);
1394 var33.x2[1] = ORC_SWAP_W (var32.x2[1]);
1404 _backup_video_convert_orc_convert_UYVY_YUY2 (OrcExecutor * ORC_RESTRICT ex)
1409 int m = ex->params[ORC_VAR_A1];
1410 orc_union32 *ORC_RESTRICT ptr0;
1411 const orc_union32 *ORC_RESTRICT ptr4;
1415 for (j = 0; j < m; j++) {
1416 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
1417 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
1420 for (i = 0; i < n; i++) {
1424 var33.x2[0] = ORC_SWAP_W (var32.x2[0]);
1425 var33.x2[1] = ORC_SWAP_W (var32.x2[1]);
1434 video_convert_orc_convert_UYVY_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
1435 const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
1437 OrcExecutor _ex, *ex = &_ex;
1438 static volatile int p_inited = 0;
1439 static OrcCode *c = 0;
1440 void (*func) (OrcExecutor *);
1443 orc_once_mutex_lock ();
1448 static const orc_uint8 bc[] = {
1449 1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
1450 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 85, 89,
1451 86, 89, 95, 89, 85, 89, 50, 11, 4, 4, 12, 4, 4, 21, 1, 183,
1454 p = orc_program_new_from_static_bytecode (bc);
1455 orc_program_set_backup_function (p,
1456 _backup_video_convert_orc_convert_UYVY_YUY2);
1458 p = orc_program_new ();
1459 orc_program_set_2d (p);
1460 orc_program_set_name (p, "video_convert_orc_convert_UYVY_YUY2");
1461 orc_program_set_backup_function (p,
1462 _backup_video_convert_orc_convert_UYVY_YUY2);
1463 orc_program_add_destination (p, 4, "d1");
1464 orc_program_add_source (p, 4, "s1");
1466 orc_program_append_2 (p, "swapw", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
1470 orc_program_compile (p);
1471 c = orc_program_take_code (p);
1472 orc_program_free (p);
1475 orc_once_mutex_unlock ();
1477 ex->arrays[ORC_VAR_A2] = c;
1481 ORC_EXECUTOR_M (ex) = m;
1482 ex->arrays[ORC_VAR_D1] = d1;
1483 ex->params[ORC_VAR_D1] = d1_stride;
1484 ex->arrays[ORC_VAR_S1] = (void *) s1;
1485 ex->params[ORC_VAR_S1] = s1_stride;
1493 /* video_convert_orc_planar_chroma_420_422 */
1496 video_convert_orc_planar_chroma_420_422 (guint8 * ORC_RESTRICT d1,
1497 int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
1498 const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
1502 orc_int8 *ORC_RESTRICT ptr0;
1503 orc_int8 *ORC_RESTRICT ptr1;
1504 const orc_int8 *ORC_RESTRICT ptr4;
1510 for (j = 0; j < m; j++) {
1511 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
1512 ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
1513 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
1516 for (i = 0; i < n; i++) {
1536 _backup_video_convert_orc_planar_chroma_420_422 (OrcExecutor * ORC_RESTRICT ex)
1541 int m = ex->params[ORC_VAR_A1];
1542 orc_int8 *ORC_RESTRICT ptr0;
1543 orc_int8 *ORC_RESTRICT ptr1;
1544 const orc_int8 *ORC_RESTRICT ptr4;
1550 for (j = 0; j < m; j++) {
1551 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
1552 ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
1553 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
1556 for (i = 0; i < n; i++) {
1575 video_convert_orc_planar_chroma_420_422 (guint8 * ORC_RESTRICT d1,
1576 int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
1577 const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
1579 OrcExecutor _ex, *ex = &_ex;
1580 static volatile int p_inited = 0;
1581 static OrcCode *c = 0;
1582 void (*func) (OrcExecutor *);
1585 orc_once_mutex_lock ();
1590 static const orc_uint8 bc[] = {
1591 1, 7, 9, 39, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
1592 116, 95, 111, 114, 99, 95, 112, 108, 97, 110, 97, 114, 95, 99, 104, 114,
1593 111, 109, 97, 95, 52, 50, 48, 95, 52, 50, 50, 11, 1, 1, 11, 1,
1594 1, 12, 1, 1, 42, 0, 4, 42, 1, 4, 2, 0,
1596 p = orc_program_new_from_static_bytecode (bc);
1597 orc_program_set_backup_function (p,
1598 _backup_video_convert_orc_planar_chroma_420_422);
1600 p = orc_program_new ();
1601 orc_program_set_2d (p);
1602 orc_program_set_name (p, "video_convert_orc_planar_chroma_420_422");
1603 orc_program_set_backup_function (p,
1604 _backup_video_convert_orc_planar_chroma_420_422);
1605 orc_program_add_destination (p, 1, "d1");
1606 orc_program_add_destination (p, 1, "d2");
1607 orc_program_add_source (p, 1, "s1");
1609 orc_program_append_2 (p, "copyb", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
1611 orc_program_append_2 (p, "copyb", 0, ORC_VAR_D2, ORC_VAR_S1, ORC_VAR_D1,
1615 orc_program_compile (p);
1616 c = orc_program_take_code (p);
1617 orc_program_free (p);
1620 orc_once_mutex_unlock ();
1622 ex->arrays[ORC_VAR_A2] = c;
1626 ORC_EXECUTOR_M (ex) = m;
1627 ex->arrays[ORC_VAR_D1] = d1;
1628 ex->params[ORC_VAR_D1] = d1_stride;
1629 ex->arrays[ORC_VAR_D2] = d2;
1630 ex->params[ORC_VAR_D2] = d2_stride;
1631 ex->arrays[ORC_VAR_S1] = (void *) s1;
1632 ex->params[ORC_VAR_S1] = s1_stride;
1640 /* video_convert_orc_planar_chroma_420_444 */
1643 video_convert_orc_planar_chroma_420_444 (guint8 * ORC_RESTRICT d1,
1644 int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
1645 const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
1649 orc_union16 *ORC_RESTRICT ptr0;
1650 orc_union16 *ORC_RESTRICT ptr1;
1651 const orc_int8 *ORC_RESTRICT ptr4;
1655 for (j = 0; j < m; j++) {
1656 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
1657 ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
1658 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
1661 for (i = 0; i < n; i++) {
1665 var34.i = ((var33 & 0xff) << 8) | (var33 & 0xff);
1677 _backup_video_convert_orc_planar_chroma_420_444 (OrcExecutor * ORC_RESTRICT ex)
1682 int m = ex->params[ORC_VAR_A1];
1683 orc_union16 *ORC_RESTRICT ptr0;
1684 orc_union16 *ORC_RESTRICT ptr1;
1685 const orc_int8 *ORC_RESTRICT ptr4;
1689 for (j = 0; j < m; j++) {
1690 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
1691 ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
1692 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
1695 for (i = 0; i < n; i++) {
1699 var34.i = ((var33 & 0xff) << 8) | (var33 & 0xff);
1710 video_convert_orc_planar_chroma_420_444 (guint8 * ORC_RESTRICT d1,
1711 int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
1712 const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
1714 OrcExecutor _ex, *ex = &_ex;
1715 static volatile int p_inited = 0;
1716 static OrcCode *c = 0;
1717 void (*func) (OrcExecutor *);
1720 orc_once_mutex_lock ();
1725 static const orc_uint8 bc[] = {
1726 1, 7, 9, 39, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
1727 116, 95, 111, 114, 99, 95, 112, 108, 97, 110, 97, 114, 95, 99, 104, 114,
1728 111, 109, 97, 95, 52, 50, 48, 95, 52, 52, 52, 11, 2, 2, 11, 2,
1729 2, 12, 1, 1, 20, 2, 151, 32, 4, 97, 0, 32, 97, 1, 32, 2,
1732 p = orc_program_new_from_static_bytecode (bc);
1733 orc_program_set_backup_function (p,
1734 _backup_video_convert_orc_planar_chroma_420_444);
1736 p = orc_program_new ();
1737 orc_program_set_2d (p);
1738 orc_program_set_name (p, "video_convert_orc_planar_chroma_420_444");
1739 orc_program_set_backup_function (p,
1740 _backup_video_convert_orc_planar_chroma_420_444);
1741 orc_program_add_destination (p, 2, "d1");
1742 orc_program_add_destination (p, 2, "d2");
1743 orc_program_add_source (p, 1, "s1");
1744 orc_program_add_temporary (p, 2, "t1");
1746 orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
1748 orc_program_append_2 (p, "storew", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
1750 orc_program_append_2 (p, "storew", 0, ORC_VAR_D2, ORC_VAR_T1, ORC_VAR_D1,
1754 orc_program_compile (p);
1755 c = orc_program_take_code (p);
1756 orc_program_free (p);
1759 orc_once_mutex_unlock ();
1761 ex->arrays[ORC_VAR_A2] = c;
1765 ORC_EXECUTOR_M (ex) = m;
1766 ex->arrays[ORC_VAR_D1] = d1;
1767 ex->params[ORC_VAR_D1] = d1_stride;
1768 ex->arrays[ORC_VAR_D2] = d2;
1769 ex->params[ORC_VAR_D2] = d2_stride;
1770 ex->arrays[ORC_VAR_S1] = (void *) s1;
1771 ex->params[ORC_VAR_S1] = s1_stride;
1779 /* video_convert_orc_planar_chroma_422_444 */
1782 video_convert_orc_planar_chroma_422_444 (guint8 * ORC_RESTRICT d1,
1783 int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
1787 orc_union16 *ORC_RESTRICT ptr0;
1788 const orc_int8 *ORC_RESTRICT ptr4;
1792 for (j = 0; j < m; j++) {
1793 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
1794 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
1797 for (i = 0; i < n; i++) {
1801 var34.i = ((var33 & 0xff) << 8) | (var33 & 0xff);
1811 _backup_video_convert_orc_planar_chroma_422_444 (OrcExecutor * ORC_RESTRICT ex)
1816 int m = ex->params[ORC_VAR_A1];
1817 orc_union16 *ORC_RESTRICT ptr0;
1818 const orc_int8 *ORC_RESTRICT ptr4;
1822 for (j = 0; j < m; j++) {
1823 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
1824 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
1827 for (i = 0; i < n; i++) {
1831 var34.i = ((var33 & 0xff) << 8) | (var33 & 0xff);
1840 video_convert_orc_planar_chroma_422_444 (guint8 * ORC_RESTRICT d1,
1841 int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
1843 OrcExecutor _ex, *ex = &_ex;
1844 static volatile int p_inited = 0;
1845 static OrcCode *c = 0;
1846 void (*func) (OrcExecutor *);
1849 orc_once_mutex_lock ();
1854 static const orc_uint8 bc[] = {
1855 1, 7, 9, 39, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
1856 116, 95, 111, 114, 99, 95, 112, 108, 97, 110, 97, 114, 95, 99, 104, 114,
1857 111, 109, 97, 95, 52, 50, 50, 95, 52, 52, 52, 11, 2, 2, 12, 1,
1858 1, 20, 2, 151, 32, 4, 97, 0, 32, 2, 0,
1860 p = orc_program_new_from_static_bytecode (bc);
1861 orc_program_set_backup_function (p,
1862 _backup_video_convert_orc_planar_chroma_422_444);
1864 p = orc_program_new ();
1865 orc_program_set_2d (p);
1866 orc_program_set_name (p, "video_convert_orc_planar_chroma_422_444");
1867 orc_program_set_backup_function (p,
1868 _backup_video_convert_orc_planar_chroma_422_444);
1869 orc_program_add_destination (p, 2, "d1");
1870 orc_program_add_source (p, 1, "s1");
1871 orc_program_add_temporary (p, 2, "t1");
1873 orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
1875 orc_program_append_2 (p, "storew", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
1879 orc_program_compile (p);
1880 c = orc_program_take_code (p);
1881 orc_program_free (p);
1884 orc_once_mutex_unlock ();
1886 ex->arrays[ORC_VAR_A2] = c;
1890 ORC_EXECUTOR_M (ex) = m;
1891 ex->arrays[ORC_VAR_D1] = d1;
1892 ex->params[ORC_VAR_D1] = d1_stride;
1893 ex->arrays[ORC_VAR_S1] = (void *) s1;
1894 ex->params[ORC_VAR_S1] = s1_stride;
1902 /* video_convert_orc_planar_chroma_444_422 */
1905 video_convert_orc_planar_chroma_444_422 (guint8 * ORC_RESTRICT d1,
1906 int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
1910 orc_int8 *ORC_RESTRICT ptr0;
1911 const orc_union16 *ORC_RESTRICT ptr4;
1917 for (j = 0; j < m; j++) {
1918 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
1919 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
1922 for (i = 0; i < n; i++) {
1933 var35 = ((orc_uint8) var36 + (orc_uint8) var37 + 1) >> 1;
1943 _backup_video_convert_orc_planar_chroma_444_422 (OrcExecutor * ORC_RESTRICT ex)
1948 int m = ex->params[ORC_VAR_A1];
1949 orc_int8 *ORC_RESTRICT ptr0;
1950 const orc_union16 *ORC_RESTRICT ptr4;
1956 for (j = 0; j < m; j++) {
1957 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
1958 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
1961 for (i = 0; i < n; i++) {
1972 var35 = ((orc_uint8) var36 + (orc_uint8) var37 + 1) >> 1;
1981 video_convert_orc_planar_chroma_444_422 (guint8 * ORC_RESTRICT d1,
1982 int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
1984 OrcExecutor _ex, *ex = &_ex;
1985 static volatile int p_inited = 0;
1986 static OrcCode *c = 0;
1987 void (*func) (OrcExecutor *);
1990 orc_once_mutex_lock ();
1995 static const orc_uint8 bc[] = {
1996 1, 7, 9, 39, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
1997 116, 95, 111, 114, 99, 95, 112, 108, 97, 110, 97, 114, 95, 99, 104, 114,
1998 111, 109, 97, 95, 52, 52, 52, 95, 52, 50, 50, 11, 1, 1, 12, 2,
1999 2, 20, 1, 20, 1, 199, 32, 33, 4, 39, 0, 32, 33, 2, 0,
2001 p = orc_program_new_from_static_bytecode (bc);
2002 orc_program_set_backup_function (p,
2003 _backup_video_convert_orc_planar_chroma_444_422);
2005 p = orc_program_new ();
2006 orc_program_set_2d (p);
2007 orc_program_set_name (p, "video_convert_orc_planar_chroma_444_422");
2008 orc_program_set_backup_function (p,
2009 _backup_video_convert_orc_planar_chroma_444_422);
2010 orc_program_add_destination (p, 1, "d1");
2011 orc_program_add_source (p, 2, "s1");
2012 orc_program_add_temporary (p, 1, "t1");
2013 orc_program_add_temporary (p, 1, "t2");
2015 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_S1,
2017 orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
2021 orc_program_compile (p);
2022 c = orc_program_take_code (p);
2023 orc_program_free (p);
2026 orc_once_mutex_unlock ();
2028 ex->arrays[ORC_VAR_A2] = c;
2032 ORC_EXECUTOR_M (ex) = m;
2033 ex->arrays[ORC_VAR_D1] = d1;
2034 ex->params[ORC_VAR_D1] = d1_stride;
2035 ex->arrays[ORC_VAR_S1] = (void *) s1;
2036 ex->params[ORC_VAR_S1] = s1_stride;
2044 /* video_convert_orc_planar_chroma_444_420 */
2047 video_convert_orc_planar_chroma_444_420 (guint8 * ORC_RESTRICT d1,
2048 int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
2049 const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m)
2053 orc_int8 *ORC_RESTRICT ptr0;
2054 const orc_union16 *ORC_RESTRICT ptr4;
2055 const orc_union16 *ORC_RESTRICT ptr5;
2063 for (j = 0; j < m; j++) {
2064 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
2065 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
2066 ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
2069 for (i = 0; i < n; i++) {
2076 ((orc_uint8) var35.x2[0] + (orc_uint8) var36.x2[0] + 1) >> 1;
2078 ((orc_uint8) var35.x2[1] + (orc_uint8) var36.x2[1] + 1) >> 1;
2087 var37 = ((orc_uint8) var39 + (orc_uint8) var40 + 1) >> 1;
2097 _backup_video_convert_orc_planar_chroma_444_420 (OrcExecutor * ORC_RESTRICT ex)
2102 int m = ex->params[ORC_VAR_A1];
2103 orc_int8 *ORC_RESTRICT ptr0;
2104 const orc_union16 *ORC_RESTRICT ptr4;
2105 const orc_union16 *ORC_RESTRICT ptr5;
2113 for (j = 0; j < m; j++) {
2114 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
2115 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
2116 ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
2119 for (i = 0; i < n; i++) {
2126 ((orc_uint8) var35.x2[0] + (orc_uint8) var36.x2[0] + 1) >> 1;
2128 ((orc_uint8) var35.x2[1] + (orc_uint8) var36.x2[1] + 1) >> 1;
2137 var37 = ((orc_uint8) var39 + (orc_uint8) var40 + 1) >> 1;
2146 video_convert_orc_planar_chroma_444_420 (guint8 * ORC_RESTRICT d1,
2147 int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
2148 const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m)
2150 OrcExecutor _ex, *ex = &_ex;
2151 static volatile int p_inited = 0;
2152 static OrcCode *c = 0;
2153 void (*func) (OrcExecutor *);
2156 orc_once_mutex_lock ();
2161 static const orc_uint8 bc[] = {
2162 1, 7, 9, 39, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
2163 116, 95, 111, 114, 99, 95, 112, 108, 97, 110, 97, 114, 95, 99, 104, 114,
2164 111, 109, 97, 95, 52, 52, 52, 95, 52, 50, 48, 11, 1, 1, 12, 2,
2165 2, 12, 2, 2, 20, 2, 20, 1, 20, 1, 21, 1, 39, 32, 4, 5,
2166 199, 33, 34, 32, 39, 0, 33, 34, 2, 0,
2168 p = orc_program_new_from_static_bytecode (bc);
2169 orc_program_set_backup_function (p,
2170 _backup_video_convert_orc_planar_chroma_444_420);
2172 p = orc_program_new ();
2173 orc_program_set_2d (p);
2174 orc_program_set_name (p, "video_convert_orc_planar_chroma_444_420");
2175 orc_program_set_backup_function (p,
2176 _backup_video_convert_orc_planar_chroma_444_420);
2177 orc_program_add_destination (p, 1, "d1");
2178 orc_program_add_source (p, 2, "s1");
2179 orc_program_add_source (p, 2, "s2");
2180 orc_program_add_temporary (p, 2, "t1");
2181 orc_program_add_temporary (p, 1, "t2");
2182 orc_program_add_temporary (p, 1, "t3");
2184 orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_S2,
2186 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T1,
2188 orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T3,
2192 orc_program_compile (p);
2193 c = orc_program_take_code (p);
2194 orc_program_free (p);
2197 orc_once_mutex_unlock ();
2199 ex->arrays[ORC_VAR_A2] = c;
2203 ORC_EXECUTOR_M (ex) = m;
2204 ex->arrays[ORC_VAR_D1] = d1;
2205 ex->params[ORC_VAR_D1] = d1_stride;
2206 ex->arrays[ORC_VAR_S1] = (void *) s1;
2207 ex->params[ORC_VAR_S1] = s1_stride;
2208 ex->arrays[ORC_VAR_S2] = (void *) s2;
2209 ex->params[ORC_VAR_S2] = s2_stride;
2217 /* video_convert_orc_planar_chroma_422_420 */
2220 video_convert_orc_planar_chroma_422_420 (guint8 * ORC_RESTRICT d1,
2221 int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
2222 const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m)
2226 orc_int8 *ORC_RESTRICT ptr0;
2227 const orc_int8 *ORC_RESTRICT ptr4;
2228 const orc_int8 *ORC_RESTRICT ptr5;
2233 for (j = 0; j < m; j++) {
2234 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
2235 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
2236 ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
2239 for (i = 0; i < n; i++) {
2245 var34 = ((orc_uint8) var32 + (orc_uint8) var33 + 1) >> 1;
2255 _backup_video_convert_orc_planar_chroma_422_420 (OrcExecutor * ORC_RESTRICT ex)
2260 int m = ex->params[ORC_VAR_A1];
2261 orc_int8 *ORC_RESTRICT ptr0;
2262 const orc_int8 *ORC_RESTRICT ptr4;
2263 const orc_int8 *ORC_RESTRICT ptr5;
2268 for (j = 0; j < m; j++) {
2269 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
2270 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
2271 ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
2274 for (i = 0; i < n; i++) {
2280 var34 = ((orc_uint8) var32 + (orc_uint8) var33 + 1) >> 1;
2289 video_convert_orc_planar_chroma_422_420 (guint8 * ORC_RESTRICT d1,
2290 int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
2291 const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m)
2293 OrcExecutor _ex, *ex = &_ex;
2294 static volatile int p_inited = 0;
2295 static OrcCode *c = 0;
2296 void (*func) (OrcExecutor *);
2299 orc_once_mutex_lock ();
2304 static const orc_uint8 bc[] = {
2305 1, 7, 9, 39, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
2306 116, 95, 111, 114, 99, 95, 112, 108, 97, 110, 97, 114, 95, 99, 104, 114,
2307 111, 109, 97, 95, 52, 50, 50, 95, 52, 50, 48, 11, 1, 1, 12, 1,
2308 1, 12, 1, 1, 39, 0, 4, 5, 2, 0,
2310 p = orc_program_new_from_static_bytecode (bc);
2311 orc_program_set_backup_function (p,
2312 _backup_video_convert_orc_planar_chroma_422_420);
2314 p = orc_program_new ();
2315 orc_program_set_2d (p);
2316 orc_program_set_name (p, "video_convert_orc_planar_chroma_422_420");
2317 orc_program_set_backup_function (p,
2318 _backup_video_convert_orc_planar_chroma_422_420);
2319 orc_program_add_destination (p, 1, "d1");
2320 orc_program_add_source (p, 1, "s1");
2321 orc_program_add_source (p, 1, "s2");
2323 orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_S2,
2327 orc_program_compile (p);
2328 c = orc_program_take_code (p);
2329 orc_program_free (p);
2332 orc_once_mutex_unlock ();
2334 ex->arrays[ORC_VAR_A2] = c;
2338 ORC_EXECUTOR_M (ex) = m;
2339 ex->arrays[ORC_VAR_D1] = d1;
2340 ex->params[ORC_VAR_D1] = d1_stride;
2341 ex->arrays[ORC_VAR_S1] = (void *) s1;
2342 ex->params[ORC_VAR_S1] = s1_stride;
2343 ex->arrays[ORC_VAR_S2] = (void *) s2;
2344 ex->params[ORC_VAR_S2] = s2_stride;
2352 /* video_convert_orc_convert_YUY2_AYUV */
2355 video_convert_orc_convert_YUY2_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
2356 const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
2360 orc_union64 *ORC_RESTRICT ptr0;
2361 const orc_union32 *ORC_RESTRICT ptr4;
2363 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
2364 volatile orc_union16 var37;
2374 for (j = 0; j < m; j++) {
2375 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
2376 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
2379 var37.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
2380 var37.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
2382 for (i = 0; i < n; i++) {
2388 _src.i = var36.x2[0];
2389 var39.x2[0] = _src.x2[1];
2390 var40.x2[0] = _src.x2[0];
2394 _src.i = var36.x2[1];
2395 var39.x2[1] = _src.x2[1];
2396 var40.x2[1] = _src.x2[0];
2401 _dest.x2[0] = var37.x2[0];
2402 _dest.x2[1] = var40.x2[0];
2403 var41.x2[0] = _dest.i;
2407 _dest.x2[0] = var37.x2[1];
2408 _dest.x2[1] = var40.x2[1];
2409 var41.x2[1] = _dest.i;
2414 _dest.x2[0] = var39.i;
2415 _dest.x2[1] = var39.i;
2421 _dest.x2[0] = var41.x2[0];
2422 _dest.x2[1] = var42.x2[0];
2423 var38.x2[0] = _dest.i;
2427 _dest.x2[0] = var41.x2[1];
2428 _dest.x2[1] = var42.x2[1];
2429 var38.x2[1] = _dest.i;
2440 _backup_video_convert_orc_convert_YUY2_AYUV (OrcExecutor * ORC_RESTRICT ex)
2445 int m = ex->params[ORC_VAR_A1];
2446 orc_union64 *ORC_RESTRICT ptr0;
2447 const orc_union32 *ORC_RESTRICT ptr4;
2449 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
2450 volatile orc_union16 var37;
2460 for (j = 0; j < m; j++) {
2461 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
2462 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
2465 var37.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
2466 var37.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
2468 for (i = 0; i < n; i++) {
2474 _src.i = var36.x2[0];
2475 var39.x2[0] = _src.x2[1];
2476 var40.x2[0] = _src.x2[0];
2480 _src.i = var36.x2[1];
2481 var39.x2[1] = _src.x2[1];
2482 var40.x2[1] = _src.x2[0];
2487 _dest.x2[0] = var37.x2[0];
2488 _dest.x2[1] = var40.x2[0];
2489 var41.x2[0] = _dest.i;
2493 _dest.x2[0] = var37.x2[1];
2494 _dest.x2[1] = var40.x2[1];
2495 var41.x2[1] = _dest.i;
2500 _dest.x2[0] = var39.i;
2501 _dest.x2[1] = var39.i;
2507 _dest.x2[0] = var41.x2[0];
2508 _dest.x2[1] = var42.x2[0];
2509 var38.x2[0] = _dest.i;
2513 _dest.x2[0] = var41.x2[1];
2514 _dest.x2[1] = var42.x2[1];
2515 var38.x2[1] = _dest.i;
2525 video_convert_orc_convert_YUY2_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
2526 const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
2528 OrcExecutor _ex, *ex = &_ex;
2529 static volatile int p_inited = 0;
2530 static OrcCode *c = 0;
2531 void (*func) (OrcExecutor *);
2534 orc_once_mutex_lock ();
2539 static const orc_uint8 bc[] = {
2540 1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
2541 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 85,
2542 89, 50, 95, 65, 89, 85, 86, 11, 8, 8, 12, 4, 4, 14, 2, 255,
2543 0, 0, 0, 20, 2, 20, 2, 20, 4, 20, 4, 21, 1, 199, 33, 32,
2544 4, 21, 1, 196, 34, 16, 32, 195, 35, 33, 33, 21, 1, 195, 0, 34,
2547 p = orc_program_new_from_static_bytecode (bc);
2548 orc_program_set_backup_function (p,
2549 _backup_video_convert_orc_convert_YUY2_AYUV);
2551 p = orc_program_new ();
2552 orc_program_set_2d (p);
2553 orc_program_set_name (p, "video_convert_orc_convert_YUY2_AYUV");
2554 orc_program_set_backup_function (p,
2555 _backup_video_convert_orc_convert_YUY2_AYUV);
2556 orc_program_add_destination (p, 8, "d1");
2557 orc_program_add_source (p, 4, "s1");
2558 orc_program_add_constant (p, 2, 0x000000ff, "c1");
2559 orc_program_add_temporary (p, 2, "t1");
2560 orc_program_add_temporary (p, 2, "t2");
2561 orc_program_add_temporary (p, 4, "t3");
2562 orc_program_add_temporary (p, 4, "t4");
2564 orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
2566 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T3, ORC_VAR_C1, ORC_VAR_T1,
2568 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_T2,
2570 orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4,
2574 orc_program_compile (p);
2575 c = orc_program_take_code (p);
2576 orc_program_free (p);
2579 orc_once_mutex_unlock ();
2581 ex->arrays[ORC_VAR_A2] = c;
2585 ORC_EXECUTOR_M (ex) = m;
2586 ex->arrays[ORC_VAR_D1] = d1;
2587 ex->params[ORC_VAR_D1] = d1_stride;
2588 ex->arrays[ORC_VAR_S1] = (void *) s1;
2589 ex->params[ORC_VAR_S1] = s1_stride;
2597 /* video_convert_orc_convert_UYVY_AYUV */
2600 video_convert_orc_convert_UYVY_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
2601 const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
2605 orc_union64 *ORC_RESTRICT ptr0;
2606 const orc_union32 *ORC_RESTRICT ptr4;
2608 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
2609 volatile orc_union16 var37;
2619 for (j = 0; j < m; j++) {
2620 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
2621 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
2624 var37.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
2625 var37.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
2627 for (i = 0; i < n; i++) {
2633 _src.i = var36.x2[0];
2634 var39.x2[0] = _src.x2[1];
2635 var40.x2[0] = _src.x2[0];
2639 _src.i = var36.x2[1];
2640 var39.x2[1] = _src.x2[1];
2641 var40.x2[1] = _src.x2[0];
2646 _dest.x2[0] = var37.x2[0];
2647 _dest.x2[1] = var39.x2[0];
2648 var41.x2[0] = _dest.i;
2652 _dest.x2[0] = var37.x2[1];
2653 _dest.x2[1] = var39.x2[1];
2654 var41.x2[1] = _dest.i;
2659 _dest.x2[0] = var40.i;
2660 _dest.x2[1] = var40.i;
2666 _dest.x2[0] = var41.x2[0];
2667 _dest.x2[1] = var42.x2[0];
2668 var38.x2[0] = _dest.i;
2672 _dest.x2[0] = var41.x2[1];
2673 _dest.x2[1] = var42.x2[1];
2674 var38.x2[1] = _dest.i;
2685 _backup_video_convert_orc_convert_UYVY_AYUV (OrcExecutor * ORC_RESTRICT ex)
2690 int m = ex->params[ORC_VAR_A1];
2691 orc_union64 *ORC_RESTRICT ptr0;
2692 const orc_union32 *ORC_RESTRICT ptr4;
2694 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
2695 volatile orc_union16 var37;
2705 for (j = 0; j < m; j++) {
2706 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
2707 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
2710 var37.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
2711 var37.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
2713 for (i = 0; i < n; i++) {
2719 _src.i = var36.x2[0];
2720 var39.x2[0] = _src.x2[1];
2721 var40.x2[0] = _src.x2[0];
2725 _src.i = var36.x2[1];
2726 var39.x2[1] = _src.x2[1];
2727 var40.x2[1] = _src.x2[0];
2732 _dest.x2[0] = var37.x2[0];
2733 _dest.x2[1] = var39.x2[0];
2734 var41.x2[0] = _dest.i;
2738 _dest.x2[0] = var37.x2[1];
2739 _dest.x2[1] = var39.x2[1];
2740 var41.x2[1] = _dest.i;
2745 _dest.x2[0] = var40.i;
2746 _dest.x2[1] = var40.i;
2752 _dest.x2[0] = var41.x2[0];
2753 _dest.x2[1] = var42.x2[0];
2754 var38.x2[0] = _dest.i;
2758 _dest.x2[0] = var41.x2[1];
2759 _dest.x2[1] = var42.x2[1];
2760 var38.x2[1] = _dest.i;
2770 video_convert_orc_convert_UYVY_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
2771 const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
2773 OrcExecutor _ex, *ex = &_ex;
2774 static volatile int p_inited = 0;
2775 static OrcCode *c = 0;
2776 void (*func) (OrcExecutor *);
2779 orc_once_mutex_lock ();
2784 static const orc_uint8 bc[] = {
2785 1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
2786 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 85, 89,
2787 86, 89, 95, 65, 89, 85, 86, 11, 8, 8, 12, 4, 4, 14, 2, 255,
2788 0, 0, 0, 20, 2, 20, 2, 20, 4, 20, 4, 21, 1, 199, 32, 33,
2789 4, 21, 1, 196, 34, 16, 32, 195, 35, 33, 33, 21, 1, 195, 0, 34,
2792 p = orc_program_new_from_static_bytecode (bc);
2793 orc_program_set_backup_function (p,
2794 _backup_video_convert_orc_convert_UYVY_AYUV);
2796 p = orc_program_new ();
2797 orc_program_set_2d (p);
2798 orc_program_set_name (p, "video_convert_orc_convert_UYVY_AYUV");
2799 orc_program_set_backup_function (p,
2800 _backup_video_convert_orc_convert_UYVY_AYUV);
2801 orc_program_add_destination (p, 8, "d1");
2802 orc_program_add_source (p, 4, "s1");
2803 orc_program_add_constant (p, 2, 0x000000ff, "c1");
2804 orc_program_add_temporary (p, 2, "t1");
2805 orc_program_add_temporary (p, 2, "t2");
2806 orc_program_add_temporary (p, 4, "t3");
2807 orc_program_add_temporary (p, 4, "t4");
2809 orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_S1,
2811 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T3, ORC_VAR_C1, ORC_VAR_T1,
2813 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_T2,
2815 orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4,
2819 orc_program_compile (p);
2820 c = orc_program_take_code (p);
2821 orc_program_free (p);
2824 orc_once_mutex_unlock ();
2826 ex->arrays[ORC_VAR_A2] = c;
2830 ORC_EXECUTOR_M (ex) = m;
2831 ex->arrays[ORC_VAR_D1] = d1;
2832 ex->params[ORC_VAR_D1] = d1_stride;
2833 ex->arrays[ORC_VAR_S1] = (void *) s1;
2834 ex->params[ORC_VAR_S1] = s1_stride;
2842 /* video_convert_orc_convert_YUY2_Y42B */
2845 video_convert_orc_convert_YUY2_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride,
2846 guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
2847 int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
2851 orc_union16 *ORC_RESTRICT ptr0;
2852 orc_int8 *ORC_RESTRICT ptr1;
2853 orc_int8 *ORC_RESTRICT ptr2;
2854 const orc_union32 *ORC_RESTRICT ptr4;
2861 for (j = 0; j < m; j++) {
2862 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
2863 ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
2864 ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
2865 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
2868 for (i = 0; i < n; i++) {
2874 _src.i = var33.x2[0];
2875 var37.x2[0] = _src.x2[1];
2876 var34.x2[0] = _src.x2[0];
2880 _src.i = var33.x2[1];
2881 var37.x2[1] = _src.x2[1];
2882 var34.x2[1] = _src.x2[0];
2904 _backup_video_convert_orc_convert_YUY2_Y42B (OrcExecutor * ORC_RESTRICT ex)
2909 int m = ex->params[ORC_VAR_A1];
2910 orc_union16 *ORC_RESTRICT ptr0;
2911 orc_int8 *ORC_RESTRICT ptr1;
2912 orc_int8 *ORC_RESTRICT ptr2;
2913 const orc_union32 *ORC_RESTRICT ptr4;
2920 for (j = 0; j < m; j++) {
2921 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
2922 ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
2923 ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
2924 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
2927 for (i = 0; i < n; i++) {
2933 _src.i = var33.x2[0];
2934 var37.x2[0] = _src.x2[1];
2935 var34.x2[0] = _src.x2[0];
2939 _src.i = var33.x2[1];
2940 var37.x2[1] = _src.x2[1];
2941 var34.x2[1] = _src.x2[0];
2962 video_convert_orc_convert_YUY2_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride,
2963 guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
2964 int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
2966 OrcExecutor _ex, *ex = &_ex;
2967 static volatile int p_inited = 0;
2968 static OrcCode *c = 0;
2969 void (*func) (OrcExecutor *);
2972 orc_once_mutex_lock ();
2977 static const orc_uint8 bc[] = {
2978 1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
2979 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 85,
2980 89, 50, 95, 89, 52, 50, 66, 11, 2, 2, 11, 1, 1, 11, 1, 1,
2981 12, 4, 4, 20, 2, 21, 1, 199, 32, 0, 4, 199, 2, 1, 32, 2,
2984 p = orc_program_new_from_static_bytecode (bc);
2985 orc_program_set_backup_function (p,
2986 _backup_video_convert_orc_convert_YUY2_Y42B);
2988 p = orc_program_new ();
2989 orc_program_set_2d (p);
2990 orc_program_set_name (p, "video_convert_orc_convert_YUY2_Y42B");
2991 orc_program_set_backup_function (p,
2992 _backup_video_convert_orc_convert_YUY2_Y42B);
2993 orc_program_add_destination (p, 2, "d1");
2994 orc_program_add_destination (p, 1, "d2");
2995 orc_program_add_destination (p, 1, "d3");
2996 orc_program_add_source (p, 4, "s1");
2997 orc_program_add_temporary (p, 2, "t1");
2999 orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_S1,
3001 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T1,
3005 orc_program_compile (p);
3006 c = orc_program_take_code (p);
3007 orc_program_free (p);
3010 orc_once_mutex_unlock ();
3012 ex->arrays[ORC_VAR_A2] = c;
3016 ORC_EXECUTOR_M (ex) = m;
3017 ex->arrays[ORC_VAR_D1] = d1;
3018 ex->params[ORC_VAR_D1] = d1_stride;
3019 ex->arrays[ORC_VAR_D2] = d2;
3020 ex->params[ORC_VAR_D2] = d2_stride;
3021 ex->arrays[ORC_VAR_D3] = d3;
3022 ex->params[ORC_VAR_D3] = d3_stride;
3023 ex->arrays[ORC_VAR_S1] = (void *) s1;
3024 ex->params[ORC_VAR_S1] = s1_stride;
3032 /* video_convert_orc_convert_UYVY_Y42B */
3035 video_convert_orc_convert_UYVY_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride,
3036 guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
3037 int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
3041 orc_union16 *ORC_RESTRICT ptr0;
3042 orc_int8 *ORC_RESTRICT ptr1;
3043 orc_int8 *ORC_RESTRICT ptr2;
3044 const orc_union32 *ORC_RESTRICT ptr4;
3051 for (j = 0; j < m; j++) {
3052 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
3053 ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
3054 ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
3055 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
3058 for (i = 0; i < n; i++) {
3064 _src.i = var33.x2[0];
3065 var34.x2[0] = _src.x2[1];
3066 var37.x2[0] = _src.x2[0];
3070 _src.i = var33.x2[1];
3071 var34.x2[1] = _src.x2[1];
3072 var37.x2[1] = _src.x2[0];
3094 _backup_video_convert_orc_convert_UYVY_Y42B (OrcExecutor * ORC_RESTRICT ex)
3099 int m = ex->params[ORC_VAR_A1];
3100 orc_union16 *ORC_RESTRICT ptr0;
3101 orc_int8 *ORC_RESTRICT ptr1;
3102 orc_int8 *ORC_RESTRICT ptr2;
3103 const orc_union32 *ORC_RESTRICT ptr4;
3110 for (j = 0; j < m; j++) {
3111 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
3112 ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
3113 ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
3114 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
3117 for (i = 0; i < n; i++) {
3123 _src.i = var33.x2[0];
3124 var34.x2[0] = _src.x2[1];
3125 var37.x2[0] = _src.x2[0];
3129 _src.i = var33.x2[1];
3130 var34.x2[1] = _src.x2[1];
3131 var37.x2[1] = _src.x2[0];
3152 video_convert_orc_convert_UYVY_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride,
3153 guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
3154 int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
3156 OrcExecutor _ex, *ex = &_ex;
3157 static volatile int p_inited = 0;
3158 static OrcCode *c = 0;
3159 void (*func) (OrcExecutor *);
3162 orc_once_mutex_lock ();
3167 static const orc_uint8 bc[] = {
3168 1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
3169 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 85, 89,
3170 86, 89, 95, 89, 52, 50, 66, 11, 2, 2, 11, 1, 1, 11, 1, 1,
3171 12, 4, 4, 20, 2, 21, 1, 199, 0, 32, 4, 199, 2, 1, 32, 2,
3174 p = orc_program_new_from_static_bytecode (bc);
3175 orc_program_set_backup_function (p,
3176 _backup_video_convert_orc_convert_UYVY_Y42B);
3178 p = orc_program_new ();
3179 orc_program_set_2d (p);
3180 orc_program_set_name (p, "video_convert_orc_convert_UYVY_Y42B");
3181 orc_program_set_backup_function (p,
3182 _backup_video_convert_orc_convert_UYVY_Y42B);
3183 orc_program_add_destination (p, 2, "d1");
3184 orc_program_add_destination (p, 1, "d2");
3185 orc_program_add_destination (p, 1, "d3");
3186 orc_program_add_source (p, 4, "s1");
3187 orc_program_add_temporary (p, 2, "t1");
3189 orc_program_append_2 (p, "splitwb", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1,
3191 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T1,
3195 orc_program_compile (p);
3196 c = orc_program_take_code (p);
3197 orc_program_free (p);
3200 orc_once_mutex_unlock ();
3202 ex->arrays[ORC_VAR_A2] = c;
3206 ORC_EXECUTOR_M (ex) = m;
3207 ex->arrays[ORC_VAR_D1] = d1;
3208 ex->params[ORC_VAR_D1] = d1_stride;
3209 ex->arrays[ORC_VAR_D2] = d2;
3210 ex->params[ORC_VAR_D2] = d2_stride;
3211 ex->arrays[ORC_VAR_D3] = d3;
3212 ex->params[ORC_VAR_D3] = d3_stride;
3213 ex->arrays[ORC_VAR_S1] = (void *) s1;
3214 ex->params[ORC_VAR_S1] = s1_stride;
3222 /* video_convert_orc_convert_YUY2_Y444 */
3225 video_convert_orc_convert_YUY2_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride,
3226 guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
3227 int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
3231 orc_union16 *ORC_RESTRICT ptr0;
3232 orc_union16 *ORC_RESTRICT ptr1;
3233 orc_union16 *ORC_RESTRICT ptr2;
3234 const orc_union32 *ORC_RESTRICT ptr4;
3243 for (j = 0; j < m; j++) {
3244 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
3245 ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
3246 ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
3247 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
3250 for (i = 0; i < n; i++) {
3256 _src.i = var35.x2[0];
3257 var39.x2[0] = _src.x2[1];
3258 var36.x2[0] = _src.x2[0];
3262 _src.i = var35.x2[1];
3263 var39.x2[1] = _src.x2[1];
3264 var36.x2[1] = _src.x2[0];
3276 var37.i = ((var41 & 0xff) << 8) | (var41 & 0xff);
3280 var38.i = ((var40 & 0xff) << 8) | (var40 & 0xff);
3290 _backup_video_convert_orc_convert_YUY2_Y444 (OrcExecutor * ORC_RESTRICT ex)
3295 int m = ex->params[ORC_VAR_A1];
3296 orc_union16 *ORC_RESTRICT ptr0;
3297 orc_union16 *ORC_RESTRICT ptr1;
3298 orc_union16 *ORC_RESTRICT ptr2;
3299 const orc_union32 *ORC_RESTRICT ptr4;
3308 for (j = 0; j < m; j++) {
3309 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
3310 ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
3311 ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
3312 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
3315 for (i = 0; i < n; i++) {
3321 _src.i = var35.x2[0];
3322 var39.x2[0] = _src.x2[1];
3323 var36.x2[0] = _src.x2[0];
3327 _src.i = var35.x2[1];
3328 var39.x2[1] = _src.x2[1];
3329 var36.x2[1] = _src.x2[0];
3341 var37.i = ((var41 & 0xff) << 8) | (var41 & 0xff);
3345 var38.i = ((var40 & 0xff) << 8) | (var40 & 0xff);
3354 video_convert_orc_convert_YUY2_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride,
3355 guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
3356 int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
3358 OrcExecutor _ex, *ex = &_ex;
3359 static volatile int p_inited = 0;
3360 static OrcCode *c = 0;
3361 void (*func) (OrcExecutor *);
3364 orc_once_mutex_lock ();
3369 static const orc_uint8 bc[] = {
3370 1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
3371 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 85,
3372 89, 50, 95, 89, 52, 52, 52, 11, 2, 2, 11, 2, 2, 11, 2, 2,
3373 12, 4, 4, 20, 2, 20, 1, 20, 1, 21, 1, 199, 32, 0, 4, 199,
3374 34, 33, 32, 151, 1, 33, 151, 2, 34, 2, 0,
3376 p = orc_program_new_from_static_bytecode (bc);
3377 orc_program_set_backup_function (p,
3378 _backup_video_convert_orc_convert_YUY2_Y444);
3380 p = orc_program_new ();
3381 orc_program_set_2d (p);
3382 orc_program_set_name (p, "video_convert_orc_convert_YUY2_Y444");
3383 orc_program_set_backup_function (p,
3384 _backup_video_convert_orc_convert_YUY2_Y444);
3385 orc_program_add_destination (p, 2, "d1");
3386 orc_program_add_destination (p, 2, "d2");
3387 orc_program_add_destination (p, 2, "d3");
3388 orc_program_add_source (p, 4, "s1");
3389 orc_program_add_temporary (p, 2, "t1");
3390 orc_program_add_temporary (p, 1, "t2");
3391 orc_program_add_temporary (p, 1, "t3");
3393 orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_S1,
3395 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_T1,
3397 orc_program_append_2 (p, "splatbw", 0, ORC_VAR_D2, ORC_VAR_T2, ORC_VAR_D1,
3399 orc_program_append_2 (p, "splatbw", 0, ORC_VAR_D3, ORC_VAR_T3, ORC_VAR_D1,
3403 orc_program_compile (p);
3404 c = orc_program_take_code (p);
3405 orc_program_free (p);
3408 orc_once_mutex_unlock ();
3410 ex->arrays[ORC_VAR_A2] = c;
3414 ORC_EXECUTOR_M (ex) = m;
3415 ex->arrays[ORC_VAR_D1] = d1;
3416 ex->params[ORC_VAR_D1] = d1_stride;
3417 ex->arrays[ORC_VAR_D2] = d2;
3418 ex->params[ORC_VAR_D2] = d2_stride;
3419 ex->arrays[ORC_VAR_D3] = d3;
3420 ex->params[ORC_VAR_D3] = d3_stride;
3421 ex->arrays[ORC_VAR_S1] = (void *) s1;
3422 ex->params[ORC_VAR_S1] = s1_stride;
3430 /* video_convert_orc_convert_UYVY_Y444 */
3433 video_convert_orc_convert_UYVY_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride,
3434 guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
3435 int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
3439 orc_union16 *ORC_RESTRICT ptr0;
3440 orc_union16 *ORC_RESTRICT ptr1;
3441 orc_union16 *ORC_RESTRICT ptr2;
3442 const orc_union32 *ORC_RESTRICT ptr4;
3451 for (j = 0; j < m; j++) {
3452 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
3453 ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
3454 ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
3455 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
3458 for (i = 0; i < n; i++) {
3464 _src.i = var35.x2[0];
3465 var36.x2[0] = _src.x2[1];
3466 var39.x2[0] = _src.x2[0];
3470 _src.i = var35.x2[1];
3471 var36.x2[1] = _src.x2[1];
3472 var39.x2[1] = _src.x2[0];
3484 var37.i = ((var41 & 0xff) << 8) | (var41 & 0xff);
3488 var38.i = ((var40 & 0xff) << 8) | (var40 & 0xff);
3498 _backup_video_convert_orc_convert_UYVY_Y444 (OrcExecutor * ORC_RESTRICT ex)
3503 int m = ex->params[ORC_VAR_A1];
3504 orc_union16 *ORC_RESTRICT ptr0;
3505 orc_union16 *ORC_RESTRICT ptr1;
3506 orc_union16 *ORC_RESTRICT ptr2;
3507 const orc_union32 *ORC_RESTRICT ptr4;
3516 for (j = 0; j < m; j++) {
3517 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
3518 ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
3519 ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
3520 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
3523 for (i = 0; i < n; i++) {
3529 _src.i = var35.x2[0];
3530 var36.x2[0] = _src.x2[1];
3531 var39.x2[0] = _src.x2[0];
3535 _src.i = var35.x2[1];
3536 var36.x2[1] = _src.x2[1];
3537 var39.x2[1] = _src.x2[0];
3549 var37.i = ((var41 & 0xff) << 8) | (var41 & 0xff);
3553 var38.i = ((var40 & 0xff) << 8) | (var40 & 0xff);
3562 video_convert_orc_convert_UYVY_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride,
3563 guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
3564 int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
3566 OrcExecutor _ex, *ex = &_ex;
3567 static volatile int p_inited = 0;
3568 static OrcCode *c = 0;
3569 void (*func) (OrcExecutor *);
3572 orc_once_mutex_lock ();
3577 static const orc_uint8 bc[] = {
3578 1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
3579 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 85, 89,
3580 86, 89, 95, 89, 52, 52, 52, 11, 2, 2, 11, 2, 2, 11, 2, 2,
3581 12, 4, 4, 20, 2, 20, 1, 20, 1, 21, 1, 199, 0, 32, 4, 199,
3582 34, 33, 32, 151, 1, 33, 151, 2, 34, 2, 0,
3584 p = orc_program_new_from_static_bytecode (bc);
3585 orc_program_set_backup_function (p,
3586 _backup_video_convert_orc_convert_UYVY_Y444);
3588 p = orc_program_new ();
3589 orc_program_set_2d (p);
3590 orc_program_set_name (p, "video_convert_orc_convert_UYVY_Y444");
3591 orc_program_set_backup_function (p,
3592 _backup_video_convert_orc_convert_UYVY_Y444);
3593 orc_program_add_destination (p, 2, "d1");
3594 orc_program_add_destination (p, 2, "d2");
3595 orc_program_add_destination (p, 2, "d3");
3596 orc_program_add_source (p, 4, "s1");
3597 orc_program_add_temporary (p, 2, "t1");
3598 orc_program_add_temporary (p, 1, "t2");
3599 orc_program_add_temporary (p, 1, "t3");
3601 orc_program_append_2 (p, "splitwb", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1,
3603 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_T1,
3605 orc_program_append_2 (p, "splatbw", 0, ORC_VAR_D2, ORC_VAR_T2, ORC_VAR_D1,
3607 orc_program_append_2 (p, "splatbw", 0, ORC_VAR_D3, ORC_VAR_T3, ORC_VAR_D1,
3611 orc_program_compile (p);
3612 c = orc_program_take_code (p);
3613 orc_program_free (p);
3616 orc_once_mutex_unlock ();
3618 ex->arrays[ORC_VAR_A2] = c;
3622 ORC_EXECUTOR_M (ex) = m;
3623 ex->arrays[ORC_VAR_D1] = d1;
3624 ex->params[ORC_VAR_D1] = d1_stride;
3625 ex->arrays[ORC_VAR_D2] = d2;
3626 ex->params[ORC_VAR_D2] = d2_stride;
3627 ex->arrays[ORC_VAR_D3] = d3;
3628 ex->params[ORC_VAR_D3] = d3_stride;
3629 ex->arrays[ORC_VAR_S1] = (void *) s1;
3630 ex->params[ORC_VAR_S1] = s1_stride;
3638 /* video_convert_orc_convert_UYVY_I420 */
3641 video_convert_orc_convert_UYVY_I420 (guint8 * ORC_RESTRICT d1,
3642 guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
3643 guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1,
3644 const guint8 * ORC_RESTRICT s2, int n)
3647 orc_union16 *ORC_RESTRICT ptr0;
3648 orc_union16 *ORC_RESTRICT ptr1;
3649 orc_int8 *ORC_RESTRICT ptr2;
3650 orc_int8 *ORC_RESTRICT ptr3;
3651 const orc_union32 *ORC_RESTRICT ptr4;
3652 const orc_union32 *ORC_RESTRICT ptr5;
3663 ptr0 = (orc_union16 *) d1;
3664 ptr1 = (orc_union16 *) d2;
3665 ptr2 = (orc_int8 *) d3;
3666 ptr3 = (orc_int8 *) d4;
3667 ptr4 = (orc_union32 *) s1;
3668 ptr5 = (orc_union32 *) s2;
3671 for (i = 0; i < n; i++) {
3677 _src.i = var35.x2[0];
3678 var39.x2[0] = _src.x2[1];
3679 var40.x2[0] = _src.x2[0];
3683 _src.i = var35.x2[1];
3684 var39.x2[1] = _src.x2[1];
3685 var40.x2[1] = _src.x2[0];
3694 _src.i = var36.x2[0];
3695 var41.x2[0] = _src.x2[1];
3696 var42.x2[0] = _src.x2[0];
3700 _src.i = var36.x2[1];
3701 var41.x2[1] = _src.x2[1];
3702 var42.x2[1] = _src.x2[0];
3707 var43.x2[0] = ((orc_uint8) var40.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
3708 var43.x2[1] = ((orc_uint8) var40.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
3726 _backup_video_convert_orc_convert_UYVY_I420 (OrcExecutor * ORC_RESTRICT ex)
3730 orc_union16 *ORC_RESTRICT ptr0;
3731 orc_union16 *ORC_RESTRICT ptr1;
3732 orc_int8 *ORC_RESTRICT ptr2;
3733 orc_int8 *ORC_RESTRICT ptr3;
3734 const orc_union32 *ORC_RESTRICT ptr4;
3735 const orc_union32 *ORC_RESTRICT ptr5;
3746 ptr0 = (orc_union16 *) ex->arrays[0];
3747 ptr1 = (orc_union16 *) ex->arrays[1];
3748 ptr2 = (orc_int8 *) ex->arrays[2];
3749 ptr3 = (orc_int8 *) ex->arrays[3];
3750 ptr4 = (orc_union32 *) ex->arrays[4];
3751 ptr5 = (orc_union32 *) ex->arrays[5];
3754 for (i = 0; i < n; i++) {
3760 _src.i = var35.x2[0];
3761 var39.x2[0] = _src.x2[1];
3762 var40.x2[0] = _src.x2[0];
3766 _src.i = var35.x2[1];
3767 var39.x2[1] = _src.x2[1];
3768 var40.x2[1] = _src.x2[0];
3777 _src.i = var36.x2[0];
3778 var41.x2[0] = _src.x2[1];
3779 var42.x2[0] = _src.x2[0];
3783 _src.i = var36.x2[1];
3784 var41.x2[1] = _src.x2[1];
3785 var42.x2[1] = _src.x2[0];
3790 var43.x2[0] = ((orc_uint8) var40.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
3791 var43.x2[1] = ((orc_uint8) var40.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
3808 video_convert_orc_convert_UYVY_I420 (guint8 * ORC_RESTRICT d1,
3809 guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
3810 guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1,
3811 const guint8 * ORC_RESTRICT s2, int n)
3813 OrcExecutor _ex, *ex = &_ex;
3814 static volatile int p_inited = 0;
3815 static OrcCode *c = 0;
3816 void (*func) (OrcExecutor *);
3819 orc_once_mutex_lock ();
3824 static const orc_uint8 bc[] = {
3825 1, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
3826 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 85, 89, 86,
3827 89, 95, 73, 52, 50, 48, 11, 2, 2, 11, 2, 2, 11, 1, 1, 11,
3828 1, 1, 12, 4, 4, 12, 4, 4, 20, 2, 20, 2, 20, 2, 21, 1,
3829 199, 34, 32, 4, 97, 0, 34, 21, 1, 199, 34, 33, 5, 97, 1, 34,
3830 21, 1, 39, 32, 32, 33, 199, 3, 2, 32, 2, 0,
3832 p = orc_program_new_from_static_bytecode (bc);
3833 orc_program_set_backup_function (p,
3834 _backup_video_convert_orc_convert_UYVY_I420);
3836 p = orc_program_new ();
3837 orc_program_set_name (p, "video_convert_orc_convert_UYVY_I420");
3838 orc_program_set_backup_function (p,
3839 _backup_video_convert_orc_convert_UYVY_I420);
3840 orc_program_add_destination (p, 2, "d1");
3841 orc_program_add_destination (p, 2, "d2");
3842 orc_program_add_destination (p, 1, "d3");
3843 orc_program_add_destination (p, 1, "d4");
3844 orc_program_add_source (p, 4, "s1");
3845 orc_program_add_source (p, 4, "s2");
3846 orc_program_add_temporary (p, 2, "t1");
3847 orc_program_add_temporary (p, 2, "t2");
3848 orc_program_add_temporary (p, 2, "t3");
3850 orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_S1,
3852 orc_program_append_2 (p, "storew", 0, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_D1,
3854 orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_S2,
3856 orc_program_append_2 (p, "storew", 0, ORC_VAR_D2, ORC_VAR_T3, ORC_VAR_D1,
3858 orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
3860 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D4, ORC_VAR_D3, ORC_VAR_T1,
3864 orc_program_compile (p);
3865 c = orc_program_take_code (p);
3866 orc_program_free (p);
3869 orc_once_mutex_unlock ();
3871 ex->arrays[ORC_VAR_A2] = c;
3875 ex->arrays[ORC_VAR_D1] = d1;
3876 ex->arrays[ORC_VAR_D2] = d2;
3877 ex->arrays[ORC_VAR_D3] = d3;
3878 ex->arrays[ORC_VAR_D4] = d4;
3879 ex->arrays[ORC_VAR_S1] = (void *) s1;
3880 ex->arrays[ORC_VAR_S2] = (void *) s2;
3888 /* video_convert_orc_convert_AYUV_I420 */
3891 video_convert_orc_convert_AYUV_I420 (guint8 * ORC_RESTRICT d1, int d1_stride,
3892 guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
3893 int d3_stride, guint8 * ORC_RESTRICT d4, int d4_stride,
3894 const guint8 * ORC_RESTRICT s1, int s1_stride,
3895 const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m)
3899 orc_union16 *ORC_RESTRICT ptr0;
3900 orc_union16 *ORC_RESTRICT ptr1;
3901 orc_int8 *ORC_RESTRICT ptr2;
3902 orc_int8 *ORC_RESTRICT ptr3;
3903 const orc_union64 *ORC_RESTRICT ptr4;
3904 const orc_union64 *ORC_RESTRICT ptr5;
3923 for (j = 0; j < m; j++) {
3924 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
3925 ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
3926 ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
3927 ptr3 = ORC_PTR_OFFSET (d4, d4_stride * j);
3928 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
3929 ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
3932 for (i = 0; i < n; i++) {
3938 _src.i = var40.x2[0];
3939 var46.x2[0] = _src.x2[1];
3940 var47.x2[0] = _src.x2[0];
3944 _src.i = var40.x2[1];
3945 var46.x2[1] = _src.x2[1];
3946 var47.x2[1] = _src.x2[0];
3951 _src.i = var47.x2[0];
3952 var41.x2[0] = _src.x2[1];
3956 _src.i = var47.x2[1];
3957 var41.x2[1] = _src.x2[1];
3966 _src.i = var42.x2[0];
3967 var48.x2[0] = _src.x2[1];
3968 var49.x2[0] = _src.x2[0];
3972 _src.i = var42.x2[1];
3973 var48.x2[1] = _src.x2[1];
3974 var49.x2[1] = _src.x2[0];
3979 _src.i = var49.x2[0];
3980 var43.x2[0] = _src.x2[1];
3984 _src.i = var49.x2[1];
3985 var43.x2[1] = _src.x2[1];
3991 ((orc_uint8) var46.x4[0] + (orc_uint8) var48.x4[0] + 1) >> 1;
3993 ((orc_uint8) var46.x4[1] + (orc_uint8) var48.x4[1] + 1) >> 1;
3995 ((orc_uint8) var46.x4[2] + (orc_uint8) var48.x4[2] + 1) >> 1;
3997 ((orc_uint8) var46.x4[3] + (orc_uint8) var48.x4[3] + 1) >> 1;
4001 _src.i = var50.x2[0];
4002 var51.x2[0] = _src.x2[1];
4003 var52.x2[0] = _src.x2[0];
4007 _src.i = var50.x2[1];
4008 var51.x2[1] = _src.x2[1];
4009 var52.x2[1] = _src.x2[0];
4019 var44 = ((orc_uint8) var53 + (orc_uint8) var54 + 1) >> 1;
4030 var45 = ((orc_uint8) var55 + (orc_uint8) var56 + 1) >> 1;
4040 _backup_video_convert_orc_convert_AYUV_I420 (OrcExecutor * ORC_RESTRICT ex)
4045 int m = ex->params[ORC_VAR_A1];
4046 orc_union16 *ORC_RESTRICT ptr0;
4047 orc_union16 *ORC_RESTRICT ptr1;
4048 orc_int8 *ORC_RESTRICT ptr2;
4049 orc_int8 *ORC_RESTRICT ptr3;
4050 const orc_union64 *ORC_RESTRICT ptr4;
4051 const orc_union64 *ORC_RESTRICT ptr5;
4070 for (j = 0; j < m; j++) {
4071 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
4072 ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
4073 ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
4074 ptr3 = ORC_PTR_OFFSET (ex->arrays[3], ex->params[3] * j);
4075 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
4076 ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
4079 for (i = 0; i < n; i++) {
4085 _src.i = var40.x2[0];
4086 var46.x2[0] = _src.x2[1];
4087 var47.x2[0] = _src.x2[0];
4091 _src.i = var40.x2[1];
4092 var46.x2[1] = _src.x2[1];
4093 var47.x2[1] = _src.x2[0];
4098 _src.i = var47.x2[0];
4099 var41.x2[0] = _src.x2[1];
4103 _src.i = var47.x2[1];
4104 var41.x2[1] = _src.x2[1];
4113 _src.i = var42.x2[0];
4114 var48.x2[0] = _src.x2[1];
4115 var49.x2[0] = _src.x2[0];
4119 _src.i = var42.x2[1];
4120 var48.x2[1] = _src.x2[1];
4121 var49.x2[1] = _src.x2[0];
4126 _src.i = var49.x2[0];
4127 var43.x2[0] = _src.x2[1];
4131 _src.i = var49.x2[1];
4132 var43.x2[1] = _src.x2[1];
4138 ((orc_uint8) var46.x4[0] + (orc_uint8) var48.x4[0] + 1) >> 1;
4140 ((orc_uint8) var46.x4[1] + (orc_uint8) var48.x4[1] + 1) >> 1;
4142 ((orc_uint8) var46.x4[2] + (orc_uint8) var48.x4[2] + 1) >> 1;
4144 ((orc_uint8) var46.x4[3] + (orc_uint8) var48.x4[3] + 1) >> 1;
4148 _src.i = var50.x2[0];
4149 var51.x2[0] = _src.x2[1];
4150 var52.x2[0] = _src.x2[0];
4154 _src.i = var50.x2[1];
4155 var51.x2[1] = _src.x2[1];
4156 var52.x2[1] = _src.x2[0];
4166 var44 = ((orc_uint8) var53 + (orc_uint8) var54 + 1) >> 1;
4177 var45 = ((orc_uint8) var55 + (orc_uint8) var56 + 1) >> 1;
4186 video_convert_orc_convert_AYUV_I420 (guint8 * ORC_RESTRICT d1, int d1_stride,
4187 guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
4188 int d3_stride, guint8 * ORC_RESTRICT d4, int d4_stride,
4189 const guint8 * ORC_RESTRICT s1, int s1_stride,
4190 const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m)
4192 OrcExecutor _ex, *ex = &_ex;
4193 static volatile int p_inited = 0;
4194 static OrcCode *c = 0;
4195 void (*func) (OrcExecutor *);
4198 orc_once_mutex_lock ();
4203 static const orc_uint8 bc[] = {
4204 1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
4205 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
4206 85, 86, 95, 73, 52, 50, 48, 11, 2, 2, 11, 2, 2, 11, 1, 1,
4207 11, 1, 1, 12, 8, 8, 12, 8, 8, 20, 4, 20, 4, 20, 4, 20,
4208 4, 20, 2, 20, 2, 20, 1, 20, 1, 21, 1, 198, 33, 32, 4, 21,
4209 1, 189, 0, 32, 21, 1, 198, 34, 32, 5, 21, 1, 189, 1, 32, 21,
4210 2, 39, 35, 33, 34, 21, 1, 199, 37, 36, 35, 199, 38, 39, 36, 39,
4211 2, 38, 39, 199, 38, 39, 37, 39, 3, 38, 39, 2, 0,
4213 p = orc_program_new_from_static_bytecode (bc);
4214 orc_program_set_backup_function (p,
4215 _backup_video_convert_orc_convert_AYUV_I420);
4217 p = orc_program_new ();
4218 orc_program_set_2d (p);
4219 orc_program_set_name (p, "video_convert_orc_convert_AYUV_I420");
4220 orc_program_set_backup_function (p,
4221 _backup_video_convert_orc_convert_AYUV_I420);
4222 orc_program_add_destination (p, 2, "d1");
4223 orc_program_add_destination (p, 2, "d2");
4224 orc_program_add_destination (p, 1, "d3");
4225 orc_program_add_destination (p, 1, "d4");
4226 orc_program_add_source (p, 8, "s1");
4227 orc_program_add_source (p, 8, "s2");
4228 orc_program_add_temporary (p, 4, "t1");
4229 orc_program_add_temporary (p, 4, "t2");
4230 orc_program_add_temporary (p, 4, "t3");
4231 orc_program_add_temporary (p, 4, "t4");
4232 orc_program_add_temporary (p, 2, "t5");
4233 orc_program_add_temporary (p, 2, "t6");
4234 orc_program_add_temporary (p, 1, "t7");
4235 orc_program_add_temporary (p, 1, "t8");
4237 orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
4239 orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
4240 ORC_VAR_D1, ORC_VAR_D1);
4241 orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_S2,
4243 orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D2, ORC_VAR_T1,
4244 ORC_VAR_D1, ORC_VAR_D1);
4245 orc_program_append_2 (p, "avgub", 2, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_T3,
4247 orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T6, ORC_VAR_T5, ORC_VAR_T4,
4249 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T7, ORC_VAR_T8, ORC_VAR_T5,
4251 orc_program_append_2 (p, "avgub", 0, ORC_VAR_D3, ORC_VAR_T7, ORC_VAR_T8,
4253 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T7, ORC_VAR_T8, ORC_VAR_T6,
4255 orc_program_append_2 (p, "avgub", 0, ORC_VAR_D4, ORC_VAR_T7, ORC_VAR_T8,
4259 orc_program_compile (p);
4260 c = orc_program_take_code (p);
4261 orc_program_free (p);
4264 orc_once_mutex_unlock ();
4266 ex->arrays[ORC_VAR_A2] = c;
4270 ORC_EXECUTOR_M (ex) = m;
4271 ex->arrays[ORC_VAR_D1] = d1;
4272 ex->params[ORC_VAR_D1] = d1_stride;
4273 ex->arrays[ORC_VAR_D2] = d2;
4274 ex->params[ORC_VAR_D2] = d2_stride;
4275 ex->arrays[ORC_VAR_D3] = d3;
4276 ex->params[ORC_VAR_D3] = d3_stride;
4277 ex->arrays[ORC_VAR_D4] = d4;
4278 ex->params[ORC_VAR_D4] = d4_stride;
4279 ex->arrays[ORC_VAR_S1] = (void *) s1;
4280 ex->params[ORC_VAR_S1] = s1_stride;
4281 ex->arrays[ORC_VAR_S2] = (void *) s2;
4282 ex->params[ORC_VAR_S2] = s2_stride;
4290 /* video_convert_orc_convert_AYUV_YUY2 */
4293 video_convert_orc_convert_AYUV_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
4294 const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
4298 orc_union32 *ORC_RESTRICT ptr0;
4299 const orc_union64 *ORC_RESTRICT ptr4;
4309 for (j = 0; j < m; j++) {
4310 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
4311 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
4314 for (i = 0; i < n; i++) {
4320 _src.i = var37.x2[0];
4321 var39.x2[0] = _src.x2[1];
4322 var40.x2[0] = _src.x2[0];
4326 _src.i = var37.x2[1];
4327 var39.x2[1] = _src.x2[1];
4328 var40.x2[1] = _src.x2[0];
4334 var41.i = _src.x2[1];
4335 var42.i = _src.x2[0];
4339 ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
4341 ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
4345 _src.i = var40.x2[0];
4346 var44.x2[0] = _src.x2[1];
4350 _src.i = var40.x2[1];
4351 var44.x2[1] = _src.x2[1];
4356 _dest.x2[0] = var44.x2[0];
4357 _dest.x2[1] = var43.x2[0];
4358 var38.x2[0] = _dest.i;
4362 _dest.x2[0] = var44.x2[1];
4363 _dest.x2[1] = var43.x2[1];
4364 var38.x2[1] = _dest.i;
4375 _backup_video_convert_orc_convert_AYUV_YUY2 (OrcExecutor * ORC_RESTRICT ex)
4380 int m = ex->params[ORC_VAR_A1];
4381 orc_union32 *ORC_RESTRICT ptr0;
4382 const orc_union64 *ORC_RESTRICT ptr4;
4392 for (j = 0; j < m; j++) {
4393 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
4394 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
4397 for (i = 0; i < n; i++) {
4403 _src.i = var37.x2[0];
4404 var39.x2[0] = _src.x2[1];
4405 var40.x2[0] = _src.x2[0];
4409 _src.i = var37.x2[1];
4410 var39.x2[1] = _src.x2[1];
4411 var40.x2[1] = _src.x2[0];
4417 var41.i = _src.x2[1];
4418 var42.i = _src.x2[0];
4422 ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
4424 ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
4428 _src.i = var40.x2[0];
4429 var44.x2[0] = _src.x2[1];
4433 _src.i = var40.x2[1];
4434 var44.x2[1] = _src.x2[1];
4439 _dest.x2[0] = var44.x2[0];
4440 _dest.x2[1] = var43.x2[0];
4441 var38.x2[0] = _dest.i;
4445 _dest.x2[0] = var44.x2[1];
4446 _dest.x2[1] = var43.x2[1];
4447 var38.x2[1] = _dest.i;
4457 video_convert_orc_convert_AYUV_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
4458 const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
4460 OrcExecutor _ex, *ex = &_ex;
4461 static volatile int p_inited = 0;
4462 static OrcCode *c = 0;
4463 void (*func) (OrcExecutor *);
4466 orc_once_mutex_lock ();
4471 static const orc_uint8 bc[] = {
4472 1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
4473 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
4474 85, 86, 95, 89, 85, 89, 50, 11, 4, 4, 12, 8, 8, 20, 2, 20,
4475 2, 20, 2, 20, 4, 20, 4, 21, 1, 198, 36, 35, 4, 198, 33, 34,
4476 36, 21, 1, 39, 33, 33, 34, 21, 1, 189, 32, 35, 21, 1, 196, 0,
4479 p = orc_program_new_from_static_bytecode (bc);
4480 orc_program_set_backup_function (p,
4481 _backup_video_convert_orc_convert_AYUV_YUY2);
4483 p = orc_program_new ();
4484 orc_program_set_2d (p);
4485 orc_program_set_name (p, "video_convert_orc_convert_AYUV_YUY2");
4486 orc_program_set_backup_function (p,
4487 _backup_video_convert_orc_convert_AYUV_YUY2);
4488 orc_program_add_destination (p, 4, "d1");
4489 orc_program_add_source (p, 8, "s1");
4490 orc_program_add_temporary (p, 2, "t1");
4491 orc_program_add_temporary (p, 2, "t2");
4492 orc_program_add_temporary (p, 2, "t3");
4493 orc_program_add_temporary (p, 4, "t4");
4494 orc_program_add_temporary (p, 4, "t5");
4496 orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_S1,
4498 orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T5,
4500 orc_program_append_2 (p, "avgub", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
4502 orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T4,
4503 ORC_VAR_D1, ORC_VAR_D1);
4504 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
4508 orc_program_compile (p);
4509 c = orc_program_take_code (p);
4510 orc_program_free (p);
4513 orc_once_mutex_unlock ();
4515 ex->arrays[ORC_VAR_A2] = c;
4519 ORC_EXECUTOR_M (ex) = m;
4520 ex->arrays[ORC_VAR_D1] = d1;
4521 ex->params[ORC_VAR_D1] = d1_stride;
4522 ex->arrays[ORC_VAR_S1] = (void *) s1;
4523 ex->params[ORC_VAR_S1] = s1_stride;
4531 /* video_convert_orc_convert_AYUV_UYVY */
4534 video_convert_orc_convert_AYUV_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride,
4535 const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
4539 orc_union32 *ORC_RESTRICT ptr0;
4540 const orc_union64 *ORC_RESTRICT ptr4;
4550 for (j = 0; j < m; j++) {
4551 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
4552 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
4555 for (i = 0; i < n; i++) {
4561 _src.i = var37.x2[0];
4562 var39.x2[0] = _src.x2[1];
4563 var40.x2[0] = _src.x2[0];
4567 _src.i = var37.x2[1];
4568 var39.x2[1] = _src.x2[1];
4569 var40.x2[1] = _src.x2[0];
4575 var41.i = _src.x2[1];
4576 var42.i = _src.x2[0];
4580 ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
4582 ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
4586 _src.i = var40.x2[0];
4587 var44.x2[0] = _src.x2[1];
4591 _src.i = var40.x2[1];
4592 var44.x2[1] = _src.x2[1];
4597 _dest.x2[0] = var43.x2[0];
4598 _dest.x2[1] = var44.x2[0];
4599 var38.x2[0] = _dest.i;
4603 _dest.x2[0] = var43.x2[1];
4604 _dest.x2[1] = var44.x2[1];
4605 var38.x2[1] = _dest.i;
4616 _backup_video_convert_orc_convert_AYUV_UYVY (OrcExecutor * ORC_RESTRICT ex)
4621 int m = ex->params[ORC_VAR_A1];
4622 orc_union32 *ORC_RESTRICT ptr0;
4623 const orc_union64 *ORC_RESTRICT ptr4;
4633 for (j = 0; j < m; j++) {
4634 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
4635 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
4638 for (i = 0; i < n; i++) {
4644 _src.i = var37.x2[0];
4645 var39.x2[0] = _src.x2[1];
4646 var40.x2[0] = _src.x2[0];
4650 _src.i = var37.x2[1];
4651 var39.x2[1] = _src.x2[1];
4652 var40.x2[1] = _src.x2[0];
4658 var41.i = _src.x2[1];
4659 var42.i = _src.x2[0];
4663 ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
4665 ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
4669 _src.i = var40.x2[0];
4670 var44.x2[0] = _src.x2[1];
4674 _src.i = var40.x2[1];
4675 var44.x2[1] = _src.x2[1];
4680 _dest.x2[0] = var43.x2[0];
4681 _dest.x2[1] = var44.x2[0];
4682 var38.x2[0] = _dest.i;
4686 _dest.x2[0] = var43.x2[1];
4687 _dest.x2[1] = var44.x2[1];
4688 var38.x2[1] = _dest.i;
4698 video_convert_orc_convert_AYUV_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride,
4699 const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
4701 OrcExecutor _ex, *ex = &_ex;
4702 static volatile int p_inited = 0;
4703 static OrcCode *c = 0;
4704 void (*func) (OrcExecutor *);
4707 orc_once_mutex_lock ();
4712 static const orc_uint8 bc[] = {
4713 1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
4714 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
4715 85, 86, 95, 85, 89, 86, 89, 11, 4, 4, 12, 8, 8, 20, 2, 20,
4716 2, 20, 2, 20, 4, 20, 4, 21, 1, 198, 36, 35, 4, 198, 33, 34,
4717 36, 21, 1, 39, 33, 33, 34, 21, 1, 189, 32, 35, 21, 1, 196, 0,
4720 p = orc_program_new_from_static_bytecode (bc);
4721 orc_program_set_backup_function (p,
4722 _backup_video_convert_orc_convert_AYUV_UYVY);
4724 p = orc_program_new ();
4725 orc_program_set_2d (p);
4726 orc_program_set_name (p, "video_convert_orc_convert_AYUV_UYVY");
4727 orc_program_set_backup_function (p,
4728 _backup_video_convert_orc_convert_AYUV_UYVY);
4729 orc_program_add_destination (p, 4, "d1");
4730 orc_program_add_source (p, 8, "s1");
4731 orc_program_add_temporary (p, 2, "t1");
4732 orc_program_add_temporary (p, 2, "t2");
4733 orc_program_add_temporary (p, 2, "t3");
4734 orc_program_add_temporary (p, 4, "t4");
4735 orc_program_add_temporary (p, 4, "t5");
4737 orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_S1,
4739 orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T5,
4741 orc_program_append_2 (p, "avgub", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
4743 orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T4,
4744 ORC_VAR_D1, ORC_VAR_D1);
4745 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
4749 orc_program_compile (p);
4750 c = orc_program_take_code (p);
4751 orc_program_free (p);
4754 orc_once_mutex_unlock ();
4756 ex->arrays[ORC_VAR_A2] = c;
4760 ORC_EXECUTOR_M (ex) = m;
4761 ex->arrays[ORC_VAR_D1] = d1;
4762 ex->params[ORC_VAR_D1] = d1_stride;
4763 ex->arrays[ORC_VAR_S1] = (void *) s1;
4764 ex->params[ORC_VAR_S1] = s1_stride;
4772 /* video_convert_orc_convert_AYUV_Y42B */
4775 video_convert_orc_convert_AYUV_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride,
4776 guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
4777 int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
4781 orc_union16 *ORC_RESTRICT ptr0;
4782 orc_int8 *ORC_RESTRICT ptr1;
4783 orc_int8 *ORC_RESTRICT ptr2;
4784 const orc_union64 *ORC_RESTRICT ptr4;
4795 for (j = 0; j < m; j++) {
4796 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
4797 ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
4798 ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
4799 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
4802 for (i = 0; i < n; i++) {
4808 _src.i = var36.x2[0];
4809 var40.x2[0] = _src.x2[1];
4810 var41.x2[0] = _src.x2[0];
4814 _src.i = var36.x2[1];
4815 var40.x2[1] = _src.x2[1];
4816 var41.x2[1] = _src.x2[0];
4822 var42.i = _src.x2[1];
4823 var43.i = _src.x2[0];
4827 ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
4829 ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
4844 _src.i = var41.x2[0];
4845 var39.x2[0] = _src.x2[1];
4849 _src.i = var41.x2[1];
4850 var39.x2[1] = _src.x2[1];
4861 _backup_video_convert_orc_convert_AYUV_Y42B (OrcExecutor * ORC_RESTRICT ex)
4866 int m = ex->params[ORC_VAR_A1];
4867 orc_union16 *ORC_RESTRICT ptr0;
4868 orc_int8 *ORC_RESTRICT ptr1;
4869 orc_int8 *ORC_RESTRICT ptr2;
4870 const orc_union64 *ORC_RESTRICT ptr4;
4881 for (j = 0; j < m; j++) {
4882 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
4883 ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
4884 ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
4885 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
4888 for (i = 0; i < n; i++) {
4894 _src.i = var36.x2[0];
4895 var40.x2[0] = _src.x2[1];
4896 var41.x2[0] = _src.x2[0];
4900 _src.i = var36.x2[1];
4901 var40.x2[1] = _src.x2[1];
4902 var41.x2[1] = _src.x2[0];
4908 var42.i = _src.x2[1];
4909 var43.i = _src.x2[0];
4913 ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
4915 ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
4930 _src.i = var41.x2[0];
4931 var39.x2[0] = _src.x2[1];
4935 _src.i = var41.x2[1];
4936 var39.x2[1] = _src.x2[1];
4946 video_convert_orc_convert_AYUV_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride,
4947 guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
4948 int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
4950 OrcExecutor _ex, *ex = &_ex;
4951 static volatile int p_inited = 0;
4952 static OrcCode *c = 0;
4953 void (*func) (OrcExecutor *);
4956 orc_once_mutex_lock ();
4961 static const orc_uint8 bc[] = {
4962 1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
4963 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
4964 85, 86, 95, 89, 52, 50, 66, 11, 2, 2, 11, 1, 1, 11, 1, 1,
4965 12, 8, 8, 20, 4, 20, 4, 20, 2, 20, 2, 21, 1, 198, 33, 32,
4966 4, 198, 34, 35, 33, 21, 1, 39, 34, 34, 35, 199, 2, 1, 34, 21,
4967 1, 189, 0, 32, 2, 0,
4969 p = orc_program_new_from_static_bytecode (bc);
4970 orc_program_set_backup_function (p,
4971 _backup_video_convert_orc_convert_AYUV_Y42B);
4973 p = orc_program_new ();
4974 orc_program_set_2d (p);
4975 orc_program_set_name (p, "video_convert_orc_convert_AYUV_Y42B");
4976 orc_program_set_backup_function (p,
4977 _backup_video_convert_orc_convert_AYUV_Y42B);
4978 orc_program_add_destination (p, 2, "d1");
4979 orc_program_add_destination (p, 1, "d2");
4980 orc_program_add_destination (p, 1, "d3");
4981 orc_program_add_source (p, 8, "s1");
4982 orc_program_add_temporary (p, 4, "t1");
4983 orc_program_add_temporary (p, 4, "t2");
4984 orc_program_add_temporary (p, 2, "t3");
4985 orc_program_add_temporary (p, 2, "t4");
4987 orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
4989 orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
4991 orc_program_append_2 (p, "avgub", 1, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T4,
4993 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T3,
4995 orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
4996 ORC_VAR_D1, ORC_VAR_D1);
4999 orc_program_compile (p);
5000 c = orc_program_take_code (p);
5001 orc_program_free (p);
5004 orc_once_mutex_unlock ();
5006 ex->arrays[ORC_VAR_A2] = c;
5010 ORC_EXECUTOR_M (ex) = m;
5011 ex->arrays[ORC_VAR_D1] = d1;
5012 ex->params[ORC_VAR_D1] = d1_stride;
5013 ex->arrays[ORC_VAR_D2] = d2;
5014 ex->params[ORC_VAR_D2] = d2_stride;
5015 ex->arrays[ORC_VAR_D3] = d3;
5016 ex->params[ORC_VAR_D3] = d3_stride;
5017 ex->arrays[ORC_VAR_S1] = (void *) s1;
5018 ex->params[ORC_VAR_S1] = s1_stride;
5026 /* video_convert_orc_convert_AYUV_Y444 */
5029 video_convert_orc_convert_AYUV_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride,
5030 guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
5031 int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
5035 orc_int8 *ORC_RESTRICT ptr0;
5036 orc_int8 *ORC_RESTRICT ptr1;
5037 orc_int8 *ORC_RESTRICT ptr2;
5038 const orc_union32 *ORC_RESTRICT ptr4;
5046 for (j = 0; j < m; j++) {
5047 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
5048 ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
5049 ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
5050 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
5053 for (i = 0; i < n; i++) {
5060 var38.i = _src.x2[1];
5061 var39.i = _src.x2[0];
5089 _backup_video_convert_orc_convert_AYUV_Y444 (OrcExecutor * ORC_RESTRICT ex)
5094 int m = ex->params[ORC_VAR_A1];
5095 orc_int8 *ORC_RESTRICT ptr0;
5096 orc_int8 *ORC_RESTRICT ptr1;
5097 orc_int8 *ORC_RESTRICT ptr2;
5098 const orc_union32 *ORC_RESTRICT ptr4;
5106 for (j = 0; j < m; j++) {
5107 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
5108 ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
5109 ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
5110 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
5113 for (i = 0; i < n; i++) {
5120 var38.i = _src.x2[1];
5121 var39.i = _src.x2[0];
5148 video_convert_orc_convert_AYUV_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride,
5149 guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
5150 int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
5152 OrcExecutor _ex, *ex = &_ex;
5153 static volatile int p_inited = 0;
5154 static OrcCode *c = 0;
5155 void (*func) (OrcExecutor *);
5158 orc_once_mutex_lock ();
5163 static const orc_uint8 bc[] = {
5164 1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
5165 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
5166 85, 86, 95, 89, 52, 52, 52, 11, 1, 1, 11, 1, 1, 11, 1, 1,
5167 12, 4, 4, 20, 2, 20, 2, 198, 33, 32, 4, 199, 2, 1, 33, 189,
5170 p = orc_program_new_from_static_bytecode (bc);
5171 orc_program_set_backup_function (p,
5172 _backup_video_convert_orc_convert_AYUV_Y444);
5174 p = orc_program_new ();
5175 orc_program_set_2d (p);
5176 orc_program_set_name (p, "video_convert_orc_convert_AYUV_Y444");
5177 orc_program_set_backup_function (p,
5178 _backup_video_convert_orc_convert_AYUV_Y444);
5179 orc_program_add_destination (p, 1, "d1");
5180 orc_program_add_destination (p, 1, "d2");
5181 orc_program_add_destination (p, 1, "d3");
5182 orc_program_add_source (p, 4, "s1");
5183 orc_program_add_temporary (p, 2, "t1");
5184 orc_program_add_temporary (p, 2, "t2");
5186 orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
5188 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T2,
5190 orc_program_append_2 (p, "select1wb", 0, ORC_VAR_D1, ORC_VAR_T1,
5191 ORC_VAR_D1, ORC_VAR_D1);
5194 orc_program_compile (p);
5195 c = orc_program_take_code (p);
5196 orc_program_free (p);
5199 orc_once_mutex_unlock ();
5201 ex->arrays[ORC_VAR_A2] = c;
5205 ORC_EXECUTOR_M (ex) = m;
5206 ex->arrays[ORC_VAR_D1] = d1;
5207 ex->params[ORC_VAR_D1] = d1_stride;
5208 ex->arrays[ORC_VAR_D2] = d2;
5209 ex->params[ORC_VAR_D2] = d2_stride;
5210 ex->arrays[ORC_VAR_D3] = d3;
5211 ex->params[ORC_VAR_D3] = d3_stride;
5212 ex->arrays[ORC_VAR_S1] = (void *) s1;
5213 ex->params[ORC_VAR_S1] = s1_stride;
5221 /* video_convert_orc_convert_Y42B_YUY2 */
5224 video_convert_orc_convert_Y42B_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
5225 const guint8 * ORC_RESTRICT s1, int s1_stride,
5226 const guint8 * ORC_RESTRICT s2, int s2_stride,
5227 const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
5231 orc_union32 *ORC_RESTRICT ptr0;
5232 const orc_union16 *ORC_RESTRICT ptr4;
5233 const orc_int8 *ORC_RESTRICT ptr5;
5234 const orc_int8 *ORC_RESTRICT ptr6;
5241 for (j = 0; j < m; j++) {
5242 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
5243 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
5244 ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
5245 ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
5248 for (i = 0; i < n; i++) {
5256 _dest.x2[0] = var33;
5257 _dest.x2[1] = var34;
5265 _dest.x2[0] = var35.x2[0];
5266 _dest.x2[1] = var37.x2[0];
5267 var36.x2[0] = _dest.i;
5271 _dest.x2[0] = var35.x2[1];
5272 _dest.x2[1] = var37.x2[1];
5273 var36.x2[1] = _dest.i;
5284 _backup_video_convert_orc_convert_Y42B_YUY2 (OrcExecutor * ORC_RESTRICT ex)
5289 int m = ex->params[ORC_VAR_A1];
5290 orc_union32 *ORC_RESTRICT ptr0;
5291 const orc_union16 *ORC_RESTRICT ptr4;
5292 const orc_int8 *ORC_RESTRICT ptr5;
5293 const orc_int8 *ORC_RESTRICT ptr6;
5300 for (j = 0; j < m; j++) {
5301 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
5302 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
5303 ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
5304 ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
5307 for (i = 0; i < n; i++) {
5315 _dest.x2[0] = var33;
5316 _dest.x2[1] = var34;
5324 _dest.x2[0] = var35.x2[0];
5325 _dest.x2[1] = var37.x2[0];
5326 var36.x2[0] = _dest.i;
5330 _dest.x2[0] = var35.x2[1];
5331 _dest.x2[1] = var37.x2[1];
5332 var36.x2[1] = _dest.i;
5342 video_convert_orc_convert_Y42B_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
5343 const guint8 * ORC_RESTRICT s1, int s1_stride,
5344 const guint8 * ORC_RESTRICT s2, int s2_stride,
5345 const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
5347 OrcExecutor _ex, *ex = &_ex;
5348 static volatile int p_inited = 0;
5349 static OrcCode *c = 0;
5350 void (*func) (OrcExecutor *);
5353 orc_once_mutex_lock ();
5358 static const orc_uint8 bc[] = {
5359 1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
5360 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 52,
5361 50, 66, 95, 89, 85, 89, 50, 11, 4, 4, 12, 2, 2, 12, 1, 1,
5362 12, 1, 1, 20, 2, 196, 32, 5, 6, 21, 1, 196, 0, 4, 32, 2,
5365 p = orc_program_new_from_static_bytecode (bc);
5366 orc_program_set_backup_function (p,
5367 _backup_video_convert_orc_convert_Y42B_YUY2);
5369 p = orc_program_new ();
5370 orc_program_set_2d (p);
5371 orc_program_set_name (p, "video_convert_orc_convert_Y42B_YUY2");
5372 orc_program_set_backup_function (p,
5373 _backup_video_convert_orc_convert_Y42B_YUY2);
5374 orc_program_add_destination (p, 4, "d1");
5375 orc_program_add_source (p, 2, "s1");
5376 orc_program_add_source (p, 1, "s2");
5377 orc_program_add_source (p, 1, "s3");
5378 orc_program_add_temporary (p, 2, "t1");
5380 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3,
5382 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_T1,
5386 orc_program_compile (p);
5387 c = orc_program_take_code (p);
5388 orc_program_free (p);
5391 orc_once_mutex_unlock ();
5393 ex->arrays[ORC_VAR_A2] = c;
5397 ORC_EXECUTOR_M (ex) = m;
5398 ex->arrays[ORC_VAR_D1] = d1;
5399 ex->params[ORC_VAR_D1] = d1_stride;
5400 ex->arrays[ORC_VAR_S1] = (void *) s1;
5401 ex->params[ORC_VAR_S1] = s1_stride;
5402 ex->arrays[ORC_VAR_S2] = (void *) s2;
5403 ex->params[ORC_VAR_S2] = s2_stride;
5404 ex->arrays[ORC_VAR_S3] = (void *) s3;
5405 ex->params[ORC_VAR_S3] = s3_stride;
5413 /* video_convert_orc_convert_Y42B_UYVY */
5416 video_convert_orc_convert_Y42B_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride,
5417 const guint8 * ORC_RESTRICT s1, int s1_stride,
5418 const guint8 * ORC_RESTRICT s2, int s2_stride,
5419 const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
5423 orc_union32 *ORC_RESTRICT ptr0;
5424 const orc_union16 *ORC_RESTRICT ptr4;
5425 const orc_int8 *ORC_RESTRICT ptr5;
5426 const orc_int8 *ORC_RESTRICT ptr6;
5433 for (j = 0; j < m; j++) {
5434 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
5435 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
5436 ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
5437 ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
5440 for (i = 0; i < n; i++) {
5448 _dest.x2[0] = var33;
5449 _dest.x2[1] = var34;
5457 _dest.x2[0] = var37.x2[0];
5458 _dest.x2[1] = var35.x2[0];
5459 var36.x2[0] = _dest.i;
5463 _dest.x2[0] = var37.x2[1];
5464 _dest.x2[1] = var35.x2[1];
5465 var36.x2[1] = _dest.i;
5476 _backup_video_convert_orc_convert_Y42B_UYVY (OrcExecutor * ORC_RESTRICT ex)
5481 int m = ex->params[ORC_VAR_A1];
5482 orc_union32 *ORC_RESTRICT ptr0;
5483 const orc_union16 *ORC_RESTRICT ptr4;
5484 const orc_int8 *ORC_RESTRICT ptr5;
5485 const orc_int8 *ORC_RESTRICT ptr6;
5492 for (j = 0; j < m; j++) {
5493 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
5494 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
5495 ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
5496 ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
5499 for (i = 0; i < n; i++) {
5507 _dest.x2[0] = var33;
5508 _dest.x2[1] = var34;
5516 _dest.x2[0] = var37.x2[0];
5517 _dest.x2[1] = var35.x2[0];
5518 var36.x2[0] = _dest.i;
5522 _dest.x2[0] = var37.x2[1];
5523 _dest.x2[1] = var35.x2[1];
5524 var36.x2[1] = _dest.i;
5534 video_convert_orc_convert_Y42B_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride,
5535 const guint8 * ORC_RESTRICT s1, int s1_stride,
5536 const guint8 * ORC_RESTRICT s2, int s2_stride,
5537 const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
5539 OrcExecutor _ex, *ex = &_ex;
5540 static volatile int p_inited = 0;
5541 static OrcCode *c = 0;
5542 void (*func) (OrcExecutor *);
5545 orc_once_mutex_lock ();
5550 static const orc_uint8 bc[] = {
5551 1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
5552 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 52,
5553 50, 66, 95, 85, 89, 86, 89, 11, 4, 4, 12, 2, 2, 12, 1, 1,
5554 12, 1, 1, 20, 2, 196, 32, 5, 6, 21, 1, 196, 0, 32, 4, 2,
5557 p = orc_program_new_from_static_bytecode (bc);
5558 orc_program_set_backup_function (p,
5559 _backup_video_convert_orc_convert_Y42B_UYVY);
5561 p = orc_program_new ();
5562 orc_program_set_2d (p);
5563 orc_program_set_name (p, "video_convert_orc_convert_Y42B_UYVY");
5564 orc_program_set_backup_function (p,
5565 _backup_video_convert_orc_convert_Y42B_UYVY);
5566 orc_program_add_destination (p, 4, "d1");
5567 orc_program_add_source (p, 2, "s1");
5568 orc_program_add_source (p, 1, "s2");
5569 orc_program_add_source (p, 1, "s3");
5570 orc_program_add_temporary (p, 2, "t1");
5572 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3,
5574 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1,
5578 orc_program_compile (p);
5579 c = orc_program_take_code (p);
5580 orc_program_free (p);
5583 orc_once_mutex_unlock ();
5585 ex->arrays[ORC_VAR_A2] = c;
5589 ORC_EXECUTOR_M (ex) = m;
5590 ex->arrays[ORC_VAR_D1] = d1;
5591 ex->params[ORC_VAR_D1] = d1_stride;
5592 ex->arrays[ORC_VAR_S1] = (void *) s1;
5593 ex->params[ORC_VAR_S1] = s1_stride;
5594 ex->arrays[ORC_VAR_S2] = (void *) s2;
5595 ex->params[ORC_VAR_S2] = s2_stride;
5596 ex->arrays[ORC_VAR_S3] = (void *) s3;
5597 ex->params[ORC_VAR_S3] = s3_stride;
5605 /* video_convert_orc_convert_Y42B_AYUV */
5608 video_convert_orc_convert_Y42B_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
5609 const guint8 * ORC_RESTRICT s1, int s1_stride,
5610 const guint8 * ORC_RESTRICT s2, int s2_stride,
5611 const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
5615 orc_union64 *ORC_RESTRICT ptr0;
5616 const orc_union16 *ORC_RESTRICT ptr4;
5617 const orc_int8 *ORC_RESTRICT ptr5;
5618 const orc_int8 *ORC_RESTRICT ptr6;
5621 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
5622 volatile orc_union16 var38;
5632 for (j = 0; j < m; j++) {
5633 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
5634 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
5635 ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
5636 ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
5639 var38.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
5640 var38.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
5642 for (i = 0; i < n; i++) {
5650 _dest.x2[0] = var36;
5651 _dest.x2[1] = var37;
5659 _dest.x2[0] = var38.x2[0];
5660 _dest.x2[1] = var39.x2[0];
5661 var42.x2[0] = _dest.i;
5665 _dest.x2[0] = var38.x2[1];
5666 _dest.x2[1] = var39.x2[1];
5667 var42.x2[1] = _dest.i;
5672 _dest.x2[0] = var41.i;
5673 _dest.x2[1] = var41.i;
5679 _dest.x2[0] = var42.x2[0];
5680 _dest.x2[1] = var43.x2[0];
5681 var40.x2[0] = _dest.i;
5685 _dest.x2[0] = var42.x2[1];
5686 _dest.x2[1] = var43.x2[1];
5687 var40.x2[1] = _dest.i;
5698 _backup_video_convert_orc_convert_Y42B_AYUV (OrcExecutor * ORC_RESTRICT ex)
5703 int m = ex->params[ORC_VAR_A1];
5704 orc_union64 *ORC_RESTRICT ptr0;
5705 const orc_union16 *ORC_RESTRICT ptr4;
5706 const orc_int8 *ORC_RESTRICT ptr5;
5707 const orc_int8 *ORC_RESTRICT ptr6;
5710 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
5711 volatile orc_union16 var38;
5721 for (j = 0; j < m; j++) {
5722 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
5723 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
5724 ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
5725 ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
5728 var38.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
5729 var38.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
5731 for (i = 0; i < n; i++) {
5739 _dest.x2[0] = var36;
5740 _dest.x2[1] = var37;
5748 _dest.x2[0] = var38.x2[0];
5749 _dest.x2[1] = var39.x2[0];
5750 var42.x2[0] = _dest.i;
5754 _dest.x2[0] = var38.x2[1];
5755 _dest.x2[1] = var39.x2[1];
5756 var42.x2[1] = _dest.i;
5761 _dest.x2[0] = var41.i;
5762 _dest.x2[1] = var41.i;
5768 _dest.x2[0] = var42.x2[0];
5769 _dest.x2[1] = var43.x2[0];
5770 var40.x2[0] = _dest.i;
5774 _dest.x2[0] = var42.x2[1];
5775 _dest.x2[1] = var43.x2[1];
5776 var40.x2[1] = _dest.i;
5786 video_convert_orc_convert_Y42B_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
5787 const guint8 * ORC_RESTRICT s1, int s1_stride,
5788 const guint8 * ORC_RESTRICT s2, int s2_stride,
5789 const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
5791 OrcExecutor _ex, *ex = &_ex;
5792 static volatile int p_inited = 0;
5793 static OrcCode *c = 0;
5794 void (*func) (OrcExecutor *);
5797 orc_once_mutex_lock ();
5802 static const orc_uint8 bc[] = {
5803 1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
5804 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 52,
5805 50, 66, 95, 65, 89, 85, 86, 11, 8, 8, 12, 2, 2, 12, 1, 1,
5806 12, 1, 1, 14, 1, 255, 0, 0, 0, 20, 2, 20, 2, 20, 4, 20,
5807 4, 196, 32, 5, 6, 21, 1, 196, 35, 16, 4, 195, 34, 32, 32, 21,
5808 1, 195, 0, 35, 34, 2, 0,
5810 p = orc_program_new_from_static_bytecode (bc);
5811 orc_program_set_backup_function (p,
5812 _backup_video_convert_orc_convert_Y42B_AYUV);
5814 p = orc_program_new ();
5815 orc_program_set_2d (p);
5816 orc_program_set_name (p, "video_convert_orc_convert_Y42B_AYUV");
5817 orc_program_set_backup_function (p,
5818 _backup_video_convert_orc_convert_Y42B_AYUV);
5819 orc_program_add_destination (p, 8, "d1");
5820 orc_program_add_source (p, 2, "s1");
5821 orc_program_add_source (p, 1, "s2");
5822 orc_program_add_source (p, 1, "s3");
5823 orc_program_add_constant (p, 1, 0x000000ff, "c1");
5824 orc_program_add_temporary (p, 2, "t1");
5825 orc_program_add_temporary (p, 2, "t2");
5826 orc_program_add_temporary (p, 4, "t3");
5827 orc_program_add_temporary (p, 4, "t4");
5829 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3,
5831 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T4, ORC_VAR_C1, ORC_VAR_S1,
5833 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_T1,
5835 orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T4, ORC_VAR_T3,
5839 orc_program_compile (p);
5840 c = orc_program_take_code (p);
5841 orc_program_free (p);
5844 orc_once_mutex_unlock ();
5846 ex->arrays[ORC_VAR_A2] = c;
5850 ORC_EXECUTOR_M (ex) = m;
5851 ex->arrays[ORC_VAR_D1] = d1;
5852 ex->params[ORC_VAR_D1] = d1_stride;
5853 ex->arrays[ORC_VAR_S1] = (void *) s1;
5854 ex->params[ORC_VAR_S1] = s1_stride;
5855 ex->arrays[ORC_VAR_S2] = (void *) s2;
5856 ex->params[ORC_VAR_S2] = s2_stride;
5857 ex->arrays[ORC_VAR_S3] = (void *) s3;
5858 ex->params[ORC_VAR_S3] = s3_stride;
5866 /* video_convert_orc_convert_Y444_YUY2 */
5869 video_convert_orc_convert_Y444_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
5870 const guint8 * ORC_RESTRICT s1, int s1_stride,
5871 const guint8 * ORC_RESTRICT s2, int s2_stride,
5872 const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
5876 orc_union32 *ORC_RESTRICT ptr0;
5877 const orc_union16 *ORC_RESTRICT ptr4;
5878 const orc_union16 *ORC_RESTRICT ptr5;
5879 const orc_union16 *ORC_RESTRICT ptr6;
5889 for (j = 0; j < m; j++) {
5890 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
5891 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
5892 ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
5893 ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
5896 for (i = 0; i < n; i++) {
5904 _dest.x2[0] = var36.x2[0];
5905 _dest.x2[1] = var37.x2[0];
5906 var40.x2[0] = _dest.i;
5910 _dest.x2[0] = var36.x2[1];
5911 _dest.x2[1] = var37.x2[1];
5912 var40.x2[1] = _dest.i;
5918 var41.i = _src.x2[1];
5919 var42.i = _src.x2[0];
5923 ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
5925 ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
5931 _dest.x2[0] = var38.x2[0];
5932 _dest.x2[1] = var43.x2[0];
5933 var39.x2[0] = _dest.i;
5937 _dest.x2[0] = var38.x2[1];
5938 _dest.x2[1] = var43.x2[1];
5939 var39.x2[1] = _dest.i;
5950 _backup_video_convert_orc_convert_Y444_YUY2 (OrcExecutor * ORC_RESTRICT ex)
5955 int m = ex->params[ORC_VAR_A1];
5956 orc_union32 *ORC_RESTRICT ptr0;
5957 const orc_union16 *ORC_RESTRICT ptr4;
5958 const orc_union16 *ORC_RESTRICT ptr5;
5959 const orc_union16 *ORC_RESTRICT ptr6;
5969 for (j = 0; j < m; j++) {
5970 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
5971 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
5972 ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
5973 ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
5976 for (i = 0; i < n; i++) {
5984 _dest.x2[0] = var36.x2[0];
5985 _dest.x2[1] = var37.x2[0];
5986 var40.x2[0] = _dest.i;
5990 _dest.x2[0] = var36.x2[1];
5991 _dest.x2[1] = var37.x2[1];
5992 var40.x2[1] = _dest.i;
5998 var41.i = _src.x2[1];
5999 var42.i = _src.x2[0];
6003 ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
6005 ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
6011 _dest.x2[0] = var38.x2[0];
6012 _dest.x2[1] = var43.x2[0];
6013 var39.x2[0] = _dest.i;
6017 _dest.x2[0] = var38.x2[1];
6018 _dest.x2[1] = var43.x2[1];
6019 var39.x2[1] = _dest.i;
6029 video_convert_orc_convert_Y444_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
6030 const guint8 * ORC_RESTRICT s1, int s1_stride,
6031 const guint8 * ORC_RESTRICT s2, int s2_stride,
6032 const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
6034 OrcExecutor _ex, *ex = &_ex;
6035 static volatile int p_inited = 0;
6036 static OrcCode *c = 0;
6037 void (*func) (OrcExecutor *);
6040 orc_once_mutex_lock ();
6045 static const orc_uint8 bc[] = {
6046 1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
6047 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 52,
6048 52, 52, 95, 89, 85, 89, 50, 11, 4, 4, 12, 2, 2, 12, 2, 2,
6049 12, 2, 2, 20, 2, 20, 4, 20, 2, 20, 2, 21, 1, 196, 33, 5,
6050 6, 198, 34, 35, 33, 21, 1, 39, 32, 34, 35, 21, 1, 196, 0, 4,
6053 p = orc_program_new_from_static_bytecode (bc);
6054 orc_program_set_backup_function (p,
6055 _backup_video_convert_orc_convert_Y444_YUY2);
6057 p = orc_program_new ();
6058 orc_program_set_2d (p);
6059 orc_program_set_name (p, "video_convert_orc_convert_Y444_YUY2");
6060 orc_program_set_backup_function (p,
6061 _backup_video_convert_orc_convert_Y444_YUY2);
6062 orc_program_add_destination (p, 4, "d1");
6063 orc_program_add_source (p, 2, "s1");
6064 orc_program_add_source (p, 2, "s2");
6065 orc_program_add_source (p, 2, "s3");
6066 orc_program_add_temporary (p, 2, "t1");
6067 orc_program_add_temporary (p, 4, "t2");
6068 orc_program_add_temporary (p, 2, "t3");
6069 orc_program_add_temporary (p, 2, "t4");
6071 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_S3,
6073 orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
6075 orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_T4,
6077 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_T1,
6081 orc_program_compile (p);
6082 c = orc_program_take_code (p);
6083 orc_program_free (p);
6086 orc_once_mutex_unlock ();
6088 ex->arrays[ORC_VAR_A2] = c;
6092 ORC_EXECUTOR_M (ex) = m;
6093 ex->arrays[ORC_VAR_D1] = d1;
6094 ex->params[ORC_VAR_D1] = d1_stride;
6095 ex->arrays[ORC_VAR_S1] = (void *) s1;
6096 ex->params[ORC_VAR_S1] = s1_stride;
6097 ex->arrays[ORC_VAR_S2] = (void *) s2;
6098 ex->params[ORC_VAR_S2] = s2_stride;
6099 ex->arrays[ORC_VAR_S3] = (void *) s3;
6100 ex->params[ORC_VAR_S3] = s3_stride;
6108 /* video_convert_orc_convert_Y444_UYVY */
6111 video_convert_orc_convert_Y444_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride,
6112 const guint8 * ORC_RESTRICT s1, int s1_stride,
6113 const guint8 * ORC_RESTRICT s2, int s2_stride,
6114 const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
6118 orc_union32 *ORC_RESTRICT ptr0;
6119 const orc_union16 *ORC_RESTRICT ptr4;
6120 const orc_union16 *ORC_RESTRICT ptr5;
6121 const orc_union16 *ORC_RESTRICT ptr6;
6131 for (j = 0; j < m; j++) {
6132 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
6133 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
6134 ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
6135 ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
6138 for (i = 0; i < n; i++) {
6146 _dest.x2[0] = var36.x2[0];
6147 _dest.x2[1] = var37.x2[0];
6148 var40.x2[0] = _dest.i;
6152 _dest.x2[0] = var36.x2[1];
6153 _dest.x2[1] = var37.x2[1];
6154 var40.x2[1] = _dest.i;
6160 var41.i = _src.x2[1];
6161 var42.i = _src.x2[0];
6165 ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
6167 ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
6173 _dest.x2[0] = var43.x2[0];
6174 _dest.x2[1] = var38.x2[0];
6175 var39.x2[0] = _dest.i;
6179 _dest.x2[0] = var43.x2[1];
6180 _dest.x2[1] = var38.x2[1];
6181 var39.x2[1] = _dest.i;
6192 _backup_video_convert_orc_convert_Y444_UYVY (OrcExecutor * ORC_RESTRICT ex)
6197 int m = ex->params[ORC_VAR_A1];
6198 orc_union32 *ORC_RESTRICT ptr0;
6199 const orc_union16 *ORC_RESTRICT ptr4;
6200 const orc_union16 *ORC_RESTRICT ptr5;
6201 const orc_union16 *ORC_RESTRICT ptr6;
6211 for (j = 0; j < m; j++) {
6212 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
6213 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
6214 ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
6215 ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
6218 for (i = 0; i < n; i++) {
6226 _dest.x2[0] = var36.x2[0];
6227 _dest.x2[1] = var37.x2[0];
6228 var40.x2[0] = _dest.i;
6232 _dest.x2[0] = var36.x2[1];
6233 _dest.x2[1] = var37.x2[1];
6234 var40.x2[1] = _dest.i;
6240 var41.i = _src.x2[1];
6241 var42.i = _src.x2[0];
6245 ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
6247 ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
6253 _dest.x2[0] = var43.x2[0];
6254 _dest.x2[1] = var38.x2[0];
6255 var39.x2[0] = _dest.i;
6259 _dest.x2[0] = var43.x2[1];
6260 _dest.x2[1] = var38.x2[1];
6261 var39.x2[1] = _dest.i;
6271 video_convert_orc_convert_Y444_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride,
6272 const guint8 * ORC_RESTRICT s1, int s1_stride,
6273 const guint8 * ORC_RESTRICT s2, int s2_stride,
6274 const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
6276 OrcExecutor _ex, *ex = &_ex;
6277 static volatile int p_inited = 0;
6278 static OrcCode *c = 0;
6279 void (*func) (OrcExecutor *);
6282 orc_once_mutex_lock ();
6287 static const orc_uint8 bc[] = {
6288 1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
6289 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 52,
6290 52, 52, 95, 85, 89, 86, 89, 11, 4, 4, 12, 2, 2, 12, 2, 2,
6291 12, 2, 2, 20, 2, 20, 4, 20, 2, 20, 2, 21, 1, 196, 33, 5,
6292 6, 198, 34, 35, 33, 21, 1, 39, 32, 34, 35, 21, 1, 196, 0, 32,
6295 p = orc_program_new_from_static_bytecode (bc);
6296 orc_program_set_backup_function (p,
6297 _backup_video_convert_orc_convert_Y444_UYVY);
6299 p = orc_program_new ();
6300 orc_program_set_2d (p);
6301 orc_program_set_name (p, "video_convert_orc_convert_Y444_UYVY");
6302 orc_program_set_backup_function (p,
6303 _backup_video_convert_orc_convert_Y444_UYVY);
6304 orc_program_add_destination (p, 4, "d1");
6305 orc_program_add_source (p, 2, "s1");
6306 orc_program_add_source (p, 2, "s2");
6307 orc_program_add_source (p, 2, "s3");
6308 orc_program_add_temporary (p, 2, "t1");
6309 orc_program_add_temporary (p, 4, "t2");
6310 orc_program_add_temporary (p, 2, "t3");
6311 orc_program_add_temporary (p, 2, "t4");
6313 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_S3,
6315 orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
6317 orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_T4,
6319 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1,
6323 orc_program_compile (p);
6324 c = orc_program_take_code (p);
6325 orc_program_free (p);
6328 orc_once_mutex_unlock ();
6330 ex->arrays[ORC_VAR_A2] = c;
6334 ORC_EXECUTOR_M (ex) = m;
6335 ex->arrays[ORC_VAR_D1] = d1;
6336 ex->params[ORC_VAR_D1] = d1_stride;
6337 ex->arrays[ORC_VAR_S1] = (void *) s1;
6338 ex->params[ORC_VAR_S1] = s1_stride;
6339 ex->arrays[ORC_VAR_S2] = (void *) s2;
6340 ex->params[ORC_VAR_S2] = s2_stride;
6341 ex->arrays[ORC_VAR_S3] = (void *) s3;
6342 ex->params[ORC_VAR_S3] = s3_stride;
6350 /* video_convert_orc_convert_Y444_AYUV */
6353 video_convert_orc_convert_Y444_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
6354 const guint8 * ORC_RESTRICT s1, int s1_stride,
6355 const guint8 * ORC_RESTRICT s2, int s2_stride,
6356 const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
6360 orc_union32 *ORC_RESTRICT ptr0;
6361 const orc_int8 *ORC_RESTRICT ptr4;
6362 const orc_int8 *ORC_RESTRICT ptr5;
6363 const orc_int8 *ORC_RESTRICT ptr6;
6366 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
6367 volatile orc_int8 var36;
6376 for (j = 0; j < m; j++) {
6377 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
6378 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
6379 ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
6380 ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
6383 var36 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
6385 for (i = 0; i < n; i++) {
6393 _dest.x2[0] = var34;
6394 _dest.x2[1] = var35;
6402 _dest.x2[0] = var36;
6403 _dest.x2[1] = var37;
6409 _dest.x2[0] = var40.i;
6410 _dest.x2[1] = var39.i;
6422 _backup_video_convert_orc_convert_Y444_AYUV (OrcExecutor * ORC_RESTRICT ex)
6427 int m = ex->params[ORC_VAR_A1];
6428 orc_union32 *ORC_RESTRICT ptr0;
6429 const orc_int8 *ORC_RESTRICT ptr4;
6430 const orc_int8 *ORC_RESTRICT ptr5;
6431 const orc_int8 *ORC_RESTRICT ptr6;
6434 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
6435 volatile orc_int8 var36;
6444 for (j = 0; j < m; j++) {
6445 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
6446 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
6447 ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
6448 ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
6451 var36 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
6453 for (i = 0; i < n; i++) {
6461 _dest.x2[0] = var34;
6462 _dest.x2[1] = var35;
6470 _dest.x2[0] = var36;
6471 _dest.x2[1] = var37;
6477 _dest.x2[0] = var40.i;
6478 _dest.x2[1] = var39.i;
6489 video_convert_orc_convert_Y444_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
6490 const guint8 * ORC_RESTRICT s1, int s1_stride,
6491 const guint8 * ORC_RESTRICT s2, int s2_stride,
6492 const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
6494 OrcExecutor _ex, *ex = &_ex;
6495 static volatile int p_inited = 0;
6496 static OrcCode *c = 0;
6497 void (*func) (OrcExecutor *);
6500 orc_once_mutex_lock ();
6505 static const orc_uint8 bc[] = {
6506 1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
6507 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 52,
6508 52, 52, 95, 65, 89, 85, 86, 11, 4, 4, 12, 1, 1, 12, 1, 1,
6509 12, 1, 1, 14, 1, 255, 0, 0, 0, 20, 2, 20, 2, 196, 32, 5,
6510 6, 196, 33, 16, 4, 195, 0, 33, 32, 2, 0,
6512 p = orc_program_new_from_static_bytecode (bc);
6513 orc_program_set_backup_function (p,
6514 _backup_video_convert_orc_convert_Y444_AYUV);
6516 p = orc_program_new ();
6517 orc_program_set_2d (p);
6518 orc_program_set_name (p, "video_convert_orc_convert_Y444_AYUV");
6519 orc_program_set_backup_function (p,
6520 _backup_video_convert_orc_convert_Y444_AYUV);
6521 orc_program_add_destination (p, 4, "d1");
6522 orc_program_add_source (p, 1, "s1");
6523 orc_program_add_source (p, 1, "s2");
6524 orc_program_add_source (p, 1, "s3");
6525 orc_program_add_constant (p, 1, 0x000000ff, "c1");
6526 orc_program_add_temporary (p, 2, "t1");
6527 orc_program_add_temporary (p, 2, "t2");
6529 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3,
6531 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_S1,
6533 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
6537 orc_program_compile (p);
6538 c = orc_program_take_code (p);
6539 orc_program_free (p);
6542 orc_once_mutex_unlock ();
6544 ex->arrays[ORC_VAR_A2] = c;
6548 ORC_EXECUTOR_M (ex) = m;
6549 ex->arrays[ORC_VAR_D1] = d1;
6550 ex->params[ORC_VAR_D1] = d1_stride;
6551 ex->arrays[ORC_VAR_S1] = (void *) s1;
6552 ex->params[ORC_VAR_S1] = s1_stride;
6553 ex->arrays[ORC_VAR_S2] = (void *) s2;
6554 ex->params[ORC_VAR_S2] = s2_stride;
6555 ex->arrays[ORC_VAR_S3] = (void *) s3;
6556 ex->params[ORC_VAR_S3] = s3_stride;
6564 /* video_convert_orc_convert_AYUV_ARGB */
6567 video_convert_orc_convert_AYUV_ARGB (guint8 * ORC_RESTRICT d1, int d1_stride,
6568 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
6569 int p4, int p5, int n, int m)
6573 orc_union32 *ORC_RESTRICT ptr0;
6574 const orc_union32 *ORC_RESTRICT ptr4;
6576 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
6577 volatile orc_union32 var47;
6586 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
6587 volatile orc_union32 var53;
6618 for (j = 0; j < m; j++) {
6619 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
6620 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
6623 var47.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
6624 var47.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
6625 var47.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
6626 var47.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
6638 var53.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
6639 var53.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
6640 var53.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
6641 var53.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
6643 for (i = 0; i < n; i++) {
6647 var55.x4[0] = var46.x4[0] - var47.x4[0];
6648 var55.x4[1] = var46.x4[1] - var47.x4[1];
6649 var55.x4[2] = var46.x4[2] - var47.x4[2];
6650 var55.x4[3] = var46.x4[3] - var47.x4[3];
6655 var56.i = _src.x2[1];
6656 var57.i = _src.x2[0];
6673 var62.i = ((var58 & 0xff) << 8) | (var58 & 0xff);
6675 var63.i = ((var61 & 0xff) << 8) | (var61 & 0xff);
6677 var64.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
6679 var65.i = (var62.i * var48.i) >> 16;
6681 var66.i = (var64.i * var49.i) >> 16;
6683 var67.i = ORC_CLAMP_SW (var65.i + var66.i);
6685 var68.i = (var63.i * var50.i) >> 16;
6687 var69.i = ORC_CLAMP_SW (var65.i + var68.i);
6689 var70.i = (var63.i * var51.i) >> 16;
6691 var71.i = ORC_CLAMP_SW (var65.i + var70.i);
6693 var72.i = (var64.i * var52.i) >> 16;
6695 var73.i = ORC_CLAMP_SW (var71.i + var72.i);
6697 var74 = ORC_CLAMP_SB (var67.i);
6699 var75 = ORC_CLAMP_SB (var73.i);
6701 var76 = ORC_CLAMP_SB (var69.i);
6705 _dest.x2[0] = var59;
6706 _dest.x2[1] = var74;
6712 _dest.x2[0] = var75;
6713 _dest.x2[1] = var76;
6719 _dest.x2[0] = var77.i;
6720 _dest.x2[1] = var78.i;
6724 var54.x4[0] = var79.x4[0] + var53.x4[0];
6725 var54.x4[1] = var79.x4[1] + var53.x4[1];
6726 var54.x4[2] = var79.x4[2] + var53.x4[2];
6727 var54.x4[3] = var79.x4[3] + var53.x4[3];
6737 _backup_video_convert_orc_convert_AYUV_ARGB (OrcExecutor * ORC_RESTRICT ex)
6742 int m = ex->params[ORC_VAR_A1];
6743 orc_union32 *ORC_RESTRICT ptr0;
6744 const orc_union32 *ORC_RESTRICT ptr4;
6746 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
6747 volatile orc_union32 var47;
6756 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
6757 volatile orc_union32 var53;
6788 for (j = 0; j < m; j++) {
6789 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
6790 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
6793 var47.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
6794 var47.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
6795 var47.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
6796 var47.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
6798 var48.i = ex->params[24];
6800 var49.i = ex->params[25];
6802 var50.i = ex->params[26];
6804 var51.i = ex->params[27];
6806 var52.i = ex->params[28];
6808 var53.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
6809 var53.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
6810 var53.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
6811 var53.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
6813 for (i = 0; i < n; i++) {
6817 var55.x4[0] = var46.x4[0] - var47.x4[0];
6818 var55.x4[1] = var46.x4[1] - var47.x4[1];
6819 var55.x4[2] = var46.x4[2] - var47.x4[2];
6820 var55.x4[3] = var46.x4[3] - var47.x4[3];
6825 var56.i = _src.x2[1];
6826 var57.i = _src.x2[0];
6843 var62.i = ((var58 & 0xff) << 8) | (var58 & 0xff);
6845 var63.i = ((var61 & 0xff) << 8) | (var61 & 0xff);
6847 var64.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
6849 var65.i = (var62.i * var48.i) >> 16;
6851 var66.i = (var64.i * var49.i) >> 16;
6853 var67.i = ORC_CLAMP_SW (var65.i + var66.i);
6855 var68.i = (var63.i * var50.i) >> 16;
6857 var69.i = ORC_CLAMP_SW (var65.i + var68.i);
6859 var70.i = (var63.i * var51.i) >> 16;
6861 var71.i = ORC_CLAMP_SW (var65.i + var70.i);
6863 var72.i = (var64.i * var52.i) >> 16;
6865 var73.i = ORC_CLAMP_SW (var71.i + var72.i);
6867 var74 = ORC_CLAMP_SB (var67.i);
6869 var75 = ORC_CLAMP_SB (var73.i);
6871 var76 = ORC_CLAMP_SB (var69.i);
6875 _dest.x2[0] = var59;
6876 _dest.x2[1] = var74;
6882 _dest.x2[0] = var75;
6883 _dest.x2[1] = var76;
6889 _dest.x2[0] = var77.i;
6890 _dest.x2[1] = var78.i;
6894 var54.x4[0] = var79.x4[0] + var53.x4[0];
6895 var54.x4[1] = var79.x4[1] + var53.x4[1];
6896 var54.x4[2] = var79.x4[2] + var53.x4[2];
6897 var54.x4[3] = var79.x4[3] + var53.x4[3];
6906 video_convert_orc_convert_AYUV_ARGB (guint8 * ORC_RESTRICT d1, int d1_stride,
6907 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
6908 int p4, int p5, int n, int m)
6910 OrcExecutor _ex, *ex = &_ex;
6911 static volatile int p_inited = 0;
6912 static OrcCode *c = 0;
6913 void (*func) (OrcExecutor *);
6916 orc_once_mutex_lock ();
6921 static const orc_uint8 bc[] = {
6922 1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
6923 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
6924 85, 86, 95, 65, 82, 71, 66, 11, 4, 4, 12, 4, 4, 14, 1, 128,
6925 0, 0, 0, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2, 20, 1, 20,
6926 1, 20, 1, 20, 1, 20, 2, 20, 2, 20, 2, 20, 2, 20, 2, 20,
6927 2, 20, 1, 20, 1, 20, 1, 20, 4, 21, 2, 65, 45, 4, 16, 198,
6928 38, 36, 45, 199, 33, 32, 36, 199, 35, 34, 38, 151, 36, 33, 151, 37,
6929 34, 151, 38, 35, 90, 36, 36, 24, 90, 39, 38, 25, 71, 39, 36, 39,
6930 90, 41, 37, 26, 71, 41, 36, 41, 90, 40, 37, 27, 71, 40, 36, 40,
6931 90, 36, 38, 28, 71, 40, 40, 36, 159, 42, 39, 159, 43, 40, 159, 44,
6932 41, 196, 39, 32, 42, 196, 41, 43, 44, 195, 45, 39, 41, 21, 2, 33,
6935 p = orc_program_new_from_static_bytecode (bc);
6936 orc_program_set_backup_function (p,
6937 _backup_video_convert_orc_convert_AYUV_ARGB);
6939 p = orc_program_new ();
6940 orc_program_set_2d (p);
6941 orc_program_set_name (p, "video_convert_orc_convert_AYUV_ARGB");
6942 orc_program_set_backup_function (p,
6943 _backup_video_convert_orc_convert_AYUV_ARGB);
6944 orc_program_add_destination (p, 4, "d1");
6945 orc_program_add_source (p, 4, "s1");
6946 orc_program_add_constant (p, 1, 0x00000080, "c1");
6947 orc_program_add_parameter (p, 2, "p1");
6948 orc_program_add_parameter (p, 2, "p2");
6949 orc_program_add_parameter (p, 2, "p3");
6950 orc_program_add_parameter (p, 2, "p4");
6951 orc_program_add_parameter (p, 2, "p5");
6952 orc_program_add_temporary (p, 1, "t1");
6953 orc_program_add_temporary (p, 1, "t2");
6954 orc_program_add_temporary (p, 1, "t3");
6955 orc_program_add_temporary (p, 1, "t4");
6956 orc_program_add_temporary (p, 2, "t5");
6957 orc_program_add_temporary (p, 2, "t6");
6958 orc_program_add_temporary (p, 2, "t7");
6959 orc_program_add_temporary (p, 2, "t8");
6960 orc_program_add_temporary (p, 2, "t9");
6961 orc_program_add_temporary (p, 2, "t10");
6962 orc_program_add_temporary (p, 1, "t11");
6963 orc_program_add_temporary (p, 1, "t12");
6964 orc_program_add_temporary (p, 1, "t13");
6965 orc_program_add_temporary (p, 4, "t14");
6967 orc_program_append_2 (p, "subb", 2, ORC_VAR_T14, ORC_VAR_S1, ORC_VAR_C1,
6969 orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T7, ORC_VAR_T5,
6970 ORC_VAR_T14, ORC_VAR_D1);
6971 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T5,
6973 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T7,
6975 orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_D1,
6977 orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T6, ORC_VAR_T3, ORC_VAR_D1,
6979 orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_D1,
6981 orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_P1,
6983 orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T8, ORC_VAR_T7, ORC_VAR_P2,
6985 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_T8,
6987 orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T10, ORC_VAR_T6, ORC_VAR_P3,
6989 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T5,
6990 ORC_VAR_T10, ORC_VAR_D1);
6991 orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T9, ORC_VAR_T6, ORC_VAR_P4,
6993 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T9, ORC_VAR_T5, ORC_VAR_T9,
6995 orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T7, ORC_VAR_P5,
6997 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T5,
6999 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T11, ORC_VAR_T8,
7000 ORC_VAR_D1, ORC_VAR_D1);
7001 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T12, ORC_VAR_T9,
7002 ORC_VAR_D1, ORC_VAR_D1);
7003 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T13, ORC_VAR_T10,
7004 ORC_VAR_D1, ORC_VAR_D1);
7005 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T8, ORC_VAR_T1,
7006 ORC_VAR_T11, ORC_VAR_D1);
7007 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T10, ORC_VAR_T12,
7008 ORC_VAR_T13, ORC_VAR_D1);
7009 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T14, ORC_VAR_T8,
7010 ORC_VAR_T10, ORC_VAR_D1);
7011 orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, ORC_VAR_T14, ORC_VAR_C1,
7015 orc_program_compile (p);
7016 c = orc_program_take_code (p);
7017 orc_program_free (p);
7020 orc_once_mutex_unlock ();
7022 ex->arrays[ORC_VAR_A2] = c;
7026 ORC_EXECUTOR_M (ex) = m;
7027 ex->arrays[ORC_VAR_D1] = d1;
7028 ex->params[ORC_VAR_D1] = d1_stride;
7029 ex->arrays[ORC_VAR_S1] = (void *) s1;
7030 ex->params[ORC_VAR_S1] = s1_stride;
7031 ex->params[ORC_VAR_P1] = p1;
7032 ex->params[ORC_VAR_P2] = p2;
7033 ex->params[ORC_VAR_P3] = p3;
7034 ex->params[ORC_VAR_P4] = p4;
7035 ex->params[ORC_VAR_P5] = p5;
7043 /* video_convert_orc_convert_AYUV_BGRA */
7046 video_convert_orc_convert_AYUV_BGRA (guint8 * ORC_RESTRICT d1, int d1_stride,
7047 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
7048 int p4, int p5, int n, int m)
7052 orc_union32 *ORC_RESTRICT ptr0;
7053 const orc_union32 *ORC_RESTRICT ptr4;
7055 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
7056 volatile orc_union32 var47;
7065 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
7066 volatile orc_union32 var53;
7097 for (j = 0; j < m; j++) {
7098 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
7099 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
7102 var47.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
7103 var47.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
7104 var47.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
7105 var47.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
7117 var53.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
7118 var53.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
7119 var53.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
7120 var53.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
7122 for (i = 0; i < n; i++) {
7126 var55.x4[0] = var46.x4[0] - var47.x4[0];
7127 var55.x4[1] = var46.x4[1] - var47.x4[1];
7128 var55.x4[2] = var46.x4[2] - var47.x4[2];
7129 var55.x4[3] = var46.x4[3] - var47.x4[3];
7134 var56.i = _src.x2[1];
7135 var57.i = _src.x2[0];
7152 var62.i = ((var58 & 0xff) << 8) | (var58 & 0xff);
7154 var63.i = ((var61 & 0xff) << 8) | (var61 & 0xff);
7156 var64.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
7158 var65.i = (var62.i * var48.i) >> 16;
7160 var66.i = (var64.i * var49.i) >> 16;
7162 var67.i = ORC_CLAMP_SW (var65.i + var66.i);
7164 var68.i = (var63.i * var50.i) >> 16;
7166 var69.i = ORC_CLAMP_SW (var65.i + var68.i);
7168 var70.i = (var63.i * var51.i) >> 16;
7170 var71.i = ORC_CLAMP_SW (var65.i + var70.i);
7172 var72.i = (var64.i * var52.i) >> 16;
7174 var73.i = ORC_CLAMP_SW (var71.i + var72.i);
7176 var74 = ORC_CLAMP_SB (var67.i);
7178 var75 = ORC_CLAMP_SB (var73.i);
7180 var76 = ORC_CLAMP_SB (var69.i);
7184 _dest.x2[0] = var76;
7185 _dest.x2[1] = var75;
7191 _dest.x2[0] = var74;
7192 _dest.x2[1] = var59;
7198 _dest.x2[0] = var77.i;
7199 _dest.x2[1] = var78.i;
7203 var54.x4[0] = var79.x4[0] + var53.x4[0];
7204 var54.x4[1] = var79.x4[1] + var53.x4[1];
7205 var54.x4[2] = var79.x4[2] + var53.x4[2];
7206 var54.x4[3] = var79.x4[3] + var53.x4[3];
7216 _backup_video_convert_orc_convert_AYUV_BGRA (OrcExecutor * ORC_RESTRICT ex)
7221 int m = ex->params[ORC_VAR_A1];
7222 orc_union32 *ORC_RESTRICT ptr0;
7223 const orc_union32 *ORC_RESTRICT ptr4;
7225 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
7226 volatile orc_union32 var47;
7235 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
7236 volatile orc_union32 var53;
7267 for (j = 0; j < m; j++) {
7268 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
7269 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
7272 var47.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
7273 var47.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
7274 var47.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
7275 var47.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
7277 var48.i = ex->params[24];
7279 var49.i = ex->params[25];
7281 var50.i = ex->params[26];
7283 var51.i = ex->params[27];
7285 var52.i = ex->params[28];
7287 var53.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
7288 var53.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
7289 var53.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
7290 var53.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
7292 for (i = 0; i < n; i++) {
7296 var55.x4[0] = var46.x4[0] - var47.x4[0];
7297 var55.x4[1] = var46.x4[1] - var47.x4[1];
7298 var55.x4[2] = var46.x4[2] - var47.x4[2];
7299 var55.x4[3] = var46.x4[3] - var47.x4[3];
7304 var56.i = _src.x2[1];
7305 var57.i = _src.x2[0];
7322 var62.i = ((var58 & 0xff) << 8) | (var58 & 0xff);
7324 var63.i = ((var61 & 0xff) << 8) | (var61 & 0xff);
7326 var64.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
7328 var65.i = (var62.i * var48.i) >> 16;
7330 var66.i = (var64.i * var49.i) >> 16;
7332 var67.i = ORC_CLAMP_SW (var65.i + var66.i);
7334 var68.i = (var63.i * var50.i) >> 16;
7336 var69.i = ORC_CLAMP_SW (var65.i + var68.i);
7338 var70.i = (var63.i * var51.i) >> 16;
7340 var71.i = ORC_CLAMP_SW (var65.i + var70.i);
7342 var72.i = (var64.i * var52.i) >> 16;
7344 var73.i = ORC_CLAMP_SW (var71.i + var72.i);
7346 var74 = ORC_CLAMP_SB (var67.i);
7348 var75 = ORC_CLAMP_SB (var73.i);
7350 var76 = ORC_CLAMP_SB (var69.i);
7354 _dest.x2[0] = var76;
7355 _dest.x2[1] = var75;
7361 _dest.x2[0] = var74;
7362 _dest.x2[1] = var59;
7368 _dest.x2[0] = var77.i;
7369 _dest.x2[1] = var78.i;
7373 var54.x4[0] = var79.x4[0] + var53.x4[0];
7374 var54.x4[1] = var79.x4[1] + var53.x4[1];
7375 var54.x4[2] = var79.x4[2] + var53.x4[2];
7376 var54.x4[3] = var79.x4[3] + var53.x4[3];
7385 video_convert_orc_convert_AYUV_BGRA (guint8 * ORC_RESTRICT d1, int d1_stride,
7386 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
7387 int p4, int p5, int n, int m)
7389 OrcExecutor _ex, *ex = &_ex;
7390 static volatile int p_inited = 0;
7391 static OrcCode *c = 0;
7392 void (*func) (OrcExecutor *);
7395 orc_once_mutex_lock ();
7400 static const orc_uint8 bc[] = {
7401 1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
7402 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
7403 85, 86, 95, 66, 71, 82, 65, 11, 4, 4, 12, 4, 4, 14, 1, 128,
7404 0, 0, 0, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2, 20, 1, 20,
7405 1, 20, 1, 20, 1, 20, 2, 20, 2, 20, 2, 20, 2, 20, 2, 20,
7406 2, 20, 1, 20, 1, 20, 1, 20, 4, 21, 2, 65, 45, 4, 16, 198,
7407 38, 36, 45, 199, 33, 32, 36, 199, 35, 34, 38, 151, 36, 33, 151, 37,
7408 34, 151, 38, 35, 90, 36, 36, 24, 90, 39, 38, 25, 71, 39, 36, 39,
7409 90, 41, 37, 26, 71, 41, 36, 41, 90, 40, 37, 27, 71, 40, 36, 40,
7410 90, 36, 38, 28, 71, 40, 40, 36, 159, 42, 39, 159, 43, 40, 159, 44,
7411 41, 196, 41, 44, 43, 196, 39, 42, 32, 195, 45, 41, 39, 21, 2, 33,
7414 p = orc_program_new_from_static_bytecode (bc);
7415 orc_program_set_backup_function (p,
7416 _backup_video_convert_orc_convert_AYUV_BGRA);
7418 p = orc_program_new ();
7419 orc_program_set_2d (p);
7420 orc_program_set_name (p, "video_convert_orc_convert_AYUV_BGRA");
7421 orc_program_set_backup_function (p,
7422 _backup_video_convert_orc_convert_AYUV_BGRA);
7423 orc_program_add_destination (p, 4, "d1");
7424 orc_program_add_source (p, 4, "s1");
7425 orc_program_add_constant (p, 1, 0x00000080, "c1");
7426 orc_program_add_parameter (p, 2, "p1");
7427 orc_program_add_parameter (p, 2, "p2");
7428 orc_program_add_parameter (p, 2, "p3");
7429 orc_program_add_parameter (p, 2, "p4");
7430 orc_program_add_parameter (p, 2, "p5");
7431 orc_program_add_temporary (p, 1, "t1");
7432 orc_program_add_temporary (p, 1, "t2");
7433 orc_program_add_temporary (p, 1, "t3");
7434 orc_program_add_temporary (p, 1, "t4");
7435 orc_program_add_temporary (p, 2, "t5");
7436 orc_program_add_temporary (p, 2, "t6");
7437 orc_program_add_temporary (p, 2, "t7");
7438 orc_program_add_temporary (p, 2, "t8");
7439 orc_program_add_temporary (p, 2, "t9");
7440 orc_program_add_temporary (p, 2, "t10");
7441 orc_program_add_temporary (p, 1, "t11");
7442 orc_program_add_temporary (p, 1, "t12");
7443 orc_program_add_temporary (p, 1, "t13");
7444 orc_program_add_temporary (p, 4, "t14");
7446 orc_program_append_2 (p, "subb", 2, ORC_VAR_T14, ORC_VAR_S1, ORC_VAR_C1,
7448 orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T7, ORC_VAR_T5,
7449 ORC_VAR_T14, ORC_VAR_D1);
7450 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T5,
7452 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T7,
7454 orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_D1,
7456 orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T6, ORC_VAR_T3, ORC_VAR_D1,
7458 orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_D1,
7460 orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_P1,
7462 orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T8, ORC_VAR_T7, ORC_VAR_P2,
7464 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_T8,
7466 orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T10, ORC_VAR_T6, ORC_VAR_P3,
7468 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T5,
7469 ORC_VAR_T10, ORC_VAR_D1);
7470 orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T9, ORC_VAR_T6, ORC_VAR_P4,
7472 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T9, ORC_VAR_T5, ORC_VAR_T9,
7474 orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T7, ORC_VAR_P5,
7476 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T5,
7478 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T11, ORC_VAR_T8,
7479 ORC_VAR_D1, ORC_VAR_D1);
7480 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T12, ORC_VAR_T9,
7481 ORC_VAR_D1, ORC_VAR_D1);
7482 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T13, ORC_VAR_T10,
7483 ORC_VAR_D1, ORC_VAR_D1);
7484 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T10, ORC_VAR_T13,
7485 ORC_VAR_T12, ORC_VAR_D1);
7486 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T8, ORC_VAR_T11,
7487 ORC_VAR_T1, ORC_VAR_D1);
7488 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T14, ORC_VAR_T10,
7489 ORC_VAR_T8, ORC_VAR_D1);
7490 orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, ORC_VAR_T14, ORC_VAR_C1,
7494 orc_program_compile (p);
7495 c = orc_program_take_code (p);
7496 orc_program_free (p);
7499 orc_once_mutex_unlock ();
7501 ex->arrays[ORC_VAR_A2] = c;
7505 ORC_EXECUTOR_M (ex) = m;
7506 ex->arrays[ORC_VAR_D1] = d1;
7507 ex->params[ORC_VAR_D1] = d1_stride;
7508 ex->arrays[ORC_VAR_S1] = (void *) s1;
7509 ex->params[ORC_VAR_S1] = s1_stride;
7510 ex->params[ORC_VAR_P1] = p1;
7511 ex->params[ORC_VAR_P2] = p2;
7512 ex->params[ORC_VAR_P3] = p3;
7513 ex->params[ORC_VAR_P4] = p4;
7514 ex->params[ORC_VAR_P5] = p5;
7522 /* video_convert_orc_convert_AYUV_ABGR */
7525 video_convert_orc_convert_AYUV_ABGR (guint8 * ORC_RESTRICT d1, int d1_stride,
7526 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
7527 int p4, int p5, int n, int m)
7531 orc_union32 *ORC_RESTRICT ptr0;
7532 const orc_union32 *ORC_RESTRICT ptr4;
7534 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
7535 volatile orc_union32 var47;
7544 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
7545 volatile orc_union32 var53;
7576 for (j = 0; j < m; j++) {
7577 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
7578 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
7581 var47.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
7582 var47.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
7583 var47.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
7584 var47.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
7596 var53.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
7597 var53.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
7598 var53.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
7599 var53.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
7601 for (i = 0; i < n; i++) {
7605 var55.x4[0] = var46.x4[0] - var47.x4[0];
7606 var55.x4[1] = var46.x4[1] - var47.x4[1];
7607 var55.x4[2] = var46.x4[2] - var47.x4[2];
7608 var55.x4[3] = var46.x4[3] - var47.x4[3];
7613 var56.i = _src.x2[1];
7614 var57.i = _src.x2[0];
7631 var62.i = ((var58 & 0xff) << 8) | (var58 & 0xff);
7633 var63.i = ((var61 & 0xff) << 8) | (var61 & 0xff);
7635 var64.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
7637 var65.i = (var62.i * var48.i) >> 16;
7639 var66.i = (var64.i * var49.i) >> 16;
7641 var67.i = ORC_CLAMP_SW (var65.i + var66.i);
7643 var68.i = (var63.i * var50.i) >> 16;
7645 var69.i = ORC_CLAMP_SW (var65.i + var68.i);
7647 var70.i = (var63.i * var51.i) >> 16;
7649 var71.i = ORC_CLAMP_SW (var65.i + var70.i);
7651 var72.i = (var64.i * var52.i) >> 16;
7653 var73.i = ORC_CLAMP_SW (var71.i + var72.i);
7655 var74 = ORC_CLAMP_SB (var67.i);
7657 var75 = ORC_CLAMP_SB (var73.i);
7659 var76 = ORC_CLAMP_SB (var69.i);
7663 _dest.x2[0] = var59;
7664 _dest.x2[1] = var76;
7670 _dest.x2[0] = var75;
7671 _dest.x2[1] = var74;
7677 _dest.x2[0] = var77.i;
7678 _dest.x2[1] = var78.i;
7682 var54.x4[0] = var79.x4[0] + var53.x4[0];
7683 var54.x4[1] = var79.x4[1] + var53.x4[1];
7684 var54.x4[2] = var79.x4[2] + var53.x4[2];
7685 var54.x4[3] = var79.x4[3] + var53.x4[3];
7695 _backup_video_convert_orc_convert_AYUV_ABGR (OrcExecutor * ORC_RESTRICT ex)
7700 int m = ex->params[ORC_VAR_A1];
7701 orc_union32 *ORC_RESTRICT ptr0;
7702 const orc_union32 *ORC_RESTRICT ptr4;
7704 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
7705 volatile orc_union32 var47;
7714 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
7715 volatile orc_union32 var53;
7746 for (j = 0; j < m; j++) {
7747 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
7748 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
7751 var47.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
7752 var47.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
7753 var47.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
7754 var47.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
7756 var48.i = ex->params[24];
7758 var49.i = ex->params[25];
7760 var50.i = ex->params[26];
7762 var51.i = ex->params[27];
7764 var52.i = ex->params[28];
7766 var53.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
7767 var53.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
7768 var53.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
7769 var53.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
7771 for (i = 0; i < n; i++) {
7775 var55.x4[0] = var46.x4[0] - var47.x4[0];
7776 var55.x4[1] = var46.x4[1] - var47.x4[1];
7777 var55.x4[2] = var46.x4[2] - var47.x4[2];
7778 var55.x4[3] = var46.x4[3] - var47.x4[3];
7783 var56.i = _src.x2[1];
7784 var57.i = _src.x2[0];
7801 var62.i = ((var58 & 0xff) << 8) | (var58 & 0xff);
7803 var63.i = ((var61 & 0xff) << 8) | (var61 & 0xff);
7805 var64.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
7807 var65.i = (var62.i * var48.i) >> 16;
7809 var66.i = (var64.i * var49.i) >> 16;
7811 var67.i = ORC_CLAMP_SW (var65.i + var66.i);
7813 var68.i = (var63.i * var50.i) >> 16;
7815 var69.i = ORC_CLAMP_SW (var65.i + var68.i);
7817 var70.i = (var63.i * var51.i) >> 16;
7819 var71.i = ORC_CLAMP_SW (var65.i + var70.i);
7821 var72.i = (var64.i * var52.i) >> 16;
7823 var73.i = ORC_CLAMP_SW (var71.i + var72.i);
7825 var74 = ORC_CLAMP_SB (var67.i);
7827 var75 = ORC_CLAMP_SB (var73.i);
7829 var76 = ORC_CLAMP_SB (var69.i);
7833 _dest.x2[0] = var59;
7834 _dest.x2[1] = var76;
7840 _dest.x2[0] = var75;
7841 _dest.x2[1] = var74;
7847 _dest.x2[0] = var77.i;
7848 _dest.x2[1] = var78.i;
7852 var54.x4[0] = var79.x4[0] + var53.x4[0];
7853 var54.x4[1] = var79.x4[1] + var53.x4[1];
7854 var54.x4[2] = var79.x4[2] + var53.x4[2];
7855 var54.x4[3] = var79.x4[3] + var53.x4[3];
7864 video_convert_orc_convert_AYUV_ABGR (guint8 * ORC_RESTRICT d1, int d1_stride,
7865 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
7866 int p4, int p5, int n, int m)
7868 OrcExecutor _ex, *ex = &_ex;
7869 static volatile int p_inited = 0;
7870 static OrcCode *c = 0;
7871 void (*func) (OrcExecutor *);
7874 orc_once_mutex_lock ();
7879 static const orc_uint8 bc[] = {
7880 1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
7881 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
7882 85, 86, 95, 65, 66, 71, 82, 11, 4, 4, 12, 4, 4, 14, 1, 128,
7883 0, 0, 0, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2, 20, 1, 20,
7884 1, 20, 1, 20, 1, 20, 2, 20, 2, 20, 2, 20, 2, 20, 2, 20,
7885 2, 20, 1, 20, 1, 20, 1, 20, 4, 21, 2, 65, 45, 4, 16, 198,
7886 38, 36, 45, 199, 33, 32, 36, 199, 35, 34, 38, 151, 36, 33, 151, 37,
7887 34, 151, 38, 35, 90, 36, 36, 24, 90, 39, 38, 25, 71, 39, 36, 39,
7888 90, 41, 37, 26, 71, 41, 36, 41, 90, 40, 37, 27, 71, 40, 36, 40,
7889 90, 36, 38, 28, 71, 40, 40, 36, 159, 42, 39, 159, 43, 40, 159, 44,
7890 41, 196, 41, 32, 44, 196, 39, 43, 42, 195, 45, 41, 39, 21, 2, 33,
7893 p = orc_program_new_from_static_bytecode (bc);
7894 orc_program_set_backup_function (p,
7895 _backup_video_convert_orc_convert_AYUV_ABGR);
7897 p = orc_program_new ();
7898 orc_program_set_2d (p);
7899 orc_program_set_name (p, "video_convert_orc_convert_AYUV_ABGR");
7900 orc_program_set_backup_function (p,
7901 _backup_video_convert_orc_convert_AYUV_ABGR);
7902 orc_program_add_destination (p, 4, "d1");
7903 orc_program_add_source (p, 4, "s1");
7904 orc_program_add_constant (p, 1, 0x00000080, "c1");
7905 orc_program_add_parameter (p, 2, "p1");
7906 orc_program_add_parameter (p, 2, "p2");
7907 orc_program_add_parameter (p, 2, "p3");
7908 orc_program_add_parameter (p, 2, "p4");
7909 orc_program_add_parameter (p, 2, "p5");
7910 orc_program_add_temporary (p, 1, "t1");
7911 orc_program_add_temporary (p, 1, "t2");
7912 orc_program_add_temporary (p, 1, "t3");
7913 orc_program_add_temporary (p, 1, "t4");
7914 orc_program_add_temporary (p, 2, "t5");
7915 orc_program_add_temporary (p, 2, "t6");
7916 orc_program_add_temporary (p, 2, "t7");
7917 orc_program_add_temporary (p, 2, "t8");
7918 orc_program_add_temporary (p, 2, "t9");
7919 orc_program_add_temporary (p, 2, "t10");
7920 orc_program_add_temporary (p, 1, "t11");
7921 orc_program_add_temporary (p, 1, "t12");
7922 orc_program_add_temporary (p, 1, "t13");
7923 orc_program_add_temporary (p, 4, "t14");
7925 orc_program_append_2 (p, "subb", 2, ORC_VAR_T14, ORC_VAR_S1, ORC_VAR_C1,
7927 orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T7, ORC_VAR_T5,
7928 ORC_VAR_T14, ORC_VAR_D1);
7929 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T5,
7931 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T7,
7933 orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_D1,
7935 orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T6, ORC_VAR_T3, ORC_VAR_D1,
7937 orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_D1,
7939 orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_P1,
7941 orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T8, ORC_VAR_T7, ORC_VAR_P2,
7943 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_T8,
7945 orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T10, ORC_VAR_T6, ORC_VAR_P3,
7947 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T5,
7948 ORC_VAR_T10, ORC_VAR_D1);
7949 orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T9, ORC_VAR_T6, ORC_VAR_P4,
7951 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T9, ORC_VAR_T5, ORC_VAR_T9,
7953 orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T7, ORC_VAR_P5,
7955 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T5,
7957 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T11, ORC_VAR_T8,
7958 ORC_VAR_D1, ORC_VAR_D1);
7959 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T12, ORC_VAR_T9,
7960 ORC_VAR_D1, ORC_VAR_D1);
7961 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T13, ORC_VAR_T10,
7962 ORC_VAR_D1, ORC_VAR_D1);
7963 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T10, ORC_VAR_T1,
7964 ORC_VAR_T13, ORC_VAR_D1);
7965 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T8, ORC_VAR_T12,
7966 ORC_VAR_T11, ORC_VAR_D1);
7967 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T14, ORC_VAR_T10,
7968 ORC_VAR_T8, ORC_VAR_D1);
7969 orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, ORC_VAR_T14, ORC_VAR_C1,
7973 orc_program_compile (p);
7974 c = orc_program_take_code (p);
7975 orc_program_free (p);
7978 orc_once_mutex_unlock ();
7980 ex->arrays[ORC_VAR_A2] = c;
7984 ORC_EXECUTOR_M (ex) = m;
7985 ex->arrays[ORC_VAR_D1] = d1;
7986 ex->params[ORC_VAR_D1] = d1_stride;
7987 ex->arrays[ORC_VAR_S1] = (void *) s1;
7988 ex->params[ORC_VAR_S1] = s1_stride;
7989 ex->params[ORC_VAR_P1] = p1;
7990 ex->params[ORC_VAR_P2] = p2;
7991 ex->params[ORC_VAR_P3] = p3;
7992 ex->params[ORC_VAR_P4] = p4;
7993 ex->params[ORC_VAR_P5] = p5;
8001 /* video_convert_orc_convert_AYUV_RGBA */
8004 video_convert_orc_convert_AYUV_RGBA (guint8 * ORC_RESTRICT d1, int d1_stride,
8005 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
8006 int p4, int p5, int n, int m)
8010 orc_union32 *ORC_RESTRICT ptr0;
8011 const orc_union32 *ORC_RESTRICT ptr4;
8013 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
8014 volatile orc_union32 var47;
8023 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
8024 volatile orc_union32 var53;
8055 for (j = 0; j < m; j++) {
8056 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
8057 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
8060 var47.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
8061 var47.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
8062 var47.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
8063 var47.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
8075 var53.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
8076 var53.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
8077 var53.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
8078 var53.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
8080 for (i = 0; i < n; i++) {
8084 var55.x4[0] = var46.x4[0] - var47.x4[0];
8085 var55.x4[1] = var46.x4[1] - var47.x4[1];
8086 var55.x4[2] = var46.x4[2] - var47.x4[2];
8087 var55.x4[3] = var46.x4[3] - var47.x4[3];
8092 var56.i = _src.x2[1];
8093 var57.i = _src.x2[0];
8110 var62.i = ((var58 & 0xff) << 8) | (var58 & 0xff);
8112 var63.i = ((var61 & 0xff) << 8) | (var61 & 0xff);
8114 var64.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
8116 var65.i = (var62.i * var48.i) >> 16;
8118 var66.i = (var64.i * var49.i) >> 16;
8120 var67.i = ORC_CLAMP_SW (var65.i + var66.i);
8122 var68.i = (var63.i * var50.i) >> 16;
8124 var69.i = ORC_CLAMP_SW (var65.i + var68.i);
8126 var70.i = (var63.i * var51.i) >> 16;
8128 var71.i = ORC_CLAMP_SW (var65.i + var70.i);
8130 var72.i = (var64.i * var52.i) >> 16;
8132 var73.i = ORC_CLAMP_SW (var71.i + var72.i);
8134 var74 = ORC_CLAMP_SB (var67.i);
8136 var75 = ORC_CLAMP_SB (var73.i);
8138 var76 = ORC_CLAMP_SB (var69.i);
8142 _dest.x2[0] = var74;
8143 _dest.x2[1] = var75;
8149 _dest.x2[0] = var76;
8150 _dest.x2[1] = var59;
8156 _dest.x2[0] = var77.i;
8157 _dest.x2[1] = var78.i;
8161 var54.x4[0] = var79.x4[0] + var53.x4[0];
8162 var54.x4[1] = var79.x4[1] + var53.x4[1];
8163 var54.x4[2] = var79.x4[2] + var53.x4[2];
8164 var54.x4[3] = var79.x4[3] + var53.x4[3];
8174 _backup_video_convert_orc_convert_AYUV_RGBA (OrcExecutor * ORC_RESTRICT ex)
8179 int m = ex->params[ORC_VAR_A1];
8180 orc_union32 *ORC_RESTRICT ptr0;
8181 const orc_union32 *ORC_RESTRICT ptr4;
8183 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
8184 volatile orc_union32 var47;
8193 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
8194 volatile orc_union32 var53;
8225 for (j = 0; j < m; j++) {
8226 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
8227 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
8230 var47.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
8231 var47.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
8232 var47.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
8233 var47.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
8235 var48.i = ex->params[24];
8237 var49.i = ex->params[25];
8239 var50.i = ex->params[26];
8241 var51.i = ex->params[27];
8243 var52.i = ex->params[28];
8245 var53.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
8246 var53.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
8247 var53.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
8248 var53.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
8250 for (i = 0; i < n; i++) {
8254 var55.x4[0] = var46.x4[0] - var47.x4[0];
8255 var55.x4[1] = var46.x4[1] - var47.x4[1];
8256 var55.x4[2] = var46.x4[2] - var47.x4[2];
8257 var55.x4[3] = var46.x4[3] - var47.x4[3];
8262 var56.i = _src.x2[1];
8263 var57.i = _src.x2[0];
8280 var62.i = ((var58 & 0xff) << 8) | (var58 & 0xff);
8282 var63.i = ((var61 & 0xff) << 8) | (var61 & 0xff);
8284 var64.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
8286 var65.i = (var62.i * var48.i) >> 16;
8288 var66.i = (var64.i * var49.i) >> 16;
8290 var67.i = ORC_CLAMP_SW (var65.i + var66.i);
8292 var68.i = (var63.i * var50.i) >> 16;
8294 var69.i = ORC_CLAMP_SW (var65.i + var68.i);
8296 var70.i = (var63.i * var51.i) >> 16;
8298 var71.i = ORC_CLAMP_SW (var65.i + var70.i);
8300 var72.i = (var64.i * var52.i) >> 16;
8302 var73.i = ORC_CLAMP_SW (var71.i + var72.i);
8304 var74 = ORC_CLAMP_SB (var67.i);
8306 var75 = ORC_CLAMP_SB (var73.i);
8308 var76 = ORC_CLAMP_SB (var69.i);
8312 _dest.x2[0] = var74;
8313 _dest.x2[1] = var75;
8319 _dest.x2[0] = var76;
8320 _dest.x2[1] = var59;
8326 _dest.x2[0] = var77.i;
8327 _dest.x2[1] = var78.i;
8331 var54.x4[0] = var79.x4[0] + var53.x4[0];
8332 var54.x4[1] = var79.x4[1] + var53.x4[1];
8333 var54.x4[2] = var79.x4[2] + var53.x4[2];
8334 var54.x4[3] = var79.x4[3] + var53.x4[3];
8343 video_convert_orc_convert_AYUV_RGBA (guint8 * ORC_RESTRICT d1, int d1_stride,
8344 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
8345 int p4, int p5, int n, int m)
8347 OrcExecutor _ex, *ex = &_ex;
8348 static volatile int p_inited = 0;
8349 static OrcCode *c = 0;
8350 void (*func) (OrcExecutor *);
8353 orc_once_mutex_lock ();
8358 static const orc_uint8 bc[] = {
8359 1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
8360 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
8361 85, 86, 95, 82, 71, 66, 65, 11, 4, 4, 12, 4, 4, 14, 1, 128,
8362 0, 0, 0, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2, 20, 1, 20,
8363 1, 20, 1, 20, 1, 20, 2, 20, 2, 20, 2, 20, 2, 20, 2, 20,
8364 2, 20, 1, 20, 1, 20, 1, 20, 4, 21, 2, 65, 45, 4, 16, 198,
8365 38, 36, 45, 199, 33, 32, 36, 199, 35, 34, 38, 151, 36, 33, 151, 37,
8366 34, 151, 38, 35, 90, 36, 36, 24, 90, 39, 38, 25, 71, 39, 36, 39,
8367 90, 41, 37, 26, 71, 41, 36, 41, 90, 40, 37, 27, 71, 40, 36, 40,
8368 90, 36, 38, 28, 71, 40, 40, 36, 159, 42, 39, 159, 43, 40, 159, 44,
8369 41, 196, 39, 42, 43, 196, 41, 44, 32, 195, 45, 39, 41, 21, 2, 33,
8372 p = orc_program_new_from_static_bytecode (bc);
8373 orc_program_set_backup_function (p,
8374 _backup_video_convert_orc_convert_AYUV_RGBA);
8376 p = orc_program_new ();
8377 orc_program_set_2d (p);
8378 orc_program_set_name (p, "video_convert_orc_convert_AYUV_RGBA");
8379 orc_program_set_backup_function (p,
8380 _backup_video_convert_orc_convert_AYUV_RGBA);
8381 orc_program_add_destination (p, 4, "d1");
8382 orc_program_add_source (p, 4, "s1");
8383 orc_program_add_constant (p, 1, 0x00000080, "c1");
8384 orc_program_add_parameter (p, 2, "p1");
8385 orc_program_add_parameter (p, 2, "p2");
8386 orc_program_add_parameter (p, 2, "p3");
8387 orc_program_add_parameter (p, 2, "p4");
8388 orc_program_add_parameter (p, 2, "p5");
8389 orc_program_add_temporary (p, 1, "t1");
8390 orc_program_add_temporary (p, 1, "t2");
8391 orc_program_add_temporary (p, 1, "t3");
8392 orc_program_add_temporary (p, 1, "t4");
8393 orc_program_add_temporary (p, 2, "t5");
8394 orc_program_add_temporary (p, 2, "t6");
8395 orc_program_add_temporary (p, 2, "t7");
8396 orc_program_add_temporary (p, 2, "t8");
8397 orc_program_add_temporary (p, 2, "t9");
8398 orc_program_add_temporary (p, 2, "t10");
8399 orc_program_add_temporary (p, 1, "t11");
8400 orc_program_add_temporary (p, 1, "t12");
8401 orc_program_add_temporary (p, 1, "t13");
8402 orc_program_add_temporary (p, 4, "t14");
8404 orc_program_append_2 (p, "subb", 2, ORC_VAR_T14, ORC_VAR_S1, ORC_VAR_C1,
8406 orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T7, ORC_VAR_T5,
8407 ORC_VAR_T14, ORC_VAR_D1);
8408 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T5,
8410 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T7,
8412 orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_D1,
8414 orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T6, ORC_VAR_T3, ORC_VAR_D1,
8416 orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_D1,
8418 orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_P1,
8420 orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T8, ORC_VAR_T7, ORC_VAR_P2,
8422 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_T8,
8424 orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T10, ORC_VAR_T6, ORC_VAR_P3,
8426 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T5,
8427 ORC_VAR_T10, ORC_VAR_D1);
8428 orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T9, ORC_VAR_T6, ORC_VAR_P4,
8430 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T9, ORC_VAR_T5, ORC_VAR_T9,
8432 orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T7, ORC_VAR_P5,
8434 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T5,
8436 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T11, ORC_VAR_T8,
8437 ORC_VAR_D1, ORC_VAR_D1);
8438 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T12, ORC_VAR_T9,
8439 ORC_VAR_D1, ORC_VAR_D1);
8440 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T13, ORC_VAR_T10,
8441 ORC_VAR_D1, ORC_VAR_D1);
8442 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T8, ORC_VAR_T11,
8443 ORC_VAR_T12, ORC_VAR_D1);
8444 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T10, ORC_VAR_T13,
8445 ORC_VAR_T1, ORC_VAR_D1);
8446 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T14, ORC_VAR_T8,
8447 ORC_VAR_T10, ORC_VAR_D1);
8448 orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, ORC_VAR_T14, ORC_VAR_C1,
8452 orc_program_compile (p);
8453 c = orc_program_take_code (p);
8454 orc_program_free (p);
8457 orc_once_mutex_unlock ();
8459 ex->arrays[ORC_VAR_A2] = c;
8463 ORC_EXECUTOR_M (ex) = m;
8464 ex->arrays[ORC_VAR_D1] = d1;
8465 ex->params[ORC_VAR_D1] = d1_stride;
8466 ex->arrays[ORC_VAR_S1] = (void *) s1;
8467 ex->params[ORC_VAR_S1] = s1_stride;
8468 ex->params[ORC_VAR_P1] = p1;
8469 ex->params[ORC_VAR_P2] = p2;
8470 ex->params[ORC_VAR_P3] = p3;
8471 ex->params[ORC_VAR_P4] = p4;
8472 ex->params[ORC_VAR_P5] = p5;
8480 /* video_convert_orc_convert_I420_BGRA */
8483 video_convert_orc_convert_I420_BGRA (guint8 * ORC_RESTRICT d1,
8484 const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
8485 const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int p4, int p5,
8489 orc_union32 *ORC_RESTRICT ptr0;
8490 const orc_int8 *ORC_RESTRICT ptr4;
8491 const orc_int8 *ORC_RESTRICT ptr5;
8492 const orc_int8 *ORC_RESTRICT ptr6;
8494 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
8495 volatile orc_int8 var43;
8499 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
8500 volatile orc_int8 var44;
8504 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
8505 volatile orc_int8 var45;
8514 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
8515 volatile orc_int8 var51;
8519 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
8520 volatile orc_union32 var52;
8549 ptr0 = (orc_union32 *) d1;
8550 ptr4 = (orc_int8 *) s1;
8551 ptr5 = (orc_int8 *) s2;
8552 ptr6 = (orc_int8 *) s3;
8555 var43 = (int) 0x00000080; /* 128 or 6.32404e-322f */
8557 var44 = (int) 0x00000080; /* 128 or 6.32404e-322f */
8559 var45 = (int) 0x00000080; /* 128 or 6.32404e-322f */
8571 var51 = (int) 0x0000007f; /* 127 or 6.27463e-322f */
8573 var52.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
8574 var52.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
8575 var52.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
8576 var52.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
8578 for (i = 0; i < n; i++) {
8582 var54 = var42 - var43;
8584 var55.i = ((var54 & 0xff) << 8) | (var54 & 0xff);
8586 var56 = ptr5[i >> 1];
8588 var57 = var56 - var44;
8590 var58.i = ((var57 & 0xff) << 8) | (var57 & 0xff);
8592 var59 = ptr6[i >> 1];
8594 var60 = var59 - var45;
8596 var61.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
8598 var62.i = (var55.i * var46.i) >> 16;
8600 var63.i = (var61.i * var47.i) >> 16;
8602 var64.i = ORC_CLAMP_SW (var62.i + var63.i);
8604 var65.i = (var58.i * var48.i) >> 16;
8606 var66.i = ORC_CLAMP_SW (var62.i + var65.i);
8608 var67.i = (var58.i * var49.i) >> 16;
8610 var68.i = ORC_CLAMP_SW (var62.i + var67.i);
8612 var69.i = (var61.i * var50.i) >> 16;
8614 var70.i = ORC_CLAMP_SW (var68.i + var69.i);
8616 var71 = ORC_CLAMP_SB (var64.i);
8618 var72 = ORC_CLAMP_SB (var70.i);
8620 var73 = ORC_CLAMP_SB (var66.i);
8624 _dest.x2[0] = var73;
8625 _dest.x2[1] = var72;
8631 _dest.x2[0] = var71;
8632 _dest.x2[1] = var51;
8638 _dest.x2[0] = var74.i;
8639 _dest.x2[1] = var75.i;
8643 var53.x4[0] = var76.x4[0] + var52.x4[0];
8644 var53.x4[1] = var76.x4[1] + var52.x4[1];
8645 var53.x4[2] = var76.x4[2] + var52.x4[2];
8646 var53.x4[3] = var76.x4[3] + var52.x4[3];
8655 _backup_video_convert_orc_convert_I420_BGRA (OrcExecutor * ORC_RESTRICT ex)
8659 orc_union32 *ORC_RESTRICT ptr0;
8660 const orc_int8 *ORC_RESTRICT ptr4;
8661 const orc_int8 *ORC_RESTRICT ptr5;
8662 const orc_int8 *ORC_RESTRICT ptr6;
8664 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
8665 volatile orc_int8 var43;
8669 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
8670 volatile orc_int8 var44;
8674 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
8675 volatile orc_int8 var45;
8684 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
8685 volatile orc_int8 var51;
8689 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
8690 volatile orc_union32 var52;
8719 ptr0 = (orc_union32 *) ex->arrays[0];
8720 ptr4 = (orc_int8 *) ex->arrays[4];
8721 ptr5 = (orc_int8 *) ex->arrays[5];
8722 ptr6 = (orc_int8 *) ex->arrays[6];
8725 var43 = (int) 0x00000080; /* 128 or 6.32404e-322f */
8727 var44 = (int) 0x00000080; /* 128 or 6.32404e-322f */
8729 var45 = (int) 0x00000080; /* 128 or 6.32404e-322f */
8731 var46.i = ex->params[24];
8733 var47.i = ex->params[25];
8735 var48.i = ex->params[26];
8737 var49.i = ex->params[27];
8739 var50.i = ex->params[28];
8741 var51 = (int) 0x0000007f; /* 127 or 6.27463e-322f */
8743 var52.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
8744 var52.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
8745 var52.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
8746 var52.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
8748 for (i = 0; i < n; i++) {
8752 var54 = var42 - var43;
8754 var55.i = ((var54 & 0xff) << 8) | (var54 & 0xff);
8756 var56 = ptr5[i >> 1];
8758 var57 = var56 - var44;
8760 var58.i = ((var57 & 0xff) << 8) | (var57 & 0xff);
8762 var59 = ptr6[i >> 1];
8764 var60 = var59 - var45;
8766 var61.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
8768 var62.i = (var55.i * var46.i) >> 16;
8770 var63.i = (var61.i * var47.i) >> 16;
8772 var64.i = ORC_CLAMP_SW (var62.i + var63.i);
8774 var65.i = (var58.i * var48.i) >> 16;
8776 var66.i = ORC_CLAMP_SW (var62.i + var65.i);
8778 var67.i = (var58.i * var49.i) >> 16;
8780 var68.i = ORC_CLAMP_SW (var62.i + var67.i);
8782 var69.i = (var61.i * var50.i) >> 16;
8784 var70.i = ORC_CLAMP_SW (var68.i + var69.i);
8786 var71 = ORC_CLAMP_SB (var64.i);
8788 var72 = ORC_CLAMP_SB (var70.i);
8790 var73 = ORC_CLAMP_SB (var66.i);
8794 _dest.x2[0] = var73;
8795 _dest.x2[1] = var72;
8801 _dest.x2[0] = var71;
8802 _dest.x2[1] = var51;
8808 _dest.x2[0] = var74.i;
8809 _dest.x2[1] = var75.i;
8813 var53.x4[0] = var76.x4[0] + var52.x4[0];
8814 var53.x4[1] = var76.x4[1] + var52.x4[1];
8815 var53.x4[2] = var76.x4[2] + var52.x4[2];
8816 var53.x4[3] = var76.x4[3] + var52.x4[3];
8824 video_convert_orc_convert_I420_BGRA (guint8 * ORC_RESTRICT d1,
8825 const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
8826 const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int p4, int p5,
8829 OrcExecutor _ex, *ex = &_ex;
8830 static volatile int p_inited = 0;
8831 static OrcCode *c = 0;
8832 void (*func) (OrcExecutor *);
8835 orc_once_mutex_lock ();
8840 static const orc_uint8 bc[] = {
8841 1, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
8842 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 73, 52, 50,
8843 48, 95, 66, 71, 82, 65, 11, 4, 4, 12, 1, 1, 12, 1, 1, 12,
8844 1, 1, 14, 1, 128, 0, 0, 0, 14, 4, 127, 0, 0, 0, 16, 2,
8845 16, 2, 16, 2, 16, 2, 16, 2, 20, 2, 20, 2, 20, 2, 20, 2,
8846 20, 2, 20, 2, 20, 1, 20, 1, 20, 1, 20, 4, 65, 38, 4, 16,
8847 151, 32, 38, 45, 38, 5, 65, 38, 38, 16, 151, 33, 38, 45, 38, 6,
8848 65, 38, 38, 16, 151, 34, 38, 90, 32, 32, 24, 90, 35, 34, 25, 71,
8849 35, 32, 35, 90, 37, 33, 26, 71, 37, 32, 37, 90, 36, 33, 27, 71,
8850 36, 32, 36, 90, 32, 34, 28, 71, 36, 36, 32, 159, 38, 35, 159, 39,
8851 36, 159, 40, 37, 196, 37, 40, 39, 196, 35, 38, 17, 195, 41, 37, 35,
8852 21, 2, 33, 0, 41, 16, 2, 0,
8854 p = orc_program_new_from_static_bytecode (bc);
8855 orc_program_set_backup_function (p,
8856 _backup_video_convert_orc_convert_I420_BGRA);
8858 p = orc_program_new ();
8859 orc_program_set_name (p, "video_convert_orc_convert_I420_BGRA");
8860 orc_program_set_backup_function (p,
8861 _backup_video_convert_orc_convert_I420_BGRA);
8862 orc_program_add_destination (p, 4, "d1");
8863 orc_program_add_source (p, 1, "s1");
8864 orc_program_add_source (p, 1, "s2");
8865 orc_program_add_source (p, 1, "s3");
8866 orc_program_add_constant (p, 1, 0x00000080, "c1");
8867 orc_program_add_constant (p, 4, 0x0000007f, "c2");
8868 orc_program_add_parameter (p, 2, "p1");
8869 orc_program_add_parameter (p, 2, "p2");
8870 orc_program_add_parameter (p, 2, "p3");
8871 orc_program_add_parameter (p, 2, "p4");
8872 orc_program_add_parameter (p, 2, "p5");
8873 orc_program_add_temporary (p, 2, "t1");
8874 orc_program_add_temporary (p, 2, "t2");
8875 orc_program_add_temporary (p, 2, "t3");
8876 orc_program_add_temporary (p, 2, "t4");
8877 orc_program_add_temporary (p, 2, "t5");
8878 orc_program_add_temporary (p, 2, "t6");
8879 orc_program_add_temporary (p, 1, "t7");
8880 orc_program_add_temporary (p, 1, "t8");
8881 orc_program_add_temporary (p, 1, "t9");
8882 orc_program_add_temporary (p, 4, "t10");
8884 orc_program_append_2 (p, "subb", 0, ORC_VAR_T7, ORC_VAR_S1, ORC_VAR_C1,
8886 orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T1, ORC_VAR_T7, ORC_VAR_D1,
8888 orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T7, ORC_VAR_S2,
8889 ORC_VAR_D1, ORC_VAR_D1);
8890 orc_program_append_2 (p, "subb", 0, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_C1,
8892 orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T2, ORC_VAR_T7, ORC_VAR_D1,
8894 orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T7, ORC_VAR_S3,
8895 ORC_VAR_D1, ORC_VAR_D1);
8896 orc_program_append_2 (p, "subb", 0, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_C1,
8898 orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T3, ORC_VAR_T7, ORC_VAR_D1,
8900 orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
8902 orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_P2,
8904 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T4, ORC_VAR_T1, ORC_VAR_T4,
8906 orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T6, ORC_VAR_T2, ORC_VAR_P3,
8908 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T6, ORC_VAR_T1, ORC_VAR_T6,
8910 orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_P4,
8912 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T5, ORC_VAR_T1, ORC_VAR_T5,
8914 orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_P5,
8916 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_T1,
8918 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T7, ORC_VAR_T4,
8919 ORC_VAR_D1, ORC_VAR_D1);
8920 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T8, ORC_VAR_T5,
8921 ORC_VAR_D1, ORC_VAR_D1);
8922 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T9, ORC_VAR_T6,
8923 ORC_VAR_D1, ORC_VAR_D1);
8924 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T6, ORC_VAR_T9, ORC_VAR_T8,
8926 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T4, ORC_VAR_T7, ORC_VAR_C2,
8928 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T10, ORC_VAR_T6,
8929 ORC_VAR_T4, ORC_VAR_D1);
8930 orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, ORC_VAR_T10, ORC_VAR_C1,
8934 orc_program_compile (p);
8935 c = orc_program_take_code (p);
8936 orc_program_free (p);
8939 orc_once_mutex_unlock ();
8941 ex->arrays[ORC_VAR_A2] = c;
8945 ex->arrays[ORC_VAR_D1] = d1;
8946 ex->arrays[ORC_VAR_S1] = (void *) s1;
8947 ex->arrays[ORC_VAR_S2] = (void *) s2;
8948 ex->arrays[ORC_VAR_S3] = (void *) s3;
8949 ex->params[ORC_VAR_P1] = p1;
8950 ex->params[ORC_VAR_P2] = p2;
8951 ex->params[ORC_VAR_P3] = p3;
8952 ex->params[ORC_VAR_P4] = p4;
8953 ex->params[ORC_VAR_P5] = p5;