video: move videoconvert code to video library
authorWim Taymans <wtaymans@redhat.com>
Wed, 24 Sep 2014 13:49:42 +0000 (15:49 +0200)
committerWim Taymans <wtaymans@redhat.com>
Wed, 24 Sep 2014 13:59:39 +0000 (15:59 +0200)
Move the conversion code used in videoconvert to the video library
and expose a simple but generic API to do arbitrary conversion. It can
currently do colorspace conversion but the plan is to add videoscale to
it as well.

See https://bugzilla.gnome.org/show_bug.cgi?id=732415

17 files changed:
docs/libs/gst-plugins-base-libs-sections.txt
gst-libs/gst/video/Makefile.am
gst-libs/gst/video/video-convertor.c [moved from gst/videoconvert/videoconvert.c with 75% similarity]
gst-libs/gst/video/video-convertor.h [new file with mode: 0644]
gst-libs/gst/video/video-orc.orc
gst-libs/gst/video/video.h
gst/videoconvert/Makefile.am
gst/videoconvert/gstcms.c [deleted file]
gst/videoconvert/gstcms.h [deleted file]
gst/videoconvert/gstvideoconvert.c
gst/videoconvert/gstvideoconvert.h
gst/videoconvert/gstvideoconvertorc-dist.c [deleted file]
gst/videoconvert/gstvideoconvertorc-dist.h [deleted file]
gst/videoconvert/gstvideoconvertorc.orc [deleted file]
gst/videoconvert/videoconvert.h [deleted file]
tests/check/Makefile.am
win32/common/libgstvideo.def

index 4ad9afd..82b52d8 100644 (file)
@@ -2408,6 +2408,17 @@ GST_VIDEO_TILE_MAKE_STRIDE
 GST_VIDEO_TILE_X_TILES
 GST_VIDEO_TILE_Y_TILES
 
+#video-convertor.h
+<SUBSECTION>
+gst_video_convertor_new
+gst_video_convertor_free
+gst_video_convertor_get_config
+gst_video_convertor_set_config
+gst_video_convertor_frame
+<SUBSECTION Standard>
+gst_video_dither_method_get_type
+GST_TYPE_VIDEO_DITHER_METHOD
+
 #video-enumtypes.h
 <SUBSECTION Standard>
 gst_color_balance_type_get_type
index 3932947..f10f64f 100644 (file)
@@ -3,7 +3,7 @@ ORC_SOURCE=video-orc
 include $(top_srcdir)/common/orc.mak
 
 glib_enum_headers = video.h video-format.h video-color.h video-info.h \
-                       colorbalance.h navigation.h video-chroma.h video-tile.h
+                       colorbalance.h navigation.h video-chroma.h video-tile.h video-convertor.h
 glib_enum_define = GST_VIDEO
 glib_gen_prefix = gst_video
 glib_gen_basename = video
@@ -25,6 +25,7 @@ libgstvideo_@GST_API_VERSION@_la_SOURCES = \
        video-format.c          \
        video-chroma.c          \
        video-color.c           \
+       video-convertor.c       \
        video-info.c            \
        video-frame.c           \
        video-tile.c            \
@@ -53,6 +54,7 @@ libgstvideo_@GST_API_VERSION@include_HEADERS = \
        video-format.h          \
        video-chroma.h          \
        video-color.h           \
+       video-convertor.h       \
        video-info.h            \
        video-frame.h           \
        video-tile.h            \
similarity index 75%
rename from gst/videoconvert/videoconvert.c
rename to gst-libs/gst/video/video-convertor.c
index a78218b..02c689e 100644 (file)
 #include "config.h"
 #endif
 
-#include "videoconvert.h"
+#include "video-convertor.h"
 
 #include <glib.h>
 #include <string.h>
 #include <math.h>
 
-#include "gstvideoconvertorc.h"
+#include "video-orc.h"
 
+/**
+ * SECTION:videoconvertor
+ * @short_description: Generic video conversion
+ *
+ * <refsect2>
+ * <para>
+ * This object is used to convert video frames from one format to another.
+ * The object can perform conversion of:
+ * <itemizedlist>
+ *  <listitem><para>
+ *    video format
+ *  </para></listitem>
+ *  <listitem><para>
+ *    video colorspace
+ *  </para></listitem>
+ *  <listitem><para>
+ *    chroma-siting
+ *  </para></listitem>
+ *  <listitem><para>
+ *    video size (planned)
+ *  </para></listitem>
+ * </para>
+ * </refsect2>
+ */
+
+struct _GstVideoConvertor
+{
+  GstVideoInfo in_info;
+  GstVideoInfo out_info;
+
+  gint width;
+  gint height;
+
+  gint in_bits;
+  gint out_bits;
+  gint cmatrix[4][4];
+
+  GstStructure *config;
+  GstVideoDitherMethod dither;
+
+  guint lines;
+
+  guint n_tmplines;
+  gpointer *tmplines;
+  guint16 *errline;
+
+  GstVideoChromaResample *upsample;
+  guint up_n_lines;
+  gint up_offset;
+  GstVideoChromaResample *downsample;
+  guint down_n_lines;
+  gint down_offset;
 
-static void videoconvert_convert_generic (VideoConvert * convert,
+  void (*convert) (GstVideoConvertor * convert, GstVideoFrame * dest,
+      const GstVideoFrame * src);
+  void (*matrix) (GstVideoConvertor * convert, gpointer pixels);
+  void (*dither16) (GstVideoConvertor * convert, guint16 * pixels, int j);
+};
+
+
+static void video_convertor_generic (GstVideoConvertor * convert,
     GstVideoFrame * dest, const GstVideoFrame * src);
-static void videoconvert_convert_matrix8 (VideoConvert * convert,
+static void video_convertor_matrix8 (GstVideoConvertor * convert,
     gpointer pixels);
-static void videoconvert_convert_matrix16 (VideoConvert * convert,
+static void video_convertor_matrix16 (GstVideoConvertor * convert,
     gpointer pixels);
-static gboolean videoconvert_convert_lookup_fastpath (VideoConvert * convert);
-static gboolean videoconvert_convert_compute_matrix (VideoConvert * convert);
-static gboolean videoconvert_convert_compute_resample (VideoConvert * convert);
-static void videoconvert_dither_verterr (VideoConvert * convert,
-    guint16 * pixels, int j);
-static void videoconvert_dither_halftone (VideoConvert * convert,
-    guint16 * pixels, int j);
-
-
-VideoConvert *
-videoconvert_convert_new (GstVideoInfo * in_info, GstVideoInfo * out_info)
+static gboolean video_convertor_lookup_fastpath (GstVideoConvertor * convert);
+static gboolean video_convertor_compute_matrix (GstVideoConvertor * convert);
+static gboolean video_convertor_compute_resample (GstVideoConvertor * convert);
+
+/**
+ * gst_video_convertor_new:
+ * @in_info: a #GstVideoInfo
+ * @out_info: a #GstVideoInfo
+ * @config: a #GstStructure with configuration options
+ *
+ * Create a new converter object to convert between @in_info and @out_info
+ * with @config.
+ *
+ * Returns: a #GstVideoConvertor or %NULL if conversion is not possible.
+ *
+ * Since: 1.6
+ */
+GstVideoConvertor *
+gst_video_convertor_new (GstVideoInfo * in_info, GstVideoInfo * out_info,
+    GstStructure * config)
 {
-  VideoConvert *convert;
+  GstVideoConvertor *convert;
   gint width;
 
-  convert = g_malloc0 (sizeof (VideoConvert));
+  g_return_val_if_fail (in_info != NULL, NULL);
+  g_return_val_if_fail (out_info != NULL, NULL);
+  /* FIXME can't do scaling yet */
+  g_return_val_if_fail (in_info->width == out_info->width, NULL);
+  g_return_val_if_fail (in_info->height == out_info->height, NULL);
+  g_return_val_if_fail (in_info->par_n == out_info->par_n, NULL);
+  g_return_val_if_fail (in_info->par_d == out_info->par_d, NULL);
+  /* we won't ever do framerate conversion */
+  g_return_val_if_fail (in_info->fps_n == out_info->fps_n, NULL);
+  g_return_val_if_fail (in_info->fps_d == out_info->fps_d, NULL);
+  /* we won't ever do deinterlace */
+  g_return_val_if_fail (in_info->interlace_mode == out_info->interlace_mode,
+      NULL);
+
+  convert = g_malloc0 (sizeof (GstVideoConvertor));
 
   convert->in_info = *in_info;
   convert->out_info = *out_info;
-  convert->dither16 = NULL;
 
   convert->width = GST_VIDEO_INFO_WIDTH (in_info);
   convert->height = GST_VIDEO_INFO_HEIGHT (in_info);
 
-  if (!videoconvert_convert_lookup_fastpath (convert)) {
-    convert->convert = videoconvert_convert_generic;
-    if (!videoconvert_convert_compute_matrix (convert))
+  if (!video_convertor_lookup_fastpath (convert)) {
+    convert->convert = video_convertor_generic;
+    if (!video_convertor_compute_matrix (convert))
       goto no_convert;
 
-    if (!videoconvert_convert_compute_resample (convert))
+    if (!video_convertor_compute_resample (convert))
       goto no_convert;
   }
 
@@ -75,21 +156,38 @@ videoconvert_convert_new (GstVideoInfo * in_info, GstVideoInfo * out_info)
   convert->lines = out_info->finfo->pack_lines;
   convert->errline = g_malloc0 (sizeof (guint16) * width * 4);
 
+  /* default config */
+  convert->config = gst_structure_new ("GstVideoConvertor",
+      "dither", GST_TYPE_VIDEO_DITHER_METHOD, GST_VIDEO_DITHER_NONE, NULL);
+
+  if (config)
+    gst_video_convertor_set_config (convert, config);
+
   return convert;
 
   /* ERRORS */
 no_convert:
   {
-    videoconvert_convert_free (convert);
+    gst_video_convertor_free (convert);
     return NULL;
   }
 }
 
+/**
+ * gst_video_convertor_free:
+ * @convert: a #GstVideoConvertor
+ *
+ * Free @convert
+ *
+ * Since: 1.6
+ */
 void
-videoconvert_convert_free (VideoConvert * convert)
+gst_video_convertor_free (GstVideoConvertor * convert)
 {
   gint i;
 
+  g_return_if_fail (convert != NULL);
+
   if (convert->upsample)
     gst_video_chroma_resample_free (convert->upsample);
   if (convert->downsample)
@@ -103,27 +201,140 @@ videoconvert_convert_free (VideoConvert * convert)
   g_free (convert);
 }
 
-void
-videoconvert_convert_set_dither (VideoConvert * convert, int type)
+static void
+video_dither_verterr (GstVideoConvertor * convert, guint16 * pixels, int j)
 {
-  switch (type) {
-    case 0:
-    default:
-      convert->dither16 = NULL;
-      break;
-    case 1:
-      convert->dither16 = videoconvert_dither_verterr;
-      break;
-    case 2:
-      convert->dither16 = videoconvert_dither_halftone;
-      break;
+  int i;
+  guint16 *errline = convert->errline;
+  unsigned int mask = 0xff;
+
+  for (i = 0; i < 4 * convert->width; i++) {
+    int x = pixels[i] + errline[i];
+    if (x > 65535)
+      x = 65535;
+    pixels[i] = x;
+    errline[i] = x & mask;
   }
 }
 
+static void
+video_dither_halftone (GstVideoConvertor * convert, guint16 * pixels, int j)
+{
+  int i;
+  static guint16 halftone[8][8] = {
+    {0, 128, 32, 160, 8, 136, 40, 168},
+    {192, 64, 224, 96, 200, 72, 232, 104},
+    {48, 176, 16, 144, 56, 184, 24, 152},
+    {240, 112, 208, 80, 248, 120, 216, 88},
+    {12, 240, 44, 172, 4, 132, 36, 164},
+    {204, 76, 236, 108, 196, 68, 228, 100},
+    {60, 188, 28, 156, 52, 180, 20, 148},
+    {252, 142, 220, 92, 244, 116, 212, 84}
+  };
+
+  for (i = 0; i < convert->width * 4; i++) {
+    int x;
+    x = pixels[i] + halftone[(i >> 2) & 7][j & 7];
+    if (x > 65535)
+      x = 65535;
+    pixels[i] = x;
+  }
+}
+
+/**
+ * gst_video_convertor_set_config:
+ * @convert: a #GstVideoConvertor
+ * @config: (transfer full): a #GstStructure
+ *
+ * Set @config as extra configuraion for @convert.
+ *
+ * If the parameters in @config can not be set exactly, this function returns
+ * %FALSE and will try to update as much state as possible. The new state can
+ * then be retrieved and refined with gst_video_convertor_get_config().
+ *
+ * The config is a GstStructure that can contain the the following fields:
+ *
+ *  "dither"    GST_TYPE_VIDEO_DITHER_METHOD   The dithering used when reducing
+ *                                             colors
+ *
+ * Returns: %TRUE when @config could be set.
+ *
+ * Since: 1.6
+ */
+gboolean
+gst_video_convertor_set_config (GstVideoConvertor * convert,
+    GstStructure * config)
+{
+  gint dither;
+  gboolean res = TRUE;
+
+  g_return_val_if_fail (convert != NULL, FALSE);
+  g_return_val_if_fail (config != NULL, FALSE);
+
+  if (gst_structure_get_enum (config, "dither", GST_TYPE_VIDEO_DITHER_METHOD,
+          &dither)) {
+    gboolean update = TRUE;
+
+    switch (dither) {
+      case GST_VIDEO_DITHER_NONE:
+        convert->dither16 = NULL;
+        break;
+      case GST_VIDEO_DITHER_VERTERR:
+        convert->dither16 = video_dither_verterr;
+        break;
+      case GST_VIDEO_DITHER_HALFTONE:
+        convert->dither16 = video_dither_halftone;
+        break;
+      default:
+        update = FALSE;
+        break;
+    }
+    if (update)
+      gst_structure_set (convert->config, "dither",
+          GST_TYPE_VIDEO_DITHER_METHOD, dither, NULL);
+    else
+      res = FALSE;
+  }
+  gst_structure_free (config);
+
+  return res;
+}
+
+/**
+ * gst_video_convertor_get_config:
+ * @@convert: a #GstVideoConvertor
+ *
+ * Get the current configuration of @convert.
+ *
+ * Returns: a #GstStructure that remains valid for as long as @convert is valid
+ *   or until gst_video_convertor_set_config() is called.
+ */
+const GstStructure *
+gst_video_convertor_get_config (GstVideoConvertor * convert)
+{
+  g_return_val_if_fail (convert != NULL, NULL);
+
+  return convert->config;
+}
+
+/**
+ * gst_video_convertor_frame:
+ * @convert: a #GstVideoConvertor
+ * @dest: a #GstVideoFrame
+ * @src: a #GstVideoFrame
+ *
+ * Convert the pixels of @src into @dest using @convert.
+ *
+ * Since: 1.6
+ */
 void
-videoconvert_convert_convert (VideoConvert * convert,
+gst_video_convertor_frame (GstVideoConvertor * convert,
     GstVideoFrame * dest, const GstVideoFrame * src)
 {
+  g_return_if_fail (convert != NULL);
+  g_return_if_fail (dest != NULL);
+  g_return_if_fail (src != NULL);
+
   convert->convert (convert, dest, src);
 }
 
@@ -131,7 +342,7 @@ videoconvert_convert_convert (VideoConvert * convert,
 #define SCALE_F  ((float) (1 << SCALE))
 
 static void
-videoconvert_convert_matrix8 (VideoConvert * convert, gpointer pixels)
+video_convertor_matrix8 (GstVideoConvertor * convert, gpointer pixels)
 {
   int i;
   int r, g, b;
@@ -157,7 +368,7 @@ videoconvert_convert_matrix8 (VideoConvert * convert, gpointer pixels)
 }
 
 static void
-videoconvert_convert_matrix16 (VideoConvert * convert, gpointer pixels)
+video_convertor_matrix16 (GstVideoConvertor * convert, gpointer pixels)
 {
   int i;
   int r, g, b;
@@ -182,8 +393,121 @@ videoconvert_convert_matrix16 (VideoConvert * convert, gpointer pixels)
   }
 }
 
+typedef struct
+{
+  double m[4][4];
+} ColorMatrix;
+
+static void
+color_matrix_set_identity (ColorMatrix * m)
+{
+  int i, j;
+
+  for (i = 0; i < 4; i++) {
+    for (j = 0; j < 4; j++) {
+      m->m[i][j] = (i == j);
+    }
+  }
+}
+
+/* Perform 4x4 matrix multiplication:
+ *  - @dst@ = @a@ * @b@
+ *  - @dst@ may be a pointer to @a@ andor @b@
+ */
+static void
+color_matrix_multiply (ColorMatrix * dst, ColorMatrix * a, ColorMatrix * b)
+{
+  ColorMatrix tmp;
+  int i, j, k;
+
+  for (i = 0; i < 4; i++) {
+    for (j = 0; j < 4; j++) {
+      double x = 0;
+      for (k = 0; k < 4; k++) {
+        x += a->m[i][k] * b->m[k][j];
+      }
+      tmp.m[i][j] = x;
+    }
+  }
+
+  memcpy (dst, &tmp, sizeof (ColorMatrix));
+}
+
+static void
+color_matrix_offset_components (ColorMatrix * m, double a1, double a2,
+    double a3)
+{
+  ColorMatrix a;
+
+  color_matrix_set_identity (&a);
+  a.m[0][3] = a1;
+  a.m[1][3] = a2;
+  a.m[2][3] = a3;
+  color_matrix_multiply (m, &a, m);
+}
+
+static void
+color_matrix_scale_components (ColorMatrix * m, double a1, double a2, double a3)
+{
+  ColorMatrix a;
+
+  color_matrix_set_identity (&a);
+  a.m[0][0] = a1;
+  a.m[1][1] = a2;
+  a.m[2][2] = a3;
+  color_matrix_multiply (m, &a, m);
+}
+
+static void
+color_matrix_YCbCr_to_RGB (ColorMatrix * m, double Kr, double Kb)
+{
+  double Kg = 1.0 - Kr - Kb;
+  ColorMatrix k = {
+    {
+          {1., 0., 2 * (1 - Kr), 0.},
+          {1., -2 * Kb * (1 - Kb) / Kg, -2 * Kr * (1 - Kr) / Kg, 0.},
+          {1., 2 * (1 - Kb), 0., 0.},
+          {0., 0., 0., 1.},
+        }
+  };
+
+  color_matrix_multiply (m, &k, m);
+}
+
+static void
+color_matrix_RGB_to_YCbCr (ColorMatrix * m, double Kr, double Kb)
+{
+  double Kg = 1.0 - Kr - Kb;
+  ColorMatrix k;
+  double x;
+
+  k.m[0][0] = Kr;
+  k.m[0][1] = Kg;
+  k.m[0][2] = Kb;
+  k.m[0][3] = 0;
+
+  x = 1 / (2 * (1 - Kb));
+  k.m[1][0] = -x * Kr;
+  k.m[1][1] = -x * Kg;
+  k.m[1][2] = x * (1 - Kb);
+  k.m[1][3] = 0;
+
+  x = 1 / (2 * (1 - Kr));
+  k.m[2][0] = x * (1 - Kr);
+  k.m[2][1] = -x * Kg;
+  k.m[2][2] = -x * Kb;
+  k.m[2][3] = 0;
+
+  k.m[3][0] = 0;
+  k.m[3][1] = 0;
+  k.m[3][2] = 0;
+  k.m[3][3] = 1;
+
+  color_matrix_multiply (m, &k, m);
+}
+
 static gboolean
-videoconvert_convert_compute_matrix (VideoConvert * convert)
+video_convertor_compute_matrix (GstVideoConvertor * convert)
 {
   GstVideoInfo *in_info, *out_info;
   ColorMatrix dst;
@@ -223,7 +547,7 @@ videoconvert_convert_compute_matrix (VideoConvert * convert)
   /* calculate intermediate format for the matrix. When unpacking, we expand
    * input to 16 when one of the inputs is 16 bits */
   if (convert->in_bits == 16 || convert->out_bits == 16) {
-    convert->matrix = videoconvert_convert_matrix16;
+    convert->matrix = video_convertor_matrix16;
 
     if (GST_VIDEO_FORMAT_INFO_IS_RGB (suinfo))
       suinfo = gst_video_format_get_info (GST_VIDEO_FORMAT_ARGB64);
@@ -235,7 +559,7 @@ videoconvert_convert_compute_matrix (VideoConvert * convert)
     else
       duinfo = gst_video_format_get_info (GST_VIDEO_FORMAT_AYUV64);
   } else {
-    convert->matrix = videoconvert_convert_matrix8;
+    convert->matrix = video_convertor_matrix8;
   }
 
   color_matrix_set_identity (&dst);
@@ -308,47 +632,7 @@ no_pack_func:
 }
 
 static void
-videoconvert_dither_verterr (VideoConvert * convert, guint16 * pixels, int j)
-{
-  int i;
-  guint16 *errline = convert->errline;
-  unsigned int mask = 0xff;
-
-  for (i = 0; i < 4 * convert->width; i++) {
-    int x = pixels[i] + errline[i];
-    if (x > 65535)
-      x = 65535;
-    pixels[i] = x;
-    errline[i] = x & mask;
-  }
-}
-
-static void
-videoconvert_dither_halftone (VideoConvert * convert, guint16 * pixels, int j)
-{
-  int i;
-  static guint16 halftone[8][8] = {
-    {0, 128, 32, 160, 8, 136, 40, 168},
-    {192, 64, 224, 96, 200, 72, 232, 104},
-    {48, 176, 16, 144, 56, 184, 24, 152},
-    {240, 112, 208, 80, 248, 120, 216, 88},
-    {12, 240, 44, 172, 4, 132, 36, 164},
-    {204, 76, 236, 108, 196, 68, 228, 100},
-    {60, 188, 28, 156, 52, 180, 20, 148},
-    {252, 142, 220, 92, 244, 116, 212, 84}
-  };
-
-  for (i = 0; i < convert->width * 4; i++) {
-    int x;
-    x = pixels[i] + halftone[(i >> 2) & 7][j & 7];
-    if (x > 65535)
-      x = 65535;
-    pixels[i] = x;
-  }
-}
-
-static void
-alloc_tmplines (VideoConvert * convert, guint lines, gint width)
+alloc_tmplines (GstVideoConvertor * convert, guint lines, gint width)
 {
   gint i;
 
@@ -359,7 +643,7 @@ alloc_tmplines (VideoConvert * convert, guint lines, gint width)
 }
 
 static gboolean
-videoconvert_convert_compute_resample (VideoConvert * convert)
+video_convertor_compute_resample (GstVideoConvertor * convert)
 {
   GstVideoInfo *in_info, *out_info;
   const GstVideoFormatInfo *sfinfo, *dfinfo;
@@ -455,7 +739,7 @@ convert_to8 (gpointer line, gint width)
       frame->info.chroma_site, line, width);
 
 static void
-videoconvert_convert_generic (VideoConvert * convert, GstVideoFrame * dest,
+video_convertor_generic (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   int j, k;
@@ -629,7 +913,7 @@ videoconvert_convert_generic (VideoConvert * convert, GstVideoFrame * dest,
 
 
 static void
-convert_I420_YUY2 (VideoConvert * convert, GstVideoFrame * dest,
+convert_I420_YUY2 (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   int i;
@@ -641,7 +925,7 @@ convert_I420_YUY2 (VideoConvert * convert, GstVideoFrame * dest,
   for (i = 0; i < GST_ROUND_DOWN_2 (height); i += 2) {
     GET_LINE_OFFSETS (interlaced, i, l1, l2);
 
-    video_convert_orc_convert_I420_YUY2 (FRAME_GET_LINE (dest, l1),
+    video_orc_convert_I420_YUY2 (FRAME_GET_LINE (dest, l1),
         FRAME_GET_LINE (dest, l2),
         FRAME_GET_Y_LINE (src, l1),
         FRAME_GET_Y_LINE (src, l2),
@@ -657,7 +941,7 @@ convert_I420_YUY2 (VideoConvert * convert, GstVideoFrame * dest,
 }
 
 static void
-convert_I420_UYVY (VideoConvert * convert, GstVideoFrame * dest,
+convert_I420_UYVY (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   int i;
@@ -669,7 +953,7 @@ convert_I420_UYVY (VideoConvert * convert, GstVideoFrame * dest,
   for (i = 0; i < GST_ROUND_DOWN_2 (height); i += 2) {
     GET_LINE_OFFSETS (interlaced, i, l1, l2);
 
-    video_convert_orc_convert_I420_UYVY (FRAME_GET_LINE (dest, l1),
+    video_orc_convert_I420_UYVY (FRAME_GET_LINE (dest, l1),
         FRAME_GET_LINE (dest, l2),
         FRAME_GET_Y_LINE (src, l1),
         FRAME_GET_Y_LINE (src, l2),
@@ -685,7 +969,7 @@ convert_I420_UYVY (VideoConvert * convert, GstVideoFrame * dest,
 }
 
 static void
-convert_I420_AYUV (VideoConvert * convert, GstVideoFrame * dest,
+convert_I420_AYUV (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   int i;
@@ -697,7 +981,7 @@ convert_I420_AYUV (VideoConvert * convert, GstVideoFrame * dest,
   for (i = 0; i < GST_ROUND_DOWN_2 (height); i += 2) {
     GET_LINE_OFFSETS (interlaced, i, l1, l2);
 
-    video_convert_orc_convert_I420_AYUV (FRAME_GET_LINE (dest, l1),
+    video_orc_convert_I420_AYUV (FRAME_GET_LINE (dest, l1),
         FRAME_GET_LINE (dest, l2),
         FRAME_GET_Y_LINE (src, l1),
         FRAME_GET_Y_LINE (src, l2),
@@ -712,44 +996,44 @@ convert_I420_AYUV (VideoConvert * convert, GstVideoFrame * dest,
 }
 
 static void
-convert_I420_Y42B (VideoConvert * convert, GstVideoFrame * dest,
+convert_I420_Y42B (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   gint width = convert->width;
   gint height = convert->height;
 
-  video_convert_orc_memcpy_2d (FRAME_GET_Y_LINE (dest, 0),
+  video_orc_memcpy_2d (FRAME_GET_Y_LINE (dest, 0),
       FRAME_GET_Y_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
       FRAME_GET_Y_STRIDE (src), width, height);
 
-  video_convert_orc_planar_chroma_420_422 (FRAME_GET_U_LINE (dest, 0),
+  video_orc_planar_chroma_420_422 (FRAME_GET_U_LINE (dest, 0),
       2 * FRAME_GET_U_STRIDE (dest), FRAME_GET_U_LINE (dest, 1),
       2 * FRAME_GET_U_STRIDE (dest), FRAME_GET_U_LINE (src, 0),
       FRAME_GET_U_STRIDE (src), (width + 1) / 2, height / 2);
 
-  video_convert_orc_planar_chroma_420_422 (FRAME_GET_V_LINE (dest, 0),
+  video_orc_planar_chroma_420_422 (FRAME_GET_V_LINE (dest, 0),
       2 * FRAME_GET_V_STRIDE (dest), FRAME_GET_V_LINE (dest, 1),
       2 * FRAME_GET_V_STRIDE (dest), FRAME_GET_V_LINE (src, 0),
       FRAME_GET_V_STRIDE (src), (width + 1) / 2, height / 2);
 }
 
 static void
-convert_I420_Y444 (VideoConvert * convert, GstVideoFrame * dest,
+convert_I420_Y444 (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   gint width = convert->width;
   gint height = convert->height;
 
-  video_convert_orc_memcpy_2d (FRAME_GET_Y_LINE (dest, 0),
+  video_orc_memcpy_2d (FRAME_GET_Y_LINE (dest, 0),
       FRAME_GET_Y_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
       FRAME_GET_Y_STRIDE (src), width, height);
 
-  video_convert_orc_planar_chroma_420_444 (FRAME_GET_U_LINE (dest, 0),
+  video_orc_planar_chroma_420_444 (FRAME_GET_U_LINE (dest, 0),
       2 * FRAME_GET_U_STRIDE (dest), FRAME_GET_U_LINE (dest, 1),
       2 * FRAME_GET_U_STRIDE (dest), FRAME_GET_U_LINE (src, 0),
       FRAME_GET_U_STRIDE (src), (width + 1) / 2, height / 2);
 
-  video_convert_orc_planar_chroma_420_444 (FRAME_GET_V_LINE (dest, 0),
+  video_orc_planar_chroma_420_444 (FRAME_GET_V_LINE (dest, 0),
       2 * FRAME_GET_V_STRIDE (dest), FRAME_GET_V_LINE (dest, 1),
       2 * FRAME_GET_V_STRIDE (dest), FRAME_GET_V_LINE (src, 0),
       FRAME_GET_V_STRIDE (src), (width + 1) / 2, height / 2);
@@ -762,7 +1046,7 @@ convert_I420_Y444 (VideoConvert * convert, GstVideoFrame * dest,
 }
 
 static void
-convert_YUY2_I420 (VideoConvert * convert, GstVideoFrame * dest,
+convert_YUY2_I420 (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   int i;
@@ -774,7 +1058,7 @@ convert_YUY2_I420 (VideoConvert * convert, GstVideoFrame * dest,
   for (i = 0; i < GST_ROUND_DOWN_2 (height); i += 2) {
     GET_LINE_OFFSETS (interlaced, i, l1, l2);
 
-    video_convert_orc_convert_YUY2_I420 (FRAME_GET_Y_LINE (dest, l1),
+    video_orc_convert_YUY2_I420 (FRAME_GET_Y_LINE (dest, l1),
         FRAME_GET_Y_LINE (dest, l2),
         FRAME_GET_U_LINE (dest, i >> 1),
         FRAME_GET_V_LINE (dest, i >> 1),
@@ -789,25 +1073,25 @@ convert_YUY2_I420 (VideoConvert * convert, GstVideoFrame * dest,
 }
 
 static void
-convert_YUY2_AYUV (VideoConvert * convert, GstVideoFrame * dest,
+convert_YUY2_AYUV (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   gint width = convert->width;
   gint height = convert->height;
 
-  video_convert_orc_convert_YUY2_AYUV (FRAME_GET_LINE (dest, 0),
+  video_orc_convert_YUY2_AYUV (FRAME_GET_LINE (dest, 0),
       FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
       FRAME_GET_STRIDE (src), (width + 1) / 2, height);
 }
 
 static void
-convert_YUY2_Y42B (VideoConvert * convert, GstVideoFrame * dest,
+convert_YUY2_Y42B (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   gint width = convert->width;
   gint height = convert->height;
 
-  video_convert_orc_convert_YUY2_Y42B (FRAME_GET_Y_LINE (dest, 0),
+  video_orc_convert_YUY2_Y42B (FRAME_GET_Y_LINE (dest, 0),
       FRAME_GET_Y_STRIDE (dest), FRAME_GET_U_LINE (dest, 0),
       FRAME_GET_U_STRIDE (dest), FRAME_GET_V_LINE (dest, 0),
       FRAME_GET_V_STRIDE (dest), FRAME_GET_LINE (src, 0),
@@ -815,13 +1099,13 @@ convert_YUY2_Y42B (VideoConvert * convert, GstVideoFrame * dest,
 }
 
 static void
-convert_YUY2_Y444 (VideoConvert * convert, GstVideoFrame * dest,
+convert_YUY2_Y444 (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   gint width = convert->width;
   gint height = convert->height;
 
-  video_convert_orc_convert_YUY2_Y444 (FRAME_GET_COMP_LINE (dest, 0, 0),
+  video_orc_convert_YUY2_Y444 (FRAME_GET_COMP_LINE (dest, 0, 0),
       FRAME_GET_COMP_STRIDE (dest, 0), FRAME_GET_COMP_LINE (dest, 1, 0),
       FRAME_GET_COMP_STRIDE (dest, 1), FRAME_GET_COMP_LINE (dest, 2, 0),
       FRAME_GET_COMP_STRIDE (dest, 2), FRAME_GET_LINE (src, 0),
@@ -830,7 +1114,7 @@ convert_YUY2_Y444 (VideoConvert * convert, GstVideoFrame * dest,
 
 
 static void
-convert_UYVY_I420 (VideoConvert * convert, GstVideoFrame * dest,
+convert_UYVY_I420 (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   int i;
@@ -842,7 +1126,7 @@ convert_UYVY_I420 (VideoConvert * convert, GstVideoFrame * dest,
   for (i = 0; i < GST_ROUND_DOWN_2 (height); i += 2) {
     GET_LINE_OFFSETS (interlaced, i, l1, l2);
 
-    video_convert_orc_convert_UYVY_I420 (FRAME_GET_COMP_LINE (dest, 0, l1),
+    video_orc_convert_UYVY_I420 (FRAME_GET_COMP_LINE (dest, 0, l1),
         FRAME_GET_COMP_LINE (dest, 0, l2),
         FRAME_GET_COMP_LINE (dest, 1, i >> 1),
         FRAME_GET_COMP_LINE (dest, 2, i >> 1),
@@ -857,37 +1141,37 @@ convert_UYVY_I420 (VideoConvert * convert, GstVideoFrame * dest,
 }
 
 static void
-convert_UYVY_AYUV (VideoConvert * convert, GstVideoFrame * dest,
+convert_UYVY_AYUV (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   gint width = convert->width;
   gint height = convert->height;
 
-  video_convert_orc_convert_UYVY_AYUV (FRAME_GET_LINE (dest, 0),
+  video_orc_convert_UYVY_AYUV (FRAME_GET_LINE (dest, 0),
       FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
       FRAME_GET_STRIDE (src), (width + 1) / 2, height);
 }
 
 static void
-convert_UYVY_YUY2 (VideoConvert * convert, GstVideoFrame * dest,
+convert_UYVY_YUY2 (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   gint width = convert->width;
   gint height = convert->height;
 
-  video_convert_orc_convert_UYVY_YUY2 (FRAME_GET_LINE (dest, 0),
+  video_orc_convert_UYVY_YUY2 (FRAME_GET_LINE (dest, 0),
       FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
       FRAME_GET_STRIDE (src), (width + 1) / 2, height);
 }
 
 static void
-convert_UYVY_Y42B (VideoConvert * convert, GstVideoFrame * dest,
+convert_UYVY_Y42B (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   gint width = convert->width;
   gint height = convert->height;
 
-  video_convert_orc_convert_UYVY_Y42B (FRAME_GET_Y_LINE (dest, 0),
+  video_orc_convert_UYVY_Y42B (FRAME_GET_Y_LINE (dest, 0),
       FRAME_GET_Y_STRIDE (dest), FRAME_GET_U_LINE (dest, 0),
       FRAME_GET_U_STRIDE (dest), FRAME_GET_V_LINE (dest, 0),
       FRAME_GET_V_STRIDE (dest), FRAME_GET_LINE (src, 0),
@@ -895,13 +1179,13 @@ convert_UYVY_Y42B (VideoConvert * convert, GstVideoFrame * dest,
 }
 
 static void
-convert_UYVY_Y444 (VideoConvert * convert, GstVideoFrame * dest,
+convert_UYVY_Y444 (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   gint width = convert->width;
   gint height = convert->height;
 
-  video_convert_orc_convert_UYVY_Y444 (FRAME_GET_Y_LINE (dest, 0),
+  video_orc_convert_UYVY_Y444 (FRAME_GET_Y_LINE (dest, 0),
       FRAME_GET_Y_STRIDE (dest), FRAME_GET_U_LINE (dest, 0),
       FRAME_GET_U_STRIDE (dest), FRAME_GET_V_LINE (dest, 0),
       FRAME_GET_V_STRIDE (dest), FRAME_GET_LINE (src, 0),
@@ -909,14 +1193,14 @@ convert_UYVY_Y444 (VideoConvert * convert, GstVideoFrame * dest,
 }
 
 static void
-convert_AYUV_I420 (VideoConvert * convert, GstVideoFrame * dest,
+convert_AYUV_I420 (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   gint width = convert->width;
   gint height = convert->height;
 
   /* only for even width/height */
-  video_convert_orc_convert_AYUV_I420 (FRAME_GET_Y_LINE (dest, 0),
+  video_orc_convert_AYUV_I420 (FRAME_GET_Y_LINE (dest, 0),
       2 * FRAME_GET_Y_STRIDE (dest), FRAME_GET_Y_LINE (dest, 1),
       2 * FRAME_GET_Y_STRIDE (dest), FRAME_GET_U_LINE (dest, 0),
       FRAME_GET_U_STRIDE (dest), FRAME_GET_V_LINE (dest, 0),
@@ -926,40 +1210,40 @@ convert_AYUV_I420 (VideoConvert * convert, GstVideoFrame * dest,
 }
 
 static void
-convert_AYUV_YUY2 (VideoConvert * convert, GstVideoFrame * dest,
+convert_AYUV_YUY2 (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   gint width = convert->width;
   gint height = convert->height;
 
   /* only for even width */
-  video_convert_orc_convert_AYUV_YUY2 (FRAME_GET_LINE (dest, 0),
+  video_orc_convert_AYUV_YUY2 (FRAME_GET_LINE (dest, 0),
       FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
       FRAME_GET_STRIDE (src), width / 2, height);
 }
 
 static void
-convert_AYUV_UYVY (VideoConvert * convert, GstVideoFrame * dest,
+convert_AYUV_UYVY (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   gint width = convert->width;
   gint height = convert->height;
 
   /* only for even width */
-  video_convert_orc_convert_AYUV_UYVY (FRAME_GET_LINE (dest, 0),
+  video_orc_convert_AYUV_UYVY (FRAME_GET_LINE (dest, 0),
       FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
       FRAME_GET_STRIDE (src), width / 2, height);
 }
 
 static void
-convert_AYUV_Y42B (VideoConvert * convert, GstVideoFrame * dest,
+convert_AYUV_Y42B (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   gint width = convert->width;
   gint height = convert->height;
 
   /* only works for even width */
-  video_convert_orc_convert_AYUV_Y42B (FRAME_GET_Y_LINE (dest, 0),
+  video_orc_convert_AYUV_Y42B (FRAME_GET_Y_LINE (dest, 0),
       FRAME_GET_Y_STRIDE (dest), FRAME_GET_U_LINE (dest, 0),
       FRAME_GET_U_STRIDE (dest), FRAME_GET_V_LINE (dest, 0),
       FRAME_GET_V_STRIDE (dest), FRAME_GET_LINE (src, 0),
@@ -967,13 +1251,13 @@ convert_AYUV_Y42B (VideoConvert * convert, GstVideoFrame * dest,
 }
 
 static void
-convert_AYUV_Y444 (VideoConvert * convert, GstVideoFrame * dest,
+convert_AYUV_Y444 (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   gint width = convert->width;
   gint height = convert->height;
 
-  video_convert_orc_convert_AYUV_Y444 (FRAME_GET_Y_LINE (dest, 0),
+  video_orc_convert_AYUV_Y444 (FRAME_GET_Y_LINE (dest, 0),
       FRAME_GET_Y_STRIDE (dest), FRAME_GET_U_LINE (dest, 0),
       FRAME_GET_U_STRIDE (dest), FRAME_GET_V_LINE (dest, 0),
       FRAME_GET_V_STRIDE (dest), FRAME_GET_LINE (src, 0),
@@ -981,22 +1265,22 @@ convert_AYUV_Y444 (VideoConvert * convert, GstVideoFrame * dest,
 }
 
 static void
-convert_Y42B_I420 (VideoConvert * convert, GstVideoFrame * dest,
+convert_Y42B_I420 (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   gint width = convert->width;
   gint height = convert->height;
 
-  video_convert_orc_memcpy_2d (FRAME_GET_Y_LINE (dest, 0),
+  video_orc_memcpy_2d (FRAME_GET_Y_LINE (dest, 0),
       FRAME_GET_Y_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
       FRAME_GET_Y_STRIDE (src), width, height);
 
-  video_convert_orc_planar_chroma_422_420 (FRAME_GET_U_LINE (dest, 0),
+  video_orc_planar_chroma_422_420 (FRAME_GET_U_LINE (dest, 0),
       FRAME_GET_U_STRIDE (dest), FRAME_GET_U_LINE (src, 0),
       2 * FRAME_GET_U_STRIDE (src), FRAME_GET_U_LINE (src, 1),
       2 * FRAME_GET_U_STRIDE (src), (width + 1) / 2, height / 2);
 
-  video_convert_orc_planar_chroma_422_420 (FRAME_GET_V_LINE (dest, 0),
+  video_orc_planar_chroma_422_420 (FRAME_GET_V_LINE (dest, 0),
       FRAME_GET_V_STRIDE (dest), FRAME_GET_V_LINE (src, 0),
       2 * FRAME_GET_V_STRIDE (src), FRAME_GET_V_LINE (src, 1),
       2 * FRAME_GET_V_STRIDE (src), (width + 1) / 2, height / 2);
@@ -1009,33 +1293,33 @@ convert_Y42B_I420 (VideoConvert * convert, GstVideoFrame * dest,
 }
 
 static void
-convert_Y42B_Y444 (VideoConvert * convert, GstVideoFrame * dest,
+convert_Y42B_Y444 (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   gint width = convert->width;
   gint height = convert->height;
 
-  video_convert_orc_memcpy_2d (FRAME_GET_Y_LINE (dest, 0),
+  video_orc_memcpy_2d (FRAME_GET_Y_LINE (dest, 0),
       FRAME_GET_Y_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
       FRAME_GET_Y_STRIDE (src), width, height);
 
-  video_convert_orc_planar_chroma_422_444 (FRAME_GET_U_LINE (dest, 0),
+  video_orc_planar_chroma_422_444 (FRAME_GET_U_LINE (dest, 0),
       FRAME_GET_U_STRIDE (dest), FRAME_GET_U_LINE (src, 0),
       FRAME_GET_U_STRIDE (src), (width + 1) / 2, height);
 
-  video_convert_orc_planar_chroma_422_444 (FRAME_GET_V_LINE (dest, 0),
+  video_orc_planar_chroma_422_444 (FRAME_GET_V_LINE (dest, 0),
       FRAME_GET_V_STRIDE (dest), FRAME_GET_V_LINE (src, 0),
       FRAME_GET_V_STRIDE (src), (width + 1) / 2, height);
 }
 
 static void
-convert_Y42B_YUY2 (VideoConvert * convert, GstVideoFrame * dest,
+convert_Y42B_YUY2 (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   gint width = convert->width;
   gint height = convert->height;
 
-  video_convert_orc_convert_Y42B_YUY2 (FRAME_GET_LINE (dest, 0),
+  video_orc_convert_Y42B_YUY2 (FRAME_GET_LINE (dest, 0),
       FRAME_GET_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
       FRAME_GET_Y_STRIDE (src), FRAME_GET_U_LINE (src, 0),
       FRAME_GET_U_STRIDE (src), FRAME_GET_V_LINE (src, 0),
@@ -1043,13 +1327,13 @@ convert_Y42B_YUY2 (VideoConvert * convert, GstVideoFrame * dest,
 }
 
 static void
-convert_Y42B_UYVY (VideoConvert * convert, GstVideoFrame * dest,
+convert_Y42B_UYVY (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   gint width = convert->width;
   gint height = convert->height;
 
-  video_convert_orc_convert_Y42B_UYVY (FRAME_GET_LINE (dest, 0),
+  video_orc_convert_Y42B_UYVY (FRAME_GET_LINE (dest, 0),
       FRAME_GET_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
       FRAME_GET_Y_STRIDE (src), FRAME_GET_U_LINE (src, 0),
       FRAME_GET_U_STRIDE (src), FRAME_GET_V_LINE (src, 0),
@@ -1057,14 +1341,14 @@ convert_Y42B_UYVY (VideoConvert * convert, GstVideoFrame * dest,
 }
 
 static void
-convert_Y42B_AYUV (VideoConvert * convert, GstVideoFrame * dest,
+convert_Y42B_AYUV (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   gint width = convert->width;
   gint height = convert->height;
 
   /* only for even width */
-  video_convert_orc_convert_Y42B_AYUV (FRAME_GET_LINE (dest, 0),
+  video_orc_convert_Y42B_AYUV (FRAME_GET_LINE (dest, 0),
       FRAME_GET_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
       FRAME_GET_Y_STRIDE (src), FRAME_GET_U_LINE (src, 0),
       FRAME_GET_U_STRIDE (src), FRAME_GET_V_LINE (src, 0),
@@ -1072,22 +1356,22 @@ convert_Y42B_AYUV (VideoConvert * convert, GstVideoFrame * dest,
 }
 
 static void
-convert_Y444_I420 (VideoConvert * convert, GstVideoFrame * dest,
+convert_Y444_I420 (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   gint width = convert->width;
   gint height = convert->height;
 
-  video_convert_orc_memcpy_2d (FRAME_GET_Y_LINE (dest, 0),
+  video_orc_memcpy_2d (FRAME_GET_Y_LINE (dest, 0),
       FRAME_GET_Y_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
       FRAME_GET_Y_STRIDE (src), width, height);
 
-  video_convert_orc_planar_chroma_444_420 (FRAME_GET_U_LINE (dest, 0),
+  video_orc_planar_chroma_444_420 (FRAME_GET_U_LINE (dest, 0),
       FRAME_GET_U_STRIDE (dest), FRAME_GET_U_LINE (src, 0),
       2 * FRAME_GET_U_STRIDE (src), FRAME_GET_U_LINE (src, 1),
       2 * FRAME_GET_U_STRIDE (src), width / 2, height / 2);
 
-  video_convert_orc_planar_chroma_444_420 (FRAME_GET_V_LINE (dest, 0),
+  video_orc_planar_chroma_444_420 (FRAME_GET_V_LINE (dest, 0),
       FRAME_GET_V_STRIDE (dest), FRAME_GET_V_LINE (src, 0),
       2 * FRAME_GET_V_STRIDE (src), FRAME_GET_V_LINE (src, 1),
       2 * FRAME_GET_V_STRIDE (src), width / 2, height / 2);
@@ -1100,33 +1384,33 @@ convert_Y444_I420 (VideoConvert * convert, GstVideoFrame * dest,
 }
 
 static void
-convert_Y444_Y42B (VideoConvert * convert, GstVideoFrame * dest,
+convert_Y444_Y42B (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   gint width = convert->width;
   gint height = convert->height;
 
-  video_convert_orc_memcpy_2d (FRAME_GET_Y_LINE (dest, 0),
+  video_orc_memcpy_2d (FRAME_GET_Y_LINE (dest, 0),
       FRAME_GET_Y_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
       FRAME_GET_Y_STRIDE (src), width, height);
 
-  video_convert_orc_planar_chroma_444_422 (FRAME_GET_U_LINE (dest, 0),
+  video_orc_planar_chroma_444_422 (FRAME_GET_U_LINE (dest, 0),
       FRAME_GET_U_STRIDE (dest), FRAME_GET_U_LINE (src, 0),
       FRAME_GET_U_STRIDE (src), width / 2, height);
 
-  video_convert_orc_planar_chroma_444_422 (FRAME_GET_V_LINE (dest, 0),
+  video_orc_planar_chroma_444_422 (FRAME_GET_V_LINE (dest, 0),
       FRAME_GET_V_STRIDE (dest), FRAME_GET_V_LINE (src, 0),
       FRAME_GET_V_STRIDE (src), width / 2, height);
 }
 
 static void
-convert_Y444_YUY2 (VideoConvert * convert, GstVideoFrame * dest,
+convert_Y444_YUY2 (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   gint width = convert->width;
   gint height = convert->height;
 
-  video_convert_orc_convert_Y444_YUY2 (FRAME_GET_LINE (dest, 0),
+  video_orc_convert_Y444_YUY2 (FRAME_GET_LINE (dest, 0),
       FRAME_GET_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
       FRAME_GET_Y_STRIDE (src), FRAME_GET_U_LINE (src, 0),
       FRAME_GET_U_STRIDE (src), FRAME_GET_V_LINE (src, 0),
@@ -1134,13 +1418,13 @@ convert_Y444_YUY2 (VideoConvert * convert, GstVideoFrame * dest,
 }
 
 static void
-convert_Y444_UYVY (VideoConvert * convert, GstVideoFrame * dest,
+convert_Y444_UYVY (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   gint width = convert->width;
   gint height = convert->height;
 
-  video_convert_orc_convert_Y444_UYVY (FRAME_GET_LINE (dest, 0),
+  video_orc_convert_Y444_UYVY (FRAME_GET_LINE (dest, 0),
       FRAME_GET_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
       FRAME_GET_Y_STRIDE (src), FRAME_GET_U_LINE (src, 0),
       FRAME_GET_U_STRIDE (src), FRAME_GET_V_LINE (src, 0),
@@ -1148,13 +1432,13 @@ convert_Y444_UYVY (VideoConvert * convert, GstVideoFrame * dest,
 }
 
 static void
-convert_Y444_AYUV (VideoConvert * convert, GstVideoFrame * dest,
+convert_Y444_AYUV (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   gint width = convert->width;
   gint height = convert->height;
 
-  video_convert_orc_convert_Y444_AYUV (FRAME_GET_LINE (dest, 0),
+  video_orc_convert_Y444_AYUV (FRAME_GET_LINE (dest, 0),
       FRAME_GET_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
       FRAME_GET_Y_STRIDE (src), FRAME_GET_U_LINE (src, 0),
       FRAME_GET_U_STRIDE (src), FRAME_GET_V_LINE (src, 0),
@@ -1163,13 +1447,13 @@ convert_Y444_AYUV (VideoConvert * convert, GstVideoFrame * dest,
 
 #if G_BYTE_ORDER == G_LITTLE_ENDIAN
 static void
-convert_AYUV_ARGB (VideoConvert * convert, GstVideoFrame * dest,
+convert_AYUV_ARGB (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   gint width = convert->width;
   gint height = convert->height;
 
-  video_convert_orc_convert_AYUV_ARGB (FRAME_GET_LINE (dest, 0),
+  video_orc_convert_AYUV_ARGB (FRAME_GET_LINE (dest, 0),
       FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
       FRAME_GET_STRIDE (src), convert->cmatrix[0][0], convert->cmatrix[0][2],
       convert->cmatrix[2][1], convert->cmatrix[1][1], convert->cmatrix[1][2],
@@ -1177,13 +1461,13 @@ convert_AYUV_ARGB (VideoConvert * convert, GstVideoFrame * dest,
 }
 
 static void
-convert_AYUV_BGRA (VideoConvert * convert, GstVideoFrame * dest,
+convert_AYUV_BGRA (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   gint width = convert->width;
   gint height = convert->height;
 
-  video_convert_orc_convert_AYUV_BGRA (FRAME_GET_LINE (dest, 0),
+  video_orc_convert_AYUV_BGRA (FRAME_GET_LINE (dest, 0),
       FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
       FRAME_GET_STRIDE (src), convert->cmatrix[0][0], convert->cmatrix[0][2],
       convert->cmatrix[2][1], convert->cmatrix[1][1], convert->cmatrix[1][2],
@@ -1191,13 +1475,13 @@ convert_AYUV_BGRA (VideoConvert * convert, GstVideoFrame * dest,
 }
 
 static void
-convert_AYUV_ABGR (VideoConvert * convert, GstVideoFrame * dest,
+convert_AYUV_ABGR (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   gint width = convert->width;
   gint height = convert->height;
 
-  video_convert_orc_convert_AYUV_ABGR (FRAME_GET_LINE (dest, 0),
+  video_orc_convert_AYUV_ABGR (FRAME_GET_LINE (dest, 0),
       FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
       FRAME_GET_STRIDE (src), convert->cmatrix[0][0], convert->cmatrix[0][2],
       convert->cmatrix[2][1], convert->cmatrix[1][1], convert->cmatrix[1][2],
@@ -1205,13 +1489,13 @@ convert_AYUV_ABGR (VideoConvert * convert, GstVideoFrame * dest,
 }
 
 static void
-convert_AYUV_RGBA (VideoConvert * convert, GstVideoFrame * dest,
+convert_AYUV_RGBA (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   gint width = convert->width;
   gint height = convert->height;
 
-  video_convert_orc_convert_AYUV_RGBA (FRAME_GET_LINE (dest, 0),
+  video_orc_convert_AYUV_RGBA (FRAME_GET_LINE (dest, 0),
       FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
       FRAME_GET_STRIDE (src), convert->cmatrix[0][0], convert->cmatrix[0][2],
       convert->cmatrix[2][1], convert->cmatrix[1][1], convert->cmatrix[1][2],
@@ -1219,7 +1503,7 @@ convert_AYUV_RGBA (VideoConvert * convert, GstVideoFrame * dest,
 }
 
 static void
-convert_I420_BGRA (VideoConvert * convert, GstVideoFrame * dest,
+convert_I420_BGRA (GstVideoConvertor * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
   int i;
@@ -1227,7 +1511,7 @@ convert_I420_BGRA (VideoConvert * convert, GstVideoFrame * dest,
   gint height = convert->height;
 
   for (i = 0; i < height; i++) {
-    video_convert_orc_convert_I420_BGRA (FRAME_GET_LINE (dest, i),
+    video_orc_convert_I420_BGRA (FRAME_GET_LINE (dest, i),
         FRAME_GET_Y_LINE (src, i),
         FRAME_GET_U_LINE (src, i >> 1), FRAME_GET_V_LINE (src, i >> 1),
         convert->cmatrix[0][0], convert->cmatrix[0][2],
@@ -1251,7 +1535,7 @@ typedef struct
   gboolean keeps_interlaced;
   gboolean needs_color_matrix;
   gint width_align, height_align;
-  void (*convert) (VideoConvert * convert, GstVideoFrame * dest,
+  void (*convert) (GstVideoConvertor * convert, GstVideoFrame * dest,
       const GstVideoFrame * src);
 } VideoTransform;
 
@@ -1420,7 +1704,7 @@ static const VideoTransform transforms[] = {
 };
 
 static gboolean
-videoconvert_convert_lookup_fastpath (VideoConvert * convert)
+video_convertor_lookup_fastpath (GstVideoConvertor * convert)
 {
   int i;
   GstVideoFormat in_format, out_format;
@@ -1451,7 +1735,7 @@ videoconvert_convert_lookup_fastpath (VideoConvert * convert)
         (transforms[i].height_align & height) == 0) {
       GST_DEBUG ("using fastpath");
       if (transforms[i].needs_color_matrix)
-        if (!videoconvert_convert_compute_matrix (convert))
+        if (!video_convertor_compute_matrix (convert))
           goto no_convert;
       convert->convert = transforms[i].convert;
       alloc_tmplines (convert, 1, GST_VIDEO_INFO_WIDTH (&convert->in_info));
diff --git a/gst-libs/gst/video/video-convertor.h b/gst-libs/gst/video/video-convertor.h
new file mode 100644 (file)
index 0000000..43c55c5
--- /dev/null
@@ -0,0 +1,49 @@
+/* Video conversion api function
+ * Copyright (C) 2014 Wim Taymans <wim.taymans@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_VIDEO_CONVERTOR_H__
+#define __GST_VIDEO_CONVERTOR_H__
+
+#include <gst/video/video.h>
+
+G_BEGIN_DECLS
+
+typedef enum {
+  GST_VIDEO_DITHER_NONE,
+  GST_VIDEO_DITHER_VERTERR,
+  GST_VIDEO_DITHER_HALFTONE
+} GstVideoDitherMethod;
+
+typedef struct _GstVideoConvertor GstVideoConvertor;
+
+GstVideoConvertor *  gst_video_convertor_new            (GstVideoInfo *in_info,
+                                                         GstVideoInfo *out_info,
+                                                         GstStructure *config);
+void                 gst_video_convertor_free           (GstVideoConvertor * convert);
+
+gboolean             gst_video_convertor_set_config     (GstVideoConvertor * convert, GstStructure *config);
+const GstStructure * gst_video_convertor_get_config     (GstVideoConvertor * convert);
+
+void                 gst_video_convertor_frame          (GstVideoConvertor * convert,
+                                                         GstVideoFrame *dest, const GstVideoFrame *src);
+
+
+G_END_DECLS
+
+#endif /* __GST_VIDEO_CONVERTOR_H__ */
index 1f67327..00981c0 100644 (file)
@@ -503,3 +503,733 @@ mullw t2, t2, p1
 addw t2, t2, 128
 convhwb t, t2
 addb d1, t, a
+
+
+.function video_orc_memcpy_2d
+.flags 2d
+.dest 1 d1 guint8
+.source 1 s1 guint8
+
+copyb d1, s1
+
+.function video_orc_convert_I420_UYVY
+.dest 4 d1 guint8
+.dest 4 d2 guint8
+.source 2 y1 guint8
+.source 2 y2 guint8
+.source 1 u guint8
+.source 1 v guint8
+.temp 2 uv
+
+mergebw uv, u, v
+x2 mergebw d1, uv, y1
+x2 mergebw d2, uv, y2
+
+
+.function video_orc_convert_I420_YUY2
+.dest 4 d1 guint8
+.dest 4 d2 guint8
+.source 2 y1 guint8
+.source 2 y2 guint8
+.source 1 u guint8
+.source 1 v guint8
+.temp 2 uv
+
+mergebw uv, u, v
+x2 mergebw d1, y1, uv
+x2 mergebw d2, y2, uv
+
+
+
+.function video_orc_convert_I420_AYUV
+.dest 4 d1 guint8
+.dest 4 d2 guint8
+.source 1 y1 guint8
+.source 1 y2 guint8
+.source 1 u guint8
+.source 1 v guint8
+.const 1 c255 255
+.temp 2 uv
+.temp 2 ay
+.temp 1 tu
+.temp 1 tv
+
+loadupdb tu, u
+loadupdb tv, v
+mergebw uv, tu, tv
+mergebw ay, c255, y1
+mergewl d1, ay, uv
+mergebw ay, c255, y2
+mergewl d2, ay, uv
+
+
+.function video_orc_convert_YUY2_I420
+.dest 2 y1 guint8
+.dest 2 y2 guint8
+.dest 1 u guint8
+.dest 1 v guint8
+.source 4 yuv1 guint8
+.source 4 yuv2 guint8
+.temp 2 t1
+.temp 2 t2
+.temp 2 ty
+
+x2 splitwb t1, ty, yuv1
+storew y1, ty
+x2 splitwb t2, ty, yuv2
+storew y2, ty
+x2 avgub t1, t1, t2
+splitwb v, u, t1
+
+
+.function video_orc_convert_UYVY_YUY2
+.flags 2d
+.dest 4 yuy2 guint8
+.source 4 uyvy guint8
+
+x2 swapw yuy2, uyvy
+
+
+.function video_orc_planar_chroma_420_422
+.flags 2d
+.dest 1 d1 guint8
+.dest 1 d2 guint8
+.source 1 s guint8
+
+copyb d1, s
+copyb d2, s
+
+
+.function video_orc_planar_chroma_420_444
+.flags 2d
+.dest 2 d1 guint8
+.dest 2 d2 guint8
+.source 1 s guint8
+.temp 2 t
+
+splatbw t, s
+storew d1, t
+storew d2, t
+
+
+.function video_orc_planar_chroma_422_444
+.flags 2d
+.dest 2 d1 guint8
+.source 1 s guint8
+.temp 2 t
+
+splatbw t, s
+storew d1, t
+
+
+.function video_orc_planar_chroma_444_422
+.flags 2d
+.dest 1 d guint8
+.source 2 s guint8
+.temp 1 t1
+.temp 1 t2
+
+splitwb t1, t2, s
+avgub d, t1, t2
+
+
+.function video_orc_planar_chroma_444_420
+.flags 2d
+.dest 1 d guint8
+.source 2 s1 guint8
+.source 2 s2 guint8
+.temp 2 t
+.temp 1 t1
+.temp 1 t2
+
+x2 avgub t, s1, s2
+splitwb t1, t2, t
+avgub d, t1, t2
+
+
+.function video_orc_planar_chroma_422_420
+.flags 2d
+.dest 1 d guint8
+.source 1 s1 guint8
+.source 1 s2 guint8
+
+avgub d, s1, s2
+
+
+.function video_orc_convert_YUY2_AYUV
+.flags 2d
+.dest 8 ayuv guint8
+.source 4 yuy2 guint8
+.const 2 c255 0xff
+.temp 2 yy
+.temp 2 uv
+.temp 4 ayay
+.temp 4 uvuv
+
+x2 splitwb uv, yy, yuy2
+x2 mergebw ayay, c255, yy
+mergewl uvuv, uv, uv
+x2 mergewl ayuv, ayay, uvuv
+
+
+.function video_orc_convert_UYVY_AYUV
+.flags 2d
+.dest 8 ayuv guint8
+.source 4 uyvy guint8
+.const 2 c255 0xff
+.temp 2 yy
+.temp 2 uv
+.temp 4 ayay
+.temp 4 uvuv
+
+x2 splitwb yy, uv, uyvy
+x2 mergebw ayay, c255, yy
+mergewl uvuv, uv, uv
+x2 mergewl ayuv, ayay, uvuv
+
+
+.function video_orc_convert_YUY2_Y42B
+.flags 2d
+.dest 2 y guint8
+.dest 1 u guint8
+.dest 1 v guint8
+.source 4 yuy2 guint8
+.temp 2 uv
+
+x2 splitwb uv, y, yuy2
+splitwb v, u, uv
+
+
+.function video_orc_convert_UYVY_Y42B
+.flags 2d
+.dest 2 y guint8
+.dest 1 u guint8
+.dest 1 v guint8
+.source 4 uyvy guint8
+.temp 2 uv
+
+x2 splitwb y, uv, uyvy
+splitwb v, u, uv
+
+
+.function video_orc_convert_YUY2_Y444
+.flags 2d
+.dest 2 y guint8
+.dest 2 uu guint8
+.dest 2 vv guint8
+.source 4 yuy2 guint8
+.temp 2 uv
+.temp 1 u
+.temp 1 v
+
+x2 splitwb uv, y, yuy2
+splitwb v, u, uv
+splatbw uu, u
+splatbw vv, v
+
+
+.function video_orc_convert_UYVY_Y444
+.flags 2d
+.dest 2 y guint8
+.dest 2 uu guint8
+.dest 2 vv guint8
+.source 4 uyvy guint8
+.temp 2 uv
+.temp 1 u
+.temp 1 v
+
+x2 splitwb y, uv, uyvy
+splitwb v, u, uv
+splatbw uu, u
+splatbw vv, v
+
+
+.function video_orc_convert_UYVY_I420
+.dest 2 y1 guint8
+.dest 2 y2 guint8
+.dest 1 u guint8
+.dest 1 v guint8
+.source 4 yuv1 guint8
+.source 4 yuv2 guint8
+.temp 2 t1
+.temp 2 t2
+.temp 2 ty
+
+x2 splitwb ty, t1, yuv1
+storew y1, ty
+x2 splitwb ty, t2, yuv2
+storew y2, ty
+x2 avgub t1, t1, t2
+splitwb v, u, t1
+
+
+
+.function video_orc_convert_AYUV_I420
+.flags 2d
+.dest 2 y1 guint8
+.dest 2 y2 guint8
+.dest 1 u guint8
+.dest 1 v guint8
+.source 8 ayuv1 guint8
+.source 8 ayuv2 guint8
+.temp 4 ay
+.temp 4 uv1
+.temp 4 uv2
+.temp 4 uv
+.temp 2 uu
+.temp 2 vv
+.temp 1 t1
+.temp 1 t2
+
+x2 splitlw uv1, ay, ayuv1
+x2 select1wb y1, ay
+x2 splitlw uv2, ay, ayuv2
+x2 select1wb y2, ay
+x4 avgub uv, uv1, uv2
+x2 splitwb vv, uu, uv
+splitwb t1, t2, uu
+avgub u, t1, t2
+splitwb t1, t2, vv
+avgub v, t1, t2
+
+
+
+.function video_orc_convert_AYUV_YUY2
+.flags 2d
+.dest 4 yuy2 guint8
+.source 8 ayuv guint8
+.temp 2 yy
+.temp 2 uv1
+.temp 2 uv2
+.temp 4 ayay
+.temp 4 uvuv
+
+x2 splitlw uvuv, ayay, ayuv
+splitlw uv1, uv2, uvuv
+x2 avgub uv1, uv1, uv2
+x2 select1wb yy, ayay
+x2 mergebw yuy2, yy, uv1
+
+
+.function video_orc_convert_AYUV_UYVY
+.flags 2d
+.dest 4 yuy2 guint8
+.source 8 ayuv guint8
+.temp 2 yy
+.temp 2 uv1
+.temp 2 uv2
+.temp 4 ayay
+.temp 4 uvuv
+
+x2 splitlw uvuv, ayay, ayuv
+splitlw uv1, uv2, uvuv
+x2 avgub uv1, uv1, uv2
+x2 select1wb yy, ayay
+x2 mergebw yuy2, uv1, yy
+
+
+
+.function video_orc_convert_AYUV_Y42B
+.flags 2d
+.dest 2 y guint8
+.dest 1 u guint8
+.dest 1 v guint8
+.source 8 ayuv guint8
+.temp 4 ayay
+.temp 4 uvuv
+.temp 2 uv1
+.temp 2 uv2
+
+x2 splitlw uvuv, ayay, ayuv
+splitlw uv1, uv2, uvuv
+x2 avgub uv1, uv1, uv2
+splitwb v, u, uv1
+x2 select1wb y, ayay
+
+
+.function video_orc_convert_AYUV_Y444
+.flags 2d
+.dest 1 y guint8
+.dest 1 u guint8
+.dest 1 v guint8
+.source 4 ayuv guint8
+.temp 2 ay
+.temp 2 uv
+
+splitlw uv, ay, ayuv
+splitwb v, u, uv
+select1wb y, ay
+
+
+.function video_orc_convert_Y42B_YUY2
+.flags 2d
+.dest 4 yuy2 guint8
+.source 2 y guint8
+.source 1 u guint8
+.source 1 v guint8
+.temp 2 uv
+
+mergebw uv, u, v
+x2 mergebw yuy2, y, uv
+
+
+.function video_orc_convert_Y42B_UYVY
+.flags 2d
+.dest 4 uyvy guint8
+.source 2 y guint8
+.source 1 u guint8
+.source 1 v guint8
+.temp 2 uv
+
+mergebw uv, u, v
+x2 mergebw uyvy, uv, y
+
+
+.function video_orc_convert_Y42B_AYUV
+.flags 2d
+.dest 8 ayuv guint8
+.source 2 yy guint8
+.source 1 u guint8
+.source 1 v guint8
+.const 1 c255 255
+.temp 2 uv
+.temp 2 ay
+.temp 4 uvuv
+.temp 4 ayay
+
+mergebw uv, u, v
+x2 mergebw ayay, c255, yy
+mergewl uvuv, uv, uv
+x2 mergewl ayuv, ayay, uvuv
+
+
+.function video_orc_convert_Y444_YUY2
+.flags 2d
+.dest 4 yuy2 guint8
+.source 2 y guint8
+.source 2 u guint8
+.source 2 v guint8
+.temp 2 uv
+.temp 4 uvuv
+.temp 2 uv1
+.temp 2 uv2
+
+x2 mergebw uvuv, u, v
+splitlw uv1, uv2, uvuv
+x2 avgub uv, uv1, uv2
+x2 mergebw yuy2, y, uv
+
+
+.function video_orc_convert_Y444_UYVY
+.flags 2d
+.dest 4 uyvy guint8
+.source 2 y guint8
+.source 2 u guint8
+.source 2 v guint8
+.temp 2 uv
+.temp 4 uvuv
+.temp 2 uv1
+.temp 2 uv2
+
+x2 mergebw uvuv, u, v
+splitlw uv1, uv2, uvuv
+x2 avgub uv, uv1, uv2
+x2 mergebw uyvy, uv, y
+
+
+.function video_orc_convert_Y444_AYUV
+.flags 2d
+.dest 4 ayuv guint8
+.source 1 yy guint8
+.source 1 u guint8
+.source 1 v guint8
+.const 1 c255 255
+.temp 2 uv
+.temp 2 ay
+
+mergebw uv, u, v
+mergebw ay, c255, yy
+mergewl ayuv, ay, uv
+
+
+
+.function video_orc_convert_AYUV_ARGB
+.flags 2d
+.dest 4 argb guint8
+.source 4 ayuv guint8
+.param 2 p1
+.param 2 p2
+.param 2 p3
+.param 2 p4
+.param 2 p5
+.temp 1 a
+.temp 1 y
+.temp 1 u
+.temp 1 v
+.temp 2 wy
+.temp 2 wu
+.temp 2 wv
+.temp 2 wr
+.temp 2 wg
+.temp 2 wb
+.temp 1 r
+.temp 1 g
+.temp 1 b
+.temp 4 x
+.const 1 c128 128
+
+x4 subb x, ayuv, c128 
+splitlw wv, wy, x
+splitwb y, a, wy
+splitwb v, u, wv
+
+splatbw wy, y
+splatbw wu, u
+splatbw wv, v
+
+mulhsw wy, wy, p1
+
+mulhsw wr, wv, p2
+addssw wr, wy, wr
+
+mulhsw wb, wu, p3
+addssw wb, wy, wb
+
+mulhsw wg, wu, p4
+addssw wg, wy, wg
+mulhsw wy, wv, p5
+addssw wg, wg, wy
+
+convssswb r, wr
+convssswb g, wg
+convssswb b, wb
+
+mergebw wr, a, r
+mergebw wb, g, b
+mergewl x, wr, wb
+x4 addb argb, x, c128
+
+.function video_orc_convert_AYUV_BGRA
+.flags 2d
+.dest 4 bgra guint8
+.source 4 ayuv guint8
+.param 2 p1
+.param 2 p2
+.param 2 p3
+.param 2 p4
+.param 2 p5
+.temp 1 a
+.temp 1 y
+.temp 1 u
+.temp 1 v
+.temp 2 wy
+.temp 2 wu
+.temp 2 wv
+.temp 2 wr
+.temp 2 wg
+.temp 2 wb
+.temp 1 r
+.temp 1 g
+.temp 1 b
+.temp 4 x
+.const 1 c128 128
+
+x4 subb x, ayuv, c128 
+splitlw wv, wy, x
+splitwb y, a, wy
+splitwb v, u, wv
+
+splatbw wy, y
+splatbw wu, u
+splatbw wv, v
+
+mulhsw wy, wy, p1
+
+mulhsw wr, wv, p2
+addssw wr, wy, wr
+
+mulhsw wb, wu, p3
+addssw wb, wy, wb
+
+mulhsw wg, wu, p4
+addssw wg, wy, wg
+mulhsw wy, wv, p5
+addssw wg, wg, wy
+
+convssswb r, wr
+convssswb g, wg
+convssswb b, wb
+
+mergebw wb, b, g
+mergebw wr, r, a
+mergewl x, wb, wr
+x4 addb bgra, x, c128
+
+
+.function video_orc_convert_AYUV_ABGR
+.flags 2d
+.dest 4 argb guint8
+.source 4 ayuv guint8
+.param 2 p1
+.param 2 p2
+.param 2 p3
+.param 2 p4
+.param 2 p5
+.temp 1 a
+.temp 1 y
+.temp 1 u
+.temp 1 v
+.temp 2 wy
+.temp 2 wu
+.temp 2 wv
+.temp 2 wr
+.temp 2 wg
+.temp 2 wb
+.temp 1 r
+.temp 1 g
+.temp 1 b
+.temp 4 x
+.const 1 c128 128
+
+x4 subb x, ayuv, c128 
+splitlw wv, wy, x
+splitwb y, a, wy
+splitwb v, u, wv
+
+splatbw wy, y
+splatbw wu, u
+splatbw wv, v
+
+mulhsw wy, wy, p1
+
+mulhsw wr, wv, p2
+addssw wr, wy, wr
+
+mulhsw wb, wu, p3
+addssw wb, wy, wb
+
+mulhsw wg, wu, p4
+addssw wg, wy, wg
+mulhsw wy, wv, p5
+addssw wg, wg, wy
+
+convssswb r, wr
+convssswb g, wg
+convssswb b, wb
+
+mergebw wb, a, b
+mergebw wr, g, r
+mergewl x, wb, wr
+x4 addb argb, x, c128
+
+.function video_orc_convert_AYUV_RGBA
+.flags 2d
+.dest 4 argb guint8
+.source 4 ayuv guint8
+.param 2 p1
+.param 2 p2
+.param 2 p3
+.param 2 p4
+.param 2 p5
+.temp 1 a
+.temp 1 y
+.temp 1 u
+.temp 1 v
+.temp 2 wy
+.temp 2 wu
+.temp 2 wv
+.temp 2 wr
+.temp 2 wg
+.temp 2 wb
+.temp 1 r
+.temp 1 g
+.temp 1 b
+.temp 4 x
+.const 1 c128 128
+
+x4 subb x, ayuv, c128 
+splitlw wv, wy, x
+splitwb y, a, wy
+splitwb v, u, wv
+
+splatbw wy, y
+splatbw wu, u
+splatbw wv, v
+
+mulhsw wy, wy, p1
+
+mulhsw wr, wv, p2
+addssw wr, wy, wr
+
+mulhsw wb, wu, p3
+addssw wb, wy, wb
+
+mulhsw wg, wu, p4
+addssw wg, wy, wg
+mulhsw wy, wv, p5
+addssw wg, wg, wy
+
+convssswb r, wr
+convssswb g, wg
+convssswb b, wb
+
+mergebw wr, r, g
+mergebw wb, b, a
+mergewl x, wr, wb
+x4 addb argb, x, c128
+
+
+
+.function video_orc_convert_I420_BGRA
+.dest 4 argb guint8
+.source 1 y guint8
+.source 1 u guint8
+.source 1 v guint8
+.param 2 p1
+.param 2 p2
+.param 2 p3
+.param 2 p4
+.param 2 p5
+.temp 2 wy
+.temp 2 wu
+.temp 2 wv
+.temp 2 wr
+.temp 2 wg
+.temp 2 wb
+.temp 1 r
+.temp 1 g
+.temp 1 b
+.temp 4 x
+.const 1 c128 128
+
+subb r, y, c128
+splatbw wy, r
+loadupdb r, u
+subb r, r, c128
+splatbw wu, r
+loadupdb r, v
+subb r, r, c128
+splatbw wv, r
+
+mulhsw wy, wy, p1
+
+mulhsw wr, wv, p2
+addssw wr, wy, wr
+
+mulhsw wb, wu, p3
+addssw wb, wy, wb
+
+mulhsw wg, wu, p4
+addssw wg, wy, wg
+mulhsw wy, wv, p5
+addssw wg, wg, wy
+
+convssswb r, wr
+convssswb g, wg
+convssswb b, wb
+
+mergebw wb, b, g
+mergebw wr, r, 127
+mergewl x, wb, wr
+x4 addb argb, x, c128
+
index 0158be0..803a12a 100644 (file)
@@ -29,6 +29,7 @@ typedef struct _GstVideoAlignment GstVideoAlignment;
 #include <gst/video/video-info.h>
 #include <gst/video/video-frame.h>
 #include <gst/video/video-enumtypes.h>
+#include <gst/video/video-convertor.h>
 
 G_BEGIN_DECLS
 
index aed82d4..aa449dc 100644 (file)
@@ -1,24 +1,19 @@
 plugin_LTLIBRARIES = libgstvideoconvert.la
 
-ORC_SOURCE=gstvideoconvertorc
-include $(top_srcdir)/common/orc.mak
-
-libgstvideoconvert_la_SOURCES = gstvideoconvert.c videoconvert.c gstcms.c
+libgstvideoconvert_la_SOURCES = gstvideoconvert.c
 nodist_libgstvideoconvert_la_SOURCES = $(ORC_NODIST_SOURCES)
 libgstvideoconvert_la_CFLAGS = \
        $(GST_PLUGINS_BASE_CFLAGS) \
-       $(GST_CFLAGS) \
-       $(ORC_CFLAGS)
+       $(GST_CFLAGS)
 libgstvideoconvert_la_LIBADD = \
        $(top_builddir)/gst-libs/gst/video/libgstvideo-$(GST_API_VERSION).la \
        $(GST_BASE_LIBS) \
        $(GST_LIBS) \
-       $(ORC_LIBS) \
        $(LIBM)
 libgstvideoconvert_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstvideoconvert_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
-noinst_HEADERS = gstvideoconvert.h videoconvert.h gstcms.h
+noinst_HEADERS = gstvideoconvert.h
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
        androgenizer \
diff --git a/gst/videoconvert/gstcms.c b/gst/videoconvert/gstcms.c
deleted file mode 100644 (file)
index 96a9f70..0000000
+++ /dev/null
@@ -1,573 +0,0 @@
-/* GStreamer
- * Copyright (C) 2008 David Schleef <ds@entropywave.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <gst/gst.h>
-#include <gst/math-compat.h>
-#include "gstcms.h"
-
-#include <stdio.h>
-#include <string.h>
-#include <math.h>
-
-
-/* our simple CMS */
-
-void
-color_xyY_to_XYZ (Color * c)
-{
-  if (c->v[1] == 0) {
-    c->v[0] = 0;
-    c->v[1] = 0;
-    c->v[2] = 0;
-  } else {
-    double X, Y, Z;
-    X = c->v[0] * c->v[2] / c->v[1];
-    Y = c->v[2];
-    Z = (1.0 - c->v[0] - c->v[1]) * c->v[2] / c->v[1];
-    c->v[0] = X;
-    c->v[1] = Y;
-    c->v[2] = Z;
-  }
-}
-
-void
-color_XYZ_to_xyY (Color * c)
-{
-  double d;
-  d = c->v[0] + c->v[1] + c->v[2];
-  if (d == 0) {
-    c->v[0] = 0.3128;
-    c->v[1] = 0.3290;
-    c->v[2] = 0;
-  } else {
-    double x, y, Y;
-    x = c->v[0] / d;
-    y = c->v[1] / d;
-    Y = c->v[1];
-    c->v[0] = x;
-    c->v[1] = y;
-    c->v[2] = Y;
-  }
-}
-
-void
-color_set (Color * c, double x, double y, double z)
-{
-  c->v[0] = x;
-  c->v[1] = y;
-  c->v[2] = z;
-}
-
-void
-color_matrix_set_identity (ColorMatrix * m)
-{
-  int i, j;
-
-  for (i = 0; i < 4; i++) {
-    for (j = 0; j < 4; j++) {
-      m->m[i][j] = (i == j);
-    }
-  }
-}
-
-/* Prettyprint a 4x4 matrix @m@ */
-void
-color_matrix_dump (ColorMatrix * m)
-{
-  int i, j;
-
-  printf ("[\n");
-  for (i = 0; i < 4; i++) {
-    printf ("  ");
-    for (j = 0; j < 4; j++) {
-      printf (" %8.5g", m->m[i][j]);
-    }
-    printf ("\n");
-  }
-  printf ("]\n");
-}
-
-/* Perform 4x4 matrix multiplication:
- *  - @dst@ = @a@ * @b@
- *  - @dst@ may be a pointer to @a@ andor @b@
- */
-void
-color_matrix_multiply (ColorMatrix * dst, ColorMatrix * a, ColorMatrix * b)
-{
-  ColorMatrix tmp;
-  int i, j, k;
-
-  for (i = 0; i < 4; i++) {
-    for (j = 0; j < 4; j++) {
-      double x = 0;
-      for (k = 0; k < 4; k++) {
-        x += a->m[i][k] * b->m[k][j];
-      }
-      tmp.m[i][j] = x;
-    }
-  }
-
-  memcpy (dst, &tmp, sizeof (ColorMatrix));
-}
-
-void
-color_matrix_apply (ColorMatrix * m, Color * dest, Color * src)
-{
-  int i;
-  Color tmp;
-
-  for (i = 0; i < 3; i++) {
-    double x = 0;
-    x += m->m[i][0] * src->v[0];
-    x += m->m[i][1] * src->v[1];
-    x += m->m[i][2] * src->v[2];
-    x += m->m[i][3];
-    tmp.v[i] = x;
-  }
-  memcpy (dest, &tmp, sizeof (tmp));
-}
-
-void
-color_matrix_offset_components (ColorMatrix * m, double a1, double a2,
-    double a3)
-{
-  ColorMatrix a;
-
-  color_matrix_set_identity (&a);
-  a.m[0][3] = a1;
-  a.m[1][3] = a2;
-  a.m[2][3] = a3;
-  color_matrix_multiply (m, &a, m);
-}
-
-void
-color_matrix_scale_components (ColorMatrix * m, double a1, double a2, double a3)
-{
-  ColorMatrix a;
-
-  color_matrix_set_identity (&a);
-  a.m[0][0] = a1;
-  a.m[1][1] = a2;
-  a.m[2][2] = a3;
-  color_matrix_multiply (m, &a, m);
-}
-
-void
-color_matrix_YCbCr_to_RGB (ColorMatrix * m, double Kr, double Kb)
-{
-  double Kg = 1.0 - Kr - Kb;
-  ColorMatrix k = {
-    {
-          {1., 0., 2 * (1 - Kr), 0.},
-          {1., -2 * Kb * (1 - Kb) / Kg, -2 * Kr * (1 - Kr) / Kg, 0.},
-          {1., 2 * (1 - Kb), 0., 0.},
-          {0., 0., 0., 1.},
-        }
-  };
-
-  color_matrix_multiply (m, &k, m);
-}
-
-void
-color_matrix_RGB_to_YCbCr (ColorMatrix * m, double Kr, double Kb)
-{
-  double Kg = 1.0 - Kr - Kb;
-  ColorMatrix k;
-  double x;
-
-  k.m[0][0] = Kr;
-  k.m[0][1] = Kg;
-  k.m[0][2] = Kb;
-  k.m[0][3] = 0;
-
-  x = 1 / (2 * (1 - Kb));
-  k.m[1][0] = -x * Kr;
-  k.m[1][1] = -x * Kg;
-  k.m[1][2] = x * (1 - Kb);
-  k.m[1][3] = 0;
-
-  x = 1 / (2 * (1 - Kr));
-  k.m[2][0] = x * (1 - Kr);
-  k.m[2][1] = -x * Kg;
-  k.m[2][2] = -x * Kb;
-  k.m[2][3] = 0;
-
-  k.m[3][0] = 0;
-  k.m[3][1] = 0;
-  k.m[3][2] = 0;
-  k.m[3][3] = 1;
-
-  color_matrix_multiply (m, &k, m);
-}
-
-void
-color_matrix_build_yuv_to_rgb_601 (ColorMatrix * dst)
-{
-  /*
-   * At this point, everything is in YCbCr
-   * All components are in the range [0,255]
-   */
-  color_matrix_set_identity (dst);
-
-  /* offset required to get input video black to (0.,0.,0.) */
-  color_matrix_offset_components (dst, -16, -128, -128);
-
-  /* scale required to get input video black to (0.,0.,0.) */
-  color_matrix_scale_components (dst, (1 / 219.0), (1 / 224.0), (1 / 224.0));
-
-  /* colour matrix, YCbCr -> RGB */
-  /* Requires Y in [0,1.0], Cb&Cr in [-0.5,0.5] */
-  color_matrix_YCbCr_to_RGB (dst, 0.2990, 0.1140);      /* SD */
-
-  /*
-   * We are now in RGB space
-   */
-
-#if 0
-  /* scale to output range. */
-  color_matrix_scale_components (dst, 255.0, 255.0, 255.0);
-#endif
-}
-
-void
-color_matrix_build_bt709_to_bt601 (ColorMatrix * dst)
-{
-  color_matrix_set_identity (dst);
-
-  /* offset required to get input video black to (0.,0.,0.) */
-  color_matrix_offset_components (dst, -16, -128, -128);
-
-  /* scale required to get input video black to (0.,0.,0.) */
-  color_matrix_scale_components (dst, (1 / 219.0), (1 / 224.0), (1 / 224.0));
-
-  /* colour matrix, YCbCr -> RGB */
-  /* Requires Y in [0,1.0], Cb&Cr in [-0.5,0.5] */
-  color_matrix_YCbCr_to_RGB (dst, 0.2126, 0.0722);      /* HD */
-
-  color_matrix_RGB_to_YCbCr (dst, 0.2990, 0.1140);      /* SD */
-
-  color_matrix_scale_components (dst, 219.0, 224.0, 224.0);
-
-  color_matrix_offset_components (dst, 16, 128, 128);
-}
-
-void
-color_matrix_build_rgb_to_yuv_601 (ColorMatrix * dst)
-{
-  color_matrix_set_identity (dst);
-
-  color_matrix_RGB_to_YCbCr (dst, 0.2990, 0.1140);      /* SD */
-
-  color_matrix_scale_components (dst, 219.0, 224.0, 224.0);
-
-  color_matrix_offset_components (dst, 16, 128, 128);
-
-  {
-    Color c;
-    int i;
-    for (i = 7; i >= 0; i--) {
-      color_set (&c, (i & 2) ? 0.75 : 0.0, (i & 4) ? 0.75 : 0.0,
-          (i & 1) ? 0.75 : 0.0);
-      color_matrix_apply (dst, &c, &c);
-      g_print ("  { %g, %g, %g },\n", rint (c.v[0]), rint (c.v[1]),
-          rint (c.v[2]));
-    }
-    color_set (&c, -0.075, -0.075, -0.075);
-    color_matrix_apply (dst, &c, &c);
-    g_print ("  { %g, %g, %g },\n", rint (c.v[0]), rint (c.v[1]),
-        rint (c.v[2]));
-    color_set (&c, 0.075, 0.075, 0.075);
-    color_matrix_apply (dst, &c, &c);
-    g_print ("  { %g, %g, %g },\n", rint (c.v[0]), rint (c.v[1]),
-        rint (c.v[2]));
-  }
-}
-
-void
-color_matrix_invert (ColorMatrix * m)
-{
-  ColorMatrix tmp;
-  int i, j;
-  double det;
-
-  color_matrix_set_identity (&tmp);
-  for (j = 0; j < 3; j++) {
-    for (i = 0; i < 3; i++) {
-      tmp.m[j][i] =
-          m->m[(i + 1) % 3][(j + 1) % 3] * m->m[(i + 2) % 3][(j + 2) % 3] -
-          m->m[(i + 1) % 3][(j + 2) % 3] * m->m[(i + 2) % 3][(j + 1) % 3];
-    }
-  }
-  det =
-      tmp.m[0][0] * m->m[0][0] + tmp.m[0][1] * m->m[1][0] +
-      tmp.m[0][2] * m->m[2][0];
-  for (j = 0; j < 3; j++) {
-    for (i = 0; i < 3; i++) {
-      tmp.m[i][j] /= det;
-    }
-  }
-  memcpy (m, &tmp, sizeof (tmp));
-}
-
-void
-color_matrix_copy (ColorMatrix * dest, ColorMatrix * src)
-{
-  memcpy (dest, src, sizeof (ColorMatrix));
-}
-
-void
-color_matrix_transpose (ColorMatrix * m)
-{
-  int i, j;
-  ColorMatrix tmp;
-
-  color_matrix_set_identity (&tmp);
-  for (i = 0; i < 3; i++) {
-    for (j = 0; j < 3; j++) {
-      tmp.m[i][j] = m->m[j][i];
-    }
-  }
-  memcpy (m, &tmp, sizeof (ColorMatrix));
-}
-
-void
-color_matrix_build_XYZ (ColorMatrix * dst,
-    double rx, double ry,
-    double gx, double gy, double bx, double by, double wx, double wy)
-{
-  Color r, g, b, w, scale;
-  ColorMatrix m;
-
-  color_set (&r, rx, ry, 1.0);
-  color_xyY_to_XYZ (&r);
-  color_set (&g, gx, gy, 1.0);
-  color_xyY_to_XYZ (&g);
-  color_set (&b, bx, by, 1.0);
-  color_xyY_to_XYZ (&b);
-  color_set (&w, wx, wy, 1.0);
-  color_xyY_to_XYZ (&w);
-
-  color_matrix_set_identity (dst);
-
-  dst->m[0][0] = r.v[0];
-  dst->m[0][1] = r.v[1];
-  dst->m[0][2] = r.v[2];
-  dst->m[1][0] = g.v[0];
-  dst->m[1][1] = g.v[1];
-  dst->m[1][2] = g.v[2];
-  dst->m[2][0] = b.v[0];
-  dst->m[2][1] = b.v[1];
-  dst->m[2][2] = b.v[2];
-
-  color_matrix_dump (dst);
-  color_matrix_copy (&m, dst);
-  color_matrix_invert (&m);
-  color_matrix_dump (&m);
-
-  color_matrix_transpose (&m);
-  color_matrix_apply (&m, &scale, &w);
-  g_print ("%g %g %g\n", scale.v[0], scale.v[1], scale.v[2]);
-
-  dst->m[0][0] = r.v[0] * scale.v[0];
-  dst->m[0][1] = r.v[1] * scale.v[0];
-  dst->m[0][2] = r.v[2] * scale.v[0];
-  dst->m[1][0] = g.v[0] * scale.v[1];
-  dst->m[1][1] = g.v[1] * scale.v[1];
-  dst->m[1][2] = g.v[2] * scale.v[1];
-  dst->m[2][0] = b.v[0] * scale.v[2];
-  dst->m[2][1] = b.v[1] * scale.v[2];
-  dst->m[2][2] = b.v[2] * scale.v[2];
-
-  color_matrix_transpose (dst);
-  color_matrix_dump (dst);
-
-  color_set (&scale, 1, 1, 1);
-  color_matrix_apply (dst, &scale, &scale);
-  color_XYZ_to_xyY (&scale);
-  g_print ("white %g %g %g\n", scale.v[0], scale.v[1], scale.v[2]);
-
-}
-
-void
-color_matrix_build_rgb_to_XYZ_601 (ColorMatrix * dst)
-{
-  /* SMPTE C primaries, SMPTE 170M-2004 */
-  color_matrix_build_XYZ (dst,
-      0.630, 0.340, 0.310, 0.595, 0.155, 0.070, 0.3127, 0.3290);
-#if 0
-  /* NTSC 1953 primaries, SMPTE 170M-2004 */
-  color_matrix_build_XYZ (dst,
-      0.67, 0.33, 0.21, 0.71, 0.14, 0.08, 0.3127, 0.3290);
-#endif
-}
-
-void
-color_matrix_build_XYZ_to_rgb_709 (ColorMatrix * dst)
-{
-  /* Rec. ITU-R BT.709-5 */
-  color_matrix_build_XYZ (dst,
-      0.640, 0.330, 0.300, 0.600, 0.150, 0.060, 0.3127, 0.3290);
-}
-
-void
-color_matrix_build_XYZ_to_rgb_dell (ColorMatrix * dst)
-{
-  /* Dell monitor */
-#if 1
-  color_matrix_build_XYZ (dst,
-      0.662, 0.329, 0.205, 0.683, 0.146, 0.077, 0.3135, 0.3290);
-#endif
-#if 0
-  color_matrix_build_XYZ (dst,
-      0.630, 0.340, 0.310, 0.595, 0.155, 0.070, 0.3127, 0.3290);
-#endif
-  color_matrix_invert (dst);
-}
-
-void
-color_transfer_function_apply (Color * dest, Color * src)
-{
-  int i;
-
-  for (i = 0; i < 3; i++) {
-    if (src->v[i] < 0.0812) {
-      dest->v[i] = src->v[i] / 4.500;
-    } else {
-      dest->v[i] = pow (src->v[i] + 0.099, 1 / 0.4500);
-    }
-  }
-}
-
-void
-color_transfer_function_unapply (Color * dest, Color * src)
-{
-  int i;
-
-  for (i = 0; i < 3; i++) {
-    if (src->v[i] < 0.0812 / 4.500) {
-      dest->v[i] = src->v[i] * 4.500;
-    } else {
-      dest->v[i] = pow (src->v[i], 0.4500) - 0.099;
-    }
-  }
-}
-
-void
-color_gamut_clamp (Color * dest, Color * src)
-{
-  dest->v[0] = CLAMP (src->v[0], 0.0, 1.0);
-  dest->v[1] = CLAMP (src->v[1], 0.0, 1.0);
-  dest->v[2] = CLAMP (src->v[2], 0.0, 1.0);
-}
-
-#if 0
-static guint8 *
-get_color_transform_table (void)
-{
-  static guint8 *color_transform_table = NULL;
-
-#if 1
-  if (!color_transform_table) {
-    ColorMatrix bt601_to_rgb;
-    ColorMatrix bt601_to_yuv;
-    ColorMatrix bt601_rgb_to_XYZ;
-    ColorMatrix dell_XYZ_to_rgb;
-    guint8 *table_y;
-    guint8 *table_u;
-    guint8 *table_v;
-    int y, u, v;
-
-    color_matrix_build_yuv_to_rgb_601 (&bt601_to_rgb);
-    color_matrix_build_rgb_to_yuv_601 (&bt601_to_yuv);
-    color_matrix_build_rgb_to_XYZ_601 (&bt601_rgb_to_XYZ);
-    color_matrix_build_XYZ_to_rgb_dell (&dell_XYZ_to_rgb);
-
-    color_transform_table = g_malloc (0x1000000 * 3);
-
-    table_y = COG_OFFSET (color_transform_table, 0 * 0x1000000);
-    table_u = COG_OFFSET (color_transform_table, 1 * 0x1000000);
-    table_v = COG_OFFSET (color_transform_table, 2 * 0x1000000);
-
-    for (y = 0; y < 256; y++) {
-      for (u = 0; u < 256; u++) {
-        for (v = 0; v < 256; v++) {
-          Color c;
-
-          c.v[0] = y;
-          c.v[1] = u;
-          c.v[2] = v;
-          color_matrix_apply (&bt601_to_rgb, &c, &c);
-          color_gamut_clamp (&c, &c);
-          color_transfer_function_apply (&c, &c);
-          color_matrix_apply (&bt601_rgb_to_XYZ, &c, &c);
-          color_matrix_apply (&dell_XYZ_to_rgb, &c, &c);
-          color_transfer_function_unapply (&c, &c);
-          color_gamut_clamp (&c, &c);
-          color_matrix_apply (&bt601_to_yuv, &c, &c);
-
-          table_y[(y << 16) | (u << 8) | (v)] = rint (c.v[0]);
-          table_u[(y << 16) | (u << 8) | (v)] = rint (c.v[1]);
-          table_v[(y << 16) | (u << 8) | (v)] = rint (c.v[2]);
-        }
-      }
-    }
-  }
-#endif
-#if 0
-  if (!color_transform_table) {
-    ColorMatrix bt709_to_bt601;
-    guint8 *table_y;
-    guint8 *table_u;
-    guint8 *table_v;
-    int y, u, v;
-
-    color_matrix_build_bt709_to_bt601 (&bt709_to_bt601);
-
-    color_transform_table = g_malloc (0x1000000 * 3);
-
-    table_y = COG_OFFSET (color_transform_table, 0 * 0x1000000);
-    table_u = COG_OFFSET (color_transform_table, 1 * 0x1000000);
-    table_v = COG_OFFSET (color_transform_table, 2 * 0x1000000);
-
-    for (y = 0; y < 256; y++) {
-      for (u = 0; u < 256; u++) {
-        for (v = 0; v < 256; v++) {
-          Color c;
-
-          c.v[0] = y;
-          c.v[1] = u;
-          c.v[2] = v;
-          color_matrix_apply (&bt709_to_bt601, &c, &c);
-
-          table_y[(y << 16) | (u << 8) | (v)] = rint (c.v[0]);
-          table_u[(y << 16) | (u << 8) | (v)] = rint (c.v[1]);
-          table_v[(y << 16) | (u << 8) | (v)] = rint (c.v[2]);
-        }
-      }
-    }
-  }
-#endif
-
-  return color_transform_table;
-}
-#endif
diff --git a/gst/videoconvert/gstcms.h b/gst/videoconvert/gstcms.h
deleted file mode 100644 (file)
index f926a44..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-/* GStreamer
- * Copyright (C) 2008 David Schleef <ds@entropywave.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef _GST_CMS_H_
-#define _GST_CMS_H_
-
-#include <gst/gst.h>
-
-G_BEGIN_DECLS
-
-typedef struct _Color Color;
-typedef struct _ColorMatrix ColorMatrix;
-
-struct _Color
-{
-  double v[3];
-};
-
-struct _ColorMatrix
-{
-  double m[4][4];
-};
-
-void color_xyY_to_XYZ (Color * c);
-void color_XYZ_to_xyY (Color * c);
-void color_set (Color * c, double x, double y, double z);
-void color_matrix_set_identity (ColorMatrix * m);
-void color_matrix_dump (ColorMatrix * m);
-void color_matrix_multiply (ColorMatrix * dst, ColorMatrix * a, ColorMatrix * b);
-void color_matrix_apply (ColorMatrix * m, Color * dest, Color * src);
-void color_matrix_offset_components (ColorMatrix * m, double a1, double a2,
-    double a3);
-void color_matrix_scale_components (ColorMatrix * m, double a1, double a2, double a3);
-void color_matrix_YCbCr_to_RGB (ColorMatrix * m, double Kr, double Kb);
-void color_matrix_RGB_to_YCbCr (ColorMatrix * m, double Kr, double Kb);
-void color_matrix_build_yuv_to_rgb_601 (ColorMatrix * dst);
-void color_matrix_build_bt709_to_bt601 (ColorMatrix * dst);
-void color_matrix_build_rgb_to_yuv_601 (ColorMatrix * dst);
-void color_matrix_invert (ColorMatrix * m);
-void color_matrix_copy (ColorMatrix * dest, ColorMatrix * src);
-void color_matrix_transpose (ColorMatrix * m);
-void color_matrix_build_XYZ (ColorMatrix * dst,
-    double rx, double ry,
-    double gx, double gy, double bx, double by, double wx, double wy);
-void color_matrix_build_rgb_to_XYZ_601 (ColorMatrix * dst);
-void color_matrix_build_XYZ_to_rgb_709 (ColorMatrix * dst);
-void color_matrix_build_XYZ_to_rgb_dell (ColorMatrix * dst);
-void color_transfer_function_apply (Color * dest, Color * src);
-void color_transfer_function_unapply (Color * dest, Color * src);
-void color_gamut_clamp (Color * dest, Color * src);
-
-G_END_DECLS
-
-#endif
-
index 34e3535..3bca13a 100644 (file)
@@ -90,24 +90,6 @@ static gboolean gst_video_convert_set_info (GstVideoFilter * filter,
 static GstFlowReturn gst_video_convert_transform_frame (GstVideoFilter * filter,
     GstVideoFrame * in_frame, GstVideoFrame * out_frame);
 
-static GType
-dither_method_get_type (void)
-{
-  static GType gtype = 0;
-
-  if (gtype == 0) {
-    static const GEnumValue values[] = {
-      {DITHER_NONE, "No dithering (default)", "none"},
-      {DITHER_VERTERR, "Vertical error propogation", "verterr"},
-      {DITHER_HALFTONE, "Half-tone", "halftone"},
-      {0, NULL, NULL}
-    };
-
-    gtype = g_enum_register_static ("GstVideoConvertDitherMethod", values);
-  }
-  return gtype;
-}
-
 /* copies the given caps */
 static GstCaps *
 gst_video_convert_caps_remove_format_info (GstCaps * caps)
@@ -419,7 +401,7 @@ gst_video_convert_set_info (GstVideoFilter * filter,
   space = GST_VIDEO_CONVERT_CAST (filter);
 
   if (space->convert) {
-    videoconvert_convert_free (space->convert);
+    gst_video_convertor_free (space->convert);
     space->convert = NULL;
   }
 
@@ -436,7 +418,10 @@ gst_video_convert_set_info (GstVideoFilter * filter,
   if (in_info->interlace_mode != out_info->interlace_mode)
     goto format_mismatch;
 
-  space->convert = videoconvert_convert_new (in_info, out_info);
+
+  space->convert = gst_video_convertor_new (in_info, out_info,
+      gst_structure_new ("GstVideoConvertConfig",
+          "dither", GST_TYPE_VIDEO_DITHER_METHOD, space->dither, NULL));
   if (space->convert == NULL)
     goto no_convert;
 
@@ -464,7 +449,7 @@ gst_video_convert_finalize (GObject * obj)
   GstVideoConvert *space = GST_VIDEO_CONVERT (obj);
 
   if (space->convert) {
-    videoconvert_convert_free (space->convert);
+    gst_video_convertor_free (space->convert);
   }
 
   G_OBJECT_CLASS (parent_class)->finalize (obj);
@@ -511,7 +496,7 @@ gst_video_convert_class_init (GstVideoConvertClass * klass)
 
   g_object_class_install_property (gobject_class, PROP_DITHER,
       g_param_spec_enum ("dither", "Dither", "Apply dithering while converting",
-          dither_method_get_type (), DITHER_NONE,
+          gst_video_dither_method_get_type (), 0,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 }
 
@@ -569,9 +554,7 @@ gst_video_convert_transform_frame (GstVideoFilter * filter,
       GST_VIDEO_INFO_NAME (&filter->in_info),
       GST_VIDEO_INFO_NAME (&filter->out_info));
 
-  videoconvert_convert_set_dither (space->convert, space->dither);
-
-  videoconvert_convert_convert (space->convert, out_frame, in_frame);
+  gst_video_convertor_frame (space->convert, out_frame, in_frame);
 
   return GST_FLOW_OK;
 }
index 00f588c..b1834f0 100644 (file)
@@ -25,7 +25,6 @@
 #include <gst/gst.h>
 #include <gst/video/video.h>
 #include <gst/video/gstvideofilter.h>
-#include "videoconvert.h"
 
 G_BEGIN_DECLS
 
@@ -47,8 +46,8 @@ typedef struct _GstVideoConvertClass GstVideoConvertClass;
 struct _GstVideoConvert {
   GstVideoFilter element;
 
-  VideoConvert *convert;
-  gboolean dither;
+  GstVideoConvertor *convert;
+  GstVideoDitherMethod dither;
 };
 
 struct _GstVideoConvertClass
diff --git a/gst/videoconvert/gstvideoconvertorc-dist.c b/gst/videoconvert/gstvideoconvertorc-dist.c
deleted file mode 100644 (file)
index 362f527..0000000
+++ /dev/null
@@ -1,8958 +0,0 @@
-
-/* autogenerated from gstvideoconvertorc.orc */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include <glib.h>
-
-#ifndef _ORC_INTEGER_TYPEDEFS_
-#define _ORC_INTEGER_TYPEDEFS_
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-#include <stdint.h>
-typedef int8_t orc_int8;
-typedef int16_t orc_int16;
-typedef int32_t orc_int32;
-typedef int64_t orc_int64;
-typedef uint8_t orc_uint8;
-typedef uint16_t orc_uint16;
-typedef uint32_t orc_uint32;
-typedef uint64_t orc_uint64;
-#define ORC_UINT64_C(x) UINT64_C(x)
-#elif defined(_MSC_VER)
-typedef signed __int8 orc_int8;
-typedef signed __int16 orc_int16;
-typedef signed __int32 orc_int32;
-typedef signed __int64 orc_int64;
-typedef unsigned __int8 orc_uint8;
-typedef unsigned __int16 orc_uint16;
-typedef unsigned __int32 orc_uint32;
-typedef unsigned __int64 orc_uint64;
-#define ORC_UINT64_C(x) (x##Ui64)
-#define inline __inline
-#else
-#include <limits.h>
-typedef signed char orc_int8;
-typedef short orc_int16;
-typedef int orc_int32;
-typedef unsigned char orc_uint8;
-typedef unsigned short orc_uint16;
-typedef unsigned int orc_uint32;
-#if INT_MAX == LONG_MAX
-typedef long long orc_int64;
-typedef unsigned long long orc_uint64;
-#define ORC_UINT64_C(x) (x##ULL)
-#else
-typedef long orc_int64;
-typedef unsigned long orc_uint64;
-#define ORC_UINT64_C(x) (x##UL)
-#endif
-#endif
-typedef union
-{
-  orc_int16 i;
-  orc_int8 x2[2];
-} orc_union16;
-typedef union
-{
-  orc_int32 i;
-  float f;
-  orc_int16 x2[2];
-  orc_int8 x4[4];
-} orc_union32;
-typedef union
-{
-  orc_int64 i;
-  double f;
-  orc_int32 x2[2];
-  float x2f[2];
-  orc_int16 x4[4];
-} orc_union64;
-#endif
-#ifndef ORC_RESTRICT
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-#define ORC_RESTRICT restrict
-#elif defined(__GNUC__) && __GNUC__ >= 4
-#define ORC_RESTRICT __restrict__
-#else
-#define ORC_RESTRICT
-#endif
-#endif
-
-#ifndef ORC_INTERNAL
-#if defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)
-#define ORC_INTERNAL __attribute__((visibility("hidden")))
-#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
-#define ORC_INTERNAL __hidden
-#elif defined (__GNUC__)
-#define ORC_INTERNAL __attribute__((visibility("hidden")))
-#else
-#define ORC_INTERNAL
-#endif
-#endif
-
-
-#ifndef DISABLE_ORC
-#include <orc/orc.h>
-#endif
-void video_convert_orc_memcpy_2d (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_convert_I420_UYVY (guint8 * ORC_RESTRICT d1,
-    guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
-    const guint8 * ORC_RESTRICT s4, int n);
-void video_convert_orc_convert_I420_YUY2 (guint8 * ORC_RESTRICT d1,
-    guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
-    const guint8 * ORC_RESTRICT s4, int n);
-void video_convert_orc_convert_I420_AYUV (guint8 * ORC_RESTRICT d1,
-    guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
-    const guint8 * ORC_RESTRICT s4, int n);
-void video_convert_orc_convert_YUY2_I420 (guint8 * ORC_RESTRICT d1,
-    guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
-    guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, int n);
-void video_convert_orc_convert_UYVY_YUY2 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_planar_chroma_420_422 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_planar_chroma_420_444 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_planar_chroma_422_444 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_planar_chroma_444_422 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_planar_chroma_444_420 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m);
-void video_convert_orc_planar_chroma_422_420 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m);
-void video_convert_orc_convert_YUY2_AYUV (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_convert_UYVY_AYUV (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_convert_YUY2_Y42B (guint8 * ORC_RESTRICT d1,
-    int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
-    guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
-    int s1_stride, int n, int m);
-void video_convert_orc_convert_UYVY_Y42B (guint8 * ORC_RESTRICT d1,
-    int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
-    guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
-    int s1_stride, int n, int m);
-void video_convert_orc_convert_YUY2_Y444 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
-    guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
-    int s1_stride, int n, int m);
-void video_convert_orc_convert_UYVY_Y444 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
-    guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
-    int s1_stride, int n, int m);
-void video_convert_orc_convert_UYVY_I420 (guint8 * ORC_RESTRICT d1,
-    guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
-    guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, int n);
-void video_convert_orc_convert_AYUV_I420 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
-    guint8 * ORC_RESTRICT d3, int d3_stride, guint8 * ORC_RESTRICT d4,
-    int d4_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m);
-void video_convert_orc_convert_AYUV_YUY2 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_convert_AYUV_UYVY (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_convert_AYUV_Y42B (guint8 * ORC_RESTRICT d1,
-    int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
-    guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
-    int s1_stride, int n, int m);
-void video_convert_orc_convert_AYUV_Y444 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
-    guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
-    int s1_stride, int n, int m);
-void video_convert_orc_convert_Y42B_YUY2 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
-void video_convert_orc_convert_Y42B_UYVY (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
-void video_convert_orc_convert_Y42B_AYUV (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
-void video_convert_orc_convert_Y444_YUY2 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
-void video_convert_orc_convert_Y444_UYVY (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
-void video_convert_orc_convert_Y444_AYUV (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
-void video_convert_orc_convert_AYUV_ARGB (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1,
-    int p2, int p3, int p4, int p5, int n, int m);
-void video_convert_orc_convert_AYUV_BGRA (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1,
-    int p2, int p3, int p4, int p5, int n, int m);
-void video_convert_orc_convert_AYUV_ABGR (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1,
-    int p2, int p3, int p4, int p5, int n, int m);
-void video_convert_orc_convert_AYUV_RGBA (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1,
-    int p2, int p3, int p4, int p5, int n, int m);
-void video_convert_orc_convert_I420_BGRA (guint8 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
-    const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int p4, int p5,
-    int n);
-
-
-/* begin Orc C target preamble */
-#define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))
-#define ORC_ABS(a) ((a)<0 ? -(a) : (a))
-#define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))
-#define ORC_MAX(a,b) ((a)>(b) ? (a) : (b))
-#define ORC_SB_MAX 127
-#define ORC_SB_MIN (-1-ORC_SB_MAX)
-#define ORC_UB_MAX 255
-#define ORC_UB_MIN 0
-#define ORC_SW_MAX 32767
-#define ORC_SW_MIN (-1-ORC_SW_MAX)
-#define ORC_UW_MAX 65535
-#define ORC_UW_MIN 0
-#define ORC_SL_MAX 2147483647
-#define ORC_SL_MIN (-1-ORC_SL_MAX)
-#define ORC_UL_MAX 4294967295U
-#define ORC_UL_MIN 0
-#define ORC_CLAMP_SB(x) ORC_CLAMP(x,ORC_SB_MIN,ORC_SB_MAX)
-#define ORC_CLAMP_UB(x) ORC_CLAMP(x,ORC_UB_MIN,ORC_UB_MAX)
-#define ORC_CLAMP_SW(x) ORC_CLAMP(x,ORC_SW_MIN,ORC_SW_MAX)
-#define ORC_CLAMP_UW(x) ORC_CLAMP(x,ORC_UW_MIN,ORC_UW_MAX)
-#define ORC_CLAMP_SL(x) ORC_CLAMP(x,ORC_SL_MIN,ORC_SL_MAX)
-#define ORC_CLAMP_UL(x) ORC_CLAMP(x,ORC_UL_MIN,ORC_UL_MAX)
-#define ORC_SWAP_W(x) ((((x)&0xffU)<<8) | (((x)&0xff00U)>>8))
-#define ORC_SWAP_L(x) ((((x)&0xffU)<<24) | (((x)&0xff00U)<<8) | (((x)&0xff0000U)>>8) | (((x)&0xff000000U)>>24))
-#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))
-#define ORC_PTR_OFFSET(ptr,offset) ((void *)(((unsigned char *)(ptr)) + (offset)))
-#define ORC_DENORMAL(x) ((x) & ((((x)&0x7f800000) == 0) ? 0xff800000 : 0xffffffff))
-#define ORC_ISNAN(x) ((((x)&0x7f800000) == 0x7f800000) && (((x)&0x007fffff) != 0))
-#define ORC_DENORMAL_DOUBLE(x) ((x) & ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == 0) ? ORC_UINT64_C(0xfff0000000000000) : ORC_UINT64_C(0xffffffffffffffff)))
-#define ORC_ISNAN_DOUBLE(x) ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == ORC_UINT64_C(0x7ff0000000000000)) && (((x)&ORC_UINT64_C(0x000fffffffffffff)) != 0))
-#ifndef ORC_RESTRICT
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-#define ORC_RESTRICT restrict
-#elif defined(__GNUC__) && __GNUC__ >= 4
-#define ORC_RESTRICT __restrict__
-#else
-#define ORC_RESTRICT
-#endif
-#endif
-/* end Orc C target preamble */
-
-
-
-/* video_convert_orc_memcpy_2d */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_memcpy_2d (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_int8 *ORC_RESTRICT ptr0;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  orc_int8 var32;
-  orc_int8 var33;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var32 = ptr4[i];
-      /* 1: copyb */
-      var33 = var32;
-      /* 2: storeb */
-      ptr0[i] = var33;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_memcpy_2d (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_int8 *ORC_RESTRICT ptr0;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  orc_int8 var32;
-  orc_int8 var33;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var32 = ptr4[i];
-      /* 1: copyb */
-      var33 = var32;
-      /* 2: storeb */
-      ptr0[i] = var33;
-    }
-  }
-
-}
-
-void
-video_convert_orc_memcpy_2d (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 27, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 109, 101, 109, 99, 112, 121, 95, 50, 100, 11,
-        1, 1, 12, 1, 1, 42, 0, 4, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p, _backup_video_convert_orc_memcpy_2d);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_memcpy_2d");
-      orc_program_set_backup_function (p, _backup_video_convert_orc_memcpy_2d);
-      orc_program_add_destination (p, 1, "d1");
-      orc_program_add_source (p, 1, "s1");
-
-      orc_program_append_2 (p, "copyb", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_I420_UYVY */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_I420_UYVY (guint8 * ORC_RESTRICT d1,
-    guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
-    const guint8 * ORC_RESTRICT s4, int n)
-{
-  int i;
-  orc_union32 *ORC_RESTRICT ptr0;
-  orc_union32 *ORC_RESTRICT ptr1;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  const orc_union16 *ORC_RESTRICT ptr5;
-  const orc_int8 *ORC_RESTRICT ptr6;
-  const orc_int8 *ORC_RESTRICT ptr7;
-  orc_int8 var33;
-  orc_int8 var34;
-  orc_union16 var35;
-  orc_union32 var36;
-  orc_union16 var37;
-  orc_union32 var38;
-  orc_union16 var39;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr1 = (orc_union32 *) d2;
-  ptr4 = (orc_union16 *) s1;
-  ptr5 = (orc_union16 *) s2;
-  ptr6 = (orc_int8 *) s3;
-  ptr7 = (orc_int8 *) s4;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadb */
-    var33 = ptr6[i];
-    /* 1: loadb */
-    var34 = ptr7[i];
-    /* 2: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var33;
-      _dest.x2[1] = var34;
-      var39.i = _dest.i;
-    }
-    /* 3: loadw */
-    var35 = ptr4[i];
-    /* 4: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var39.x2[0];
-      _dest.x2[1] = var35.x2[0];
-      var36.x2[0] = _dest.i;
-    }
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var39.x2[1];
-      _dest.x2[1] = var35.x2[1];
-      var36.x2[1] = _dest.i;
-    }
-    /* 5: storel */
-    ptr0[i] = var36;
-    /* 6: loadw */
-    var37 = ptr5[i];
-    /* 7: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var39.x2[0];
-      _dest.x2[1] = var37.x2[0];
-      var38.x2[0] = _dest.i;
-    }
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var39.x2[1];
-      _dest.x2[1] = var37.x2[1];
-      var38.x2[1] = _dest.i;
-    }
-    /* 8: storel */
-    ptr1[i] = var38;
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_I420_UYVY (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union32 *ORC_RESTRICT ptr0;
-  orc_union32 *ORC_RESTRICT ptr1;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  const orc_union16 *ORC_RESTRICT ptr5;
-  const orc_int8 *ORC_RESTRICT ptr6;
-  const orc_int8 *ORC_RESTRICT ptr7;
-  orc_int8 var33;
-  orc_int8 var34;
-  orc_union16 var35;
-  orc_union32 var36;
-  orc_union16 var37;
-  orc_union32 var38;
-  orc_union16 var39;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr1 = (orc_union32 *) ex->arrays[1];
-  ptr4 = (orc_union16 *) ex->arrays[4];
-  ptr5 = (orc_union16 *) ex->arrays[5];
-  ptr6 = (orc_int8 *) ex->arrays[6];
-  ptr7 = (orc_int8 *) ex->arrays[7];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadb */
-    var33 = ptr6[i];
-    /* 1: loadb */
-    var34 = ptr7[i];
-    /* 2: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var33;
-      _dest.x2[1] = var34;
-      var39.i = _dest.i;
-    }
-    /* 3: loadw */
-    var35 = ptr4[i];
-    /* 4: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var39.x2[0];
-      _dest.x2[1] = var35.x2[0];
-      var36.x2[0] = _dest.i;
-    }
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var39.x2[1];
-      _dest.x2[1] = var35.x2[1];
-      var36.x2[1] = _dest.i;
-    }
-    /* 5: storel */
-    ptr0[i] = var36;
-    /* 6: loadw */
-    var37 = ptr5[i];
-    /* 7: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var39.x2[0];
-      _dest.x2[1] = var37.x2[0];
-      var38.x2[0] = _dest.i;
-    }
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var39.x2[1];
-      _dest.x2[1] = var37.x2[1];
-      var38.x2[1] = _dest.i;
-    }
-    /* 8: storel */
-    ptr1[i] = var38;
-  }
-
-}
-
-void
-video_convert_orc_convert_I420_UYVY (guint8 * ORC_RESTRICT d1,
-    guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
-    const guint8 * ORC_RESTRICT s4, int n)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
-        95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 73, 52, 50,
-        48, 95, 85, 89, 86, 89, 11, 4, 4, 11, 4, 4, 12, 2, 2, 12,
-        2, 2, 12, 1, 1, 12, 1, 1, 20, 2, 196, 32, 6, 7, 21, 1,
-        196, 0, 32, 4, 21, 1, 196, 1, 32, 5, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_I420_UYVY);
-#else
-      p = orc_program_new ();
-      orc_program_set_name (p, "video_convert_orc_convert_I420_UYVY");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_I420_UYVY);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_destination (p, 4, "d2");
-      orc_program_add_source (p, 2, "s1");
-      orc_program_add_source (p, 2, "s2");
-      orc_program_add_source (p, 1, "s3");
-      orc_program_add_source (p, 1, "s4");
-      orc_program_add_temporary (p, 2, "t1");
-
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S3, ORC_VAR_S4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D2, ORC_VAR_T1, ORC_VAR_S2,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->arrays[ORC_VAR_D2] = d2;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-  ex->arrays[ORC_VAR_S3] = (void *) s3;
-  ex->arrays[ORC_VAR_S4] = (void *) s4;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_I420_YUY2 */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_I420_YUY2 (guint8 * ORC_RESTRICT d1,
-    guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
-    const guint8 * ORC_RESTRICT s4, int n)
-{
-  int i;
-  orc_union32 *ORC_RESTRICT ptr0;
-  orc_union32 *ORC_RESTRICT ptr1;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  const orc_union16 *ORC_RESTRICT ptr5;
-  const orc_int8 *ORC_RESTRICT ptr6;
-  const orc_int8 *ORC_RESTRICT ptr7;
-  orc_int8 var33;
-  orc_int8 var34;
-  orc_union16 var35;
-  orc_union32 var36;
-  orc_union16 var37;
-  orc_union32 var38;
-  orc_union16 var39;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr1 = (orc_union32 *) d2;
-  ptr4 = (orc_union16 *) s1;
-  ptr5 = (orc_union16 *) s2;
-  ptr6 = (orc_int8 *) s3;
-  ptr7 = (orc_int8 *) s4;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadb */
-    var33 = ptr6[i];
-    /* 1: loadb */
-    var34 = ptr7[i];
-    /* 2: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var33;
-      _dest.x2[1] = var34;
-      var39.i = _dest.i;
-    }
-    /* 3: loadw */
-    var35 = ptr4[i];
-    /* 4: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var35.x2[0];
-      _dest.x2[1] = var39.x2[0];
-      var36.x2[0] = _dest.i;
-    }
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var35.x2[1];
-      _dest.x2[1] = var39.x2[1];
-      var36.x2[1] = _dest.i;
-    }
-    /* 5: storel */
-    ptr0[i] = var36;
-    /* 6: loadw */
-    var37 = ptr5[i];
-    /* 7: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var37.x2[0];
-      _dest.x2[1] = var39.x2[0];
-      var38.x2[0] = _dest.i;
-    }
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var37.x2[1];
-      _dest.x2[1] = var39.x2[1];
-      var38.x2[1] = _dest.i;
-    }
-    /* 8: storel */
-    ptr1[i] = var38;
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_I420_YUY2 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union32 *ORC_RESTRICT ptr0;
-  orc_union32 *ORC_RESTRICT ptr1;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  const orc_union16 *ORC_RESTRICT ptr5;
-  const orc_int8 *ORC_RESTRICT ptr6;
-  const orc_int8 *ORC_RESTRICT ptr7;
-  orc_int8 var33;
-  orc_int8 var34;
-  orc_union16 var35;
-  orc_union32 var36;
-  orc_union16 var37;
-  orc_union32 var38;
-  orc_union16 var39;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr1 = (orc_union32 *) ex->arrays[1];
-  ptr4 = (orc_union16 *) ex->arrays[4];
-  ptr5 = (orc_union16 *) ex->arrays[5];
-  ptr6 = (orc_int8 *) ex->arrays[6];
-  ptr7 = (orc_int8 *) ex->arrays[7];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadb */
-    var33 = ptr6[i];
-    /* 1: loadb */
-    var34 = ptr7[i];
-    /* 2: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var33;
-      _dest.x2[1] = var34;
-      var39.i = _dest.i;
-    }
-    /* 3: loadw */
-    var35 = ptr4[i];
-    /* 4: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var35.x2[0];
-      _dest.x2[1] = var39.x2[0];
-      var36.x2[0] = _dest.i;
-    }
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var35.x2[1];
-      _dest.x2[1] = var39.x2[1];
-      var36.x2[1] = _dest.i;
-    }
-    /* 5: storel */
-    ptr0[i] = var36;
-    /* 6: loadw */
-    var37 = ptr5[i];
-    /* 7: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var37.x2[0];
-      _dest.x2[1] = var39.x2[0];
-      var38.x2[0] = _dest.i;
-    }
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var37.x2[1];
-      _dest.x2[1] = var39.x2[1];
-      var38.x2[1] = _dest.i;
-    }
-    /* 8: storel */
-    ptr1[i] = var38;
-  }
-
-}
-
-void
-video_convert_orc_convert_I420_YUY2 (guint8 * ORC_RESTRICT d1,
-    guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
-    const guint8 * ORC_RESTRICT s4, int n)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
-        95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 73, 52, 50,
-        48, 95, 89, 85, 89, 50, 11, 4, 4, 11, 4, 4, 12, 2, 2, 12,
-        2, 2, 12, 1, 1, 12, 1, 1, 20, 2, 196, 32, 6, 7, 21, 1,
-        196, 0, 4, 32, 21, 1, 196, 1, 5, 32, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_I420_YUY2);
-#else
-      p = orc_program_new ();
-      orc_program_set_name (p, "video_convert_orc_convert_I420_YUY2");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_I420_YUY2);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_destination (p, 4, "d2");
-      orc_program_add_source (p, 2, "s1");
-      orc_program_add_source (p, 2, "s2");
-      orc_program_add_source (p, 1, "s3");
-      orc_program_add_source (p, 1, "s4");
-      orc_program_add_temporary (p, 2, "t1");
-
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S3, ORC_VAR_S4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_T1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D2, ORC_VAR_S2, ORC_VAR_T1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->arrays[ORC_VAR_D2] = d2;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-  ex->arrays[ORC_VAR_S3] = (void *) s3;
-  ex->arrays[ORC_VAR_S4] = (void *) s4;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_I420_AYUV */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_I420_AYUV (guint8 * ORC_RESTRICT d1,
-    guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
-    const guint8 * ORC_RESTRICT s4, int n)
-{
-  int i;
-  orc_union32 *ORC_RESTRICT ptr0;
-  orc_union32 *ORC_RESTRICT ptr1;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  const orc_int8 *ORC_RESTRICT ptr5;
-  const orc_int8 *ORC_RESTRICT ptr6;
-  const orc_int8 *ORC_RESTRICT ptr7;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_int8 var36;
-#else
-  orc_int8 var36;
-#endif
-  orc_int8 var37;
-  orc_union32 var38;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_int8 var39;
-#else
-  orc_int8 var39;
-#endif
-  orc_int8 var40;
-  orc_union32 var41;
-  orc_int8 var42;
-  orc_int8 var43;
-  orc_union16 var44;
-  orc_union16 var45;
-  orc_union16 var46;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr1 = (orc_union32 *) d2;
-  ptr4 = (orc_int8 *) s1;
-  ptr5 = (orc_int8 *) s2;
-  ptr6 = (orc_int8 *) s3;
-  ptr7 = (orc_int8 *) s4;
-
-  /* 3: loadpb */
-  var36 = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
-  /* 8: loadpb */
-  var39 = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadupdb */
-    var42 = ptr6[i >> 1];
-    /* 1: loadupdb */
-    var43 = ptr7[i >> 1];
-    /* 2: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var42;
-      _dest.x2[1] = var43;
-      var44.i = _dest.i;
-    }
-    /* 4: loadb */
-    var37 = ptr4[i];
-    /* 5: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var36;
-      _dest.x2[1] = var37;
-      var45.i = _dest.i;
-    }
-    /* 6: mergewl */
-    {
-      orc_union32 _dest;
-      _dest.x2[0] = var45.i;
-      _dest.x2[1] = var44.i;
-      var38.i = _dest.i;
-    }
-    /* 7: storel */
-    ptr0[i] = var38;
-    /* 9: loadb */
-    var40 = ptr5[i];
-    /* 10: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var39;
-      _dest.x2[1] = var40;
-      var46.i = _dest.i;
-    }
-    /* 11: mergewl */
-    {
-      orc_union32 _dest;
-      _dest.x2[0] = var46.i;
-      _dest.x2[1] = var44.i;
-      var41.i = _dest.i;
-    }
-    /* 12: storel */
-    ptr1[i] = var41;
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_I420_AYUV (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union32 *ORC_RESTRICT ptr0;
-  orc_union32 *ORC_RESTRICT ptr1;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  const orc_int8 *ORC_RESTRICT ptr5;
-  const orc_int8 *ORC_RESTRICT ptr6;
-  const orc_int8 *ORC_RESTRICT ptr7;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_int8 var36;
-#else
-  orc_int8 var36;
-#endif
-  orc_int8 var37;
-  orc_union32 var38;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_int8 var39;
-#else
-  orc_int8 var39;
-#endif
-  orc_int8 var40;
-  orc_union32 var41;
-  orc_int8 var42;
-  orc_int8 var43;
-  orc_union16 var44;
-  orc_union16 var45;
-  orc_union16 var46;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr1 = (orc_union32 *) ex->arrays[1];
-  ptr4 = (orc_int8 *) ex->arrays[4];
-  ptr5 = (orc_int8 *) ex->arrays[5];
-  ptr6 = (orc_int8 *) ex->arrays[6];
-  ptr7 = (orc_int8 *) ex->arrays[7];
-
-  /* 3: loadpb */
-  var36 = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
-  /* 8: loadpb */
-  var39 = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadupdb */
-    var42 = ptr6[i >> 1];
-    /* 1: loadupdb */
-    var43 = ptr7[i >> 1];
-    /* 2: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var42;
-      _dest.x2[1] = var43;
-      var44.i = _dest.i;
-    }
-    /* 4: loadb */
-    var37 = ptr4[i];
-    /* 5: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var36;
-      _dest.x2[1] = var37;
-      var45.i = _dest.i;
-    }
-    /* 6: mergewl */
-    {
-      orc_union32 _dest;
-      _dest.x2[0] = var45.i;
-      _dest.x2[1] = var44.i;
-      var38.i = _dest.i;
-    }
-    /* 7: storel */
-    ptr0[i] = var38;
-    /* 9: loadb */
-    var40 = ptr5[i];
-    /* 10: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var39;
-      _dest.x2[1] = var40;
-      var46.i = _dest.i;
-    }
-    /* 11: mergewl */
-    {
-      orc_union32 _dest;
-      _dest.x2[0] = var46.i;
-      _dest.x2[1] = var44.i;
-      var41.i = _dest.i;
-    }
-    /* 12: storel */
-    ptr1[i] = var41;
-  }
-
-}
-
-void
-video_convert_orc_convert_I420_AYUV (guint8 * ORC_RESTRICT d1,
-    guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
-    const guint8 * ORC_RESTRICT s4, int n)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
-        95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 73, 52, 50,
-        48, 95, 65, 89, 85, 86, 11, 4, 4, 11, 4, 4, 12, 1, 1, 12,
-        1, 1, 12, 1, 1, 12, 1, 1, 14, 1, 255, 0, 0, 0, 20, 2,
-        20, 2, 20, 1, 20, 1, 45, 34, 6, 45, 35, 7, 196, 32, 34, 35,
-        196, 33, 16, 4, 195, 0, 33, 32, 196, 33, 16, 5, 195, 1, 33, 32,
-        2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_I420_AYUV);
-#else
-      p = orc_program_new ();
-      orc_program_set_name (p, "video_convert_orc_convert_I420_AYUV");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_I420_AYUV);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_destination (p, 4, "d2");
-      orc_program_add_source (p, 1, "s1");
-      orc_program_add_source (p, 1, "s2");
-      orc_program_add_source (p, 1, "s3");
-      orc_program_add_source (p, 1, "s4");
-      orc_program_add_constant (p, 1, 0x000000ff, "c1");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 2, "t2");
-      orc_program_add_temporary (p, 1, "t3");
-      orc_program_add_temporary (p, 1, "t4");
-
-      orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T3, ORC_VAR_S3,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T4, ORC_VAR_S4,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_T4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_S2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D2, ORC_VAR_T2, ORC_VAR_T1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->arrays[ORC_VAR_D2] = d2;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-  ex->arrays[ORC_VAR_S3] = (void *) s3;
-  ex->arrays[ORC_VAR_S4] = (void *) s4;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_YUY2_I420 */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_YUY2_I420 (guint8 * ORC_RESTRICT d1,
-    guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
-    guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, int n)
-{
-  int i;
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_union16 *ORC_RESTRICT ptr1;
-  orc_int8 *ORC_RESTRICT ptr2;
-  orc_int8 *ORC_RESTRICT ptr3;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  const orc_union32 *ORC_RESTRICT ptr5;
-  orc_union32 var35;
-  orc_union32 var36;
-  orc_int8 var37;
-  orc_int8 var38;
-  orc_union16 var39;
-  orc_union16 var40;
-  orc_union16 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-
-  ptr0 = (orc_union16 *) d1;
-  ptr1 = (orc_union16 *) d2;
-  ptr2 = (orc_int8 *) d3;
-  ptr3 = (orc_int8 *) d4;
-  ptr4 = (orc_union32 *) s1;
-  ptr5 = (orc_union32 *) s2;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var35 = ptr4[i];
-    /* 1: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var35.x2[0];
-      var39.x2[0] = _src.x2[1];
-      var40.x2[0] = _src.x2[0];
-    }
-    {
-      orc_union16 _src;
-      _src.i = var35.x2[1];
-      var39.x2[1] = _src.x2[1];
-      var40.x2[1] = _src.x2[0];
-    }
-    /* 2: storew */
-    ptr0[i] = var40;
-    /* 3: loadl */
-    var36 = ptr5[i];
-    /* 4: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var36.x2[0];
-      var41.x2[0] = _src.x2[1];
-      var42.x2[0] = _src.x2[0];
-    }
-    {
-      orc_union16 _src;
-      _src.i = var36.x2[1];
-      var41.x2[1] = _src.x2[1];
-      var42.x2[1] = _src.x2[0];
-    }
-    /* 5: storew */
-    ptr1[i] = var42;
-    /* 6: avgub */
-    var43.x2[0] = ((orc_uint8) var39.x2[0] + (orc_uint8) var41.x2[0] + 1) >> 1;
-    var43.x2[1] = ((orc_uint8) var39.x2[1] + (orc_uint8) var41.x2[1] + 1) >> 1;
-    /* 7: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var43.i;
-      var37 = _src.x2[1];
-      var38 = _src.x2[0];
-    }
-    /* 8: storeb */
-    ptr3[i] = var37;
-    /* 9: storeb */
-    ptr2[i] = var38;
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_YUY2_I420 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_union16 *ORC_RESTRICT ptr1;
-  orc_int8 *ORC_RESTRICT ptr2;
-  orc_int8 *ORC_RESTRICT ptr3;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  const orc_union32 *ORC_RESTRICT ptr5;
-  orc_union32 var35;
-  orc_union32 var36;
-  orc_int8 var37;
-  orc_int8 var38;
-  orc_union16 var39;
-  orc_union16 var40;
-  orc_union16 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-
-  ptr0 = (orc_union16 *) ex->arrays[0];
-  ptr1 = (orc_union16 *) ex->arrays[1];
-  ptr2 = (orc_int8 *) ex->arrays[2];
-  ptr3 = (orc_int8 *) ex->arrays[3];
-  ptr4 = (orc_union32 *) ex->arrays[4];
-  ptr5 = (orc_union32 *) ex->arrays[5];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var35 = ptr4[i];
-    /* 1: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var35.x2[0];
-      var39.x2[0] = _src.x2[1];
-      var40.x2[0] = _src.x2[0];
-    }
-    {
-      orc_union16 _src;
-      _src.i = var35.x2[1];
-      var39.x2[1] = _src.x2[1];
-      var40.x2[1] = _src.x2[0];
-    }
-    /* 2: storew */
-    ptr0[i] = var40;
-    /* 3: loadl */
-    var36 = ptr5[i];
-    /* 4: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var36.x2[0];
-      var41.x2[0] = _src.x2[1];
-      var42.x2[0] = _src.x2[0];
-    }
-    {
-      orc_union16 _src;
-      _src.i = var36.x2[1];
-      var41.x2[1] = _src.x2[1];
-      var42.x2[1] = _src.x2[0];
-    }
-    /* 5: storew */
-    ptr1[i] = var42;
-    /* 6: avgub */
-    var43.x2[0] = ((orc_uint8) var39.x2[0] + (orc_uint8) var41.x2[0] + 1) >> 1;
-    var43.x2[1] = ((orc_uint8) var39.x2[1] + (orc_uint8) var41.x2[1] + 1) >> 1;
-    /* 7: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var43.i;
-      var37 = _src.x2[1];
-      var38 = _src.x2[0];
-    }
-    /* 8: storeb */
-    ptr3[i] = var37;
-    /* 9: storeb */
-    ptr2[i] = var38;
-  }
-
-}
-
-void
-video_convert_orc_convert_YUY2_I420 (guint8 * ORC_RESTRICT d1,
-    guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
-    guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, int n)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
-        95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 85, 89,
-        50, 95, 73, 52, 50, 48, 11, 2, 2, 11, 2, 2, 11, 1, 1, 11,
-        1, 1, 12, 4, 4, 12, 4, 4, 20, 2, 20, 2, 20, 2, 21, 1,
-        199, 32, 34, 4, 97, 0, 34, 21, 1, 199, 33, 34, 5, 97, 1, 34,
-        21, 1, 39, 32, 32, 33, 199, 3, 2, 32, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_YUY2_I420);
-#else
-      p = orc_program_new ();
-      orc_program_set_name (p, "video_convert_orc_convert_YUY2_I420");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_YUY2_I420);
-      orc_program_add_destination (p, 2, "d1");
-      orc_program_add_destination (p, 2, "d2");
-      orc_program_add_destination (p, 1, "d3");
-      orc_program_add_destination (p, 1, "d4");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_source (p, 4, "s2");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 2, "t2");
-      orc_program_add_temporary (p, 2, "t3");
-
-      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "storew", 0, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_S2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "storew", 0, ORC_VAR_D2, ORC_VAR_T3, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D4, ORC_VAR_D3, ORC_VAR_T1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->arrays[ORC_VAR_D2] = d2;
-  ex->arrays[ORC_VAR_D3] = d3;
-  ex->arrays[ORC_VAR_D4] = d4;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_UYVY_YUY2 */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_UYVY_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var32;
-  orc_union32 var33;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var32 = ptr4[i];
-      /* 1: swapw */
-      var33.x2[0] = ORC_SWAP_W (var32.x2[0]);
-      var33.x2[1] = ORC_SWAP_W (var32.x2[1]);
-      /* 2: storel */
-      ptr0[i] = var33;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_UYVY_YUY2 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var32;
-  orc_union32 var33;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var32 = ptr4[i];
-      /* 1: swapw */
-      var33.x2[0] = ORC_SWAP_W (var32.x2[0]);
-      var33.x2[1] = ORC_SWAP_W (var32.x2[1]);
-      /* 2: storel */
-      ptr0[i] = var33;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_UYVY_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 85, 89,
-        86, 89, 95, 89, 85, 89, 50, 11, 4, 4, 12, 4, 4, 21, 1, 183,
-        0, 4, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_UYVY_YUY2);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_UYVY_YUY2");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_UYVY_YUY2);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 4, "s1");
-
-      orc_program_append_2 (p, "swapw", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_planar_chroma_420_422 */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_planar_chroma_420_422 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_int8 *ORC_RESTRICT ptr0;
-  orc_int8 *ORC_RESTRICT ptr1;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  orc_int8 var32;
-  orc_int8 var33;
-  orc_int8 var34;
-  orc_int8 var35;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var32 = ptr4[i];
-      /* 1: copyb */
-      var33 = var32;
-      /* 2: storeb */
-      ptr0[i] = var33;
-      /* 3: loadb */
-      var34 = ptr4[i];
-      /* 4: copyb */
-      var35 = var34;
-      /* 5: storeb */
-      ptr1[i] = var35;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_planar_chroma_420_422 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_int8 *ORC_RESTRICT ptr0;
-  orc_int8 *ORC_RESTRICT ptr1;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  orc_int8 var32;
-  orc_int8 var33;
-  orc_int8 var34;
-  orc_int8 var35;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var32 = ptr4[i];
-      /* 1: copyb */
-      var33 = var32;
-      /* 2: storeb */
-      ptr0[i] = var33;
-      /* 3: loadb */
-      var34 = ptr4[i];
-      /* 4: copyb */
-      var35 = var34;
-      /* 5: storeb */
-      ptr1[i] = var35;
-    }
-  }
-
-}
-
-void
-video_convert_orc_planar_chroma_420_422 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 39, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 112, 108, 97, 110, 97, 114, 95, 99, 104, 114,
-        111, 109, 97, 95, 52, 50, 48, 95, 52, 50, 50, 11, 1, 1, 11, 1,
-        1, 12, 1, 1, 42, 0, 4, 42, 1, 4, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_planar_chroma_420_422);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_planar_chroma_420_422");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_planar_chroma_420_422);
-      orc_program_add_destination (p, 1, "d1");
-      orc_program_add_destination (p, 1, "d2");
-      orc_program_add_source (p, 1, "s1");
-
-      orc_program_append_2 (p, "copyb", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "copyb", 0, ORC_VAR_D2, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_D2] = d2;
-  ex->params[ORC_VAR_D2] = d2_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_planar_chroma_420_444 */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_planar_chroma_420_444 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_union16 *ORC_RESTRICT ptr1;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  orc_int8 var33;
-  orc_union16 var34;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var33 = ptr4[i];
-      /* 1: splatbw */
-      var34.i = ((var33 & 0xff) << 8) | (var33 & 0xff);
-      /* 2: storew */
-      ptr0[i] = var34;
-      /* 3: storew */
-      ptr1[i] = var34;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_planar_chroma_420_444 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_union16 *ORC_RESTRICT ptr1;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  orc_int8 var33;
-  orc_union16 var34;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var33 = ptr4[i];
-      /* 1: splatbw */
-      var34.i = ((var33 & 0xff) << 8) | (var33 & 0xff);
-      /* 2: storew */
-      ptr0[i] = var34;
-      /* 3: storew */
-      ptr1[i] = var34;
-    }
-  }
-
-}
-
-void
-video_convert_orc_planar_chroma_420_444 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 39, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 112, 108, 97, 110, 97, 114, 95, 99, 104, 114,
-        111, 109, 97, 95, 52, 50, 48, 95, 52, 52, 52, 11, 2, 2, 11, 2,
-        2, 12, 1, 1, 20, 2, 151, 32, 4, 97, 0, 32, 97, 1, 32, 2,
-        0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_planar_chroma_420_444);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_planar_chroma_420_444");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_planar_chroma_420_444);
-      orc_program_add_destination (p, 2, "d1");
-      orc_program_add_destination (p, 2, "d2");
-      orc_program_add_source (p, 1, "s1");
-      orc_program_add_temporary (p, 2, "t1");
-
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "storew", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "storew", 0, ORC_VAR_D2, ORC_VAR_T1, ORC_VAR_D1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_D2] = d2;
-  ex->params[ORC_VAR_D2] = d2_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_planar_chroma_422_444 */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_planar_chroma_422_444 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union16 *ORC_RESTRICT ptr0;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  orc_int8 var33;
-  orc_union16 var34;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var33 = ptr4[i];
-      /* 1: splatbw */
-      var34.i = ((var33 & 0xff) << 8) | (var33 & 0xff);
-      /* 2: storew */
-      ptr0[i] = var34;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_planar_chroma_422_444 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union16 *ORC_RESTRICT ptr0;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  orc_int8 var33;
-  orc_union16 var34;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var33 = ptr4[i];
-      /* 1: splatbw */
-      var34.i = ((var33 & 0xff) << 8) | (var33 & 0xff);
-      /* 2: storew */
-      ptr0[i] = var34;
-    }
-  }
-
-}
-
-void
-video_convert_orc_planar_chroma_422_444 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 39, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 112, 108, 97, 110, 97, 114, 95, 99, 104, 114,
-        111, 109, 97, 95, 52, 50, 50, 95, 52, 52, 52, 11, 2, 2, 12, 1,
-        1, 20, 2, 151, 32, 4, 97, 0, 32, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_planar_chroma_422_444);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_planar_chroma_422_444");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_planar_chroma_422_444);
-      orc_program_add_destination (p, 2, "d1");
-      orc_program_add_source (p, 1, "s1");
-      orc_program_add_temporary (p, 2, "t1");
-
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "storew", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_planar_chroma_444_422 */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_planar_chroma_444_422 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_int8 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  orc_union16 var34;
-  orc_int8 var35;
-  orc_int8 var36;
-  orc_int8 var37;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadw */
-      var34 = ptr4[i];
-      /* 1: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var34.i;
-        var36 = _src.x2[1];
-        var37 = _src.x2[0];
-      }
-      /* 2: avgub */
-      var35 = ((orc_uint8) var36 + (orc_uint8) var37 + 1) >> 1;
-      /* 3: storeb */
-      ptr0[i] = var35;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_planar_chroma_444_422 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_int8 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  orc_union16 var34;
-  orc_int8 var35;
-  orc_int8 var36;
-  orc_int8 var37;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadw */
-      var34 = ptr4[i];
-      /* 1: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var34.i;
-        var36 = _src.x2[1];
-        var37 = _src.x2[0];
-      }
-      /* 2: avgub */
-      var35 = ((orc_uint8) var36 + (orc_uint8) var37 + 1) >> 1;
-      /* 3: storeb */
-      ptr0[i] = var35;
-    }
-  }
-
-}
-
-void
-video_convert_orc_planar_chroma_444_422 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 39, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 112, 108, 97, 110, 97, 114, 95, 99, 104, 114,
-        111, 109, 97, 95, 52, 52, 52, 95, 52, 50, 50, 11, 1, 1, 12, 2,
-        2, 20, 1, 20, 1, 199, 32, 33, 4, 39, 0, 32, 33, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_planar_chroma_444_422);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_planar_chroma_444_422");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_planar_chroma_444_422);
-      orc_program_add_destination (p, 1, "d1");
-      orc_program_add_source (p, 2, "s1");
-      orc_program_add_temporary (p, 1, "t1");
-      orc_program_add_temporary (p, 1, "t2");
-
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_planar_chroma_444_420 */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_planar_chroma_444_420 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_int8 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  const orc_union16 *ORC_RESTRICT ptr5;
-  orc_union16 var35;
-  orc_union16 var36;
-  orc_int8 var37;
-  orc_union16 var38;
-  orc_int8 var39;
-  orc_int8 var40;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-    ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadw */
-      var35 = ptr4[i];
-      /* 1: loadw */
-      var36 = ptr5[i];
-      /* 2: avgub */
-      var38.x2[0] =
-          ((orc_uint8) var35.x2[0] + (orc_uint8) var36.x2[0] + 1) >> 1;
-      var38.x2[1] =
-          ((orc_uint8) var35.x2[1] + (orc_uint8) var36.x2[1] + 1) >> 1;
-      /* 3: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var38.i;
-        var39 = _src.x2[1];
-        var40 = _src.x2[0];
-      }
-      /* 4: avgub */
-      var37 = ((orc_uint8) var39 + (orc_uint8) var40 + 1) >> 1;
-      /* 5: storeb */
-      ptr0[i] = var37;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_planar_chroma_444_420 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_int8 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  const orc_union16 *ORC_RESTRICT ptr5;
-  orc_union16 var35;
-  orc_union16 var36;
-  orc_int8 var37;
-  orc_union16 var38;
-  orc_int8 var39;
-  orc_int8 var40;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-    ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadw */
-      var35 = ptr4[i];
-      /* 1: loadw */
-      var36 = ptr5[i];
-      /* 2: avgub */
-      var38.x2[0] =
-          ((orc_uint8) var35.x2[0] + (orc_uint8) var36.x2[0] + 1) >> 1;
-      var38.x2[1] =
-          ((orc_uint8) var35.x2[1] + (orc_uint8) var36.x2[1] + 1) >> 1;
-      /* 3: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var38.i;
-        var39 = _src.x2[1];
-        var40 = _src.x2[0];
-      }
-      /* 4: avgub */
-      var37 = ((orc_uint8) var39 + (orc_uint8) var40 + 1) >> 1;
-      /* 5: storeb */
-      ptr0[i] = var37;
-    }
-  }
-
-}
-
-void
-video_convert_orc_planar_chroma_444_420 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 39, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 112, 108, 97, 110, 97, 114, 95, 99, 104, 114,
-        111, 109, 97, 95, 52, 52, 52, 95, 52, 50, 48, 11, 1, 1, 12, 2,
-        2, 12, 2, 2, 20, 2, 20, 1, 20, 1, 21, 1, 39, 32, 4, 5,
-        199, 33, 34, 32, 39, 0, 33, 34, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_planar_chroma_444_420);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_planar_chroma_444_420");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_planar_chroma_444_420);
-      orc_program_add_destination (p, 1, "d1");
-      orc_program_add_source (p, 2, "s1");
-      orc_program_add_source (p, 2, "s2");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 1, "t2");
-      orc_program_add_temporary (p, 1, "t3");
-
-      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_S2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T3,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-  ex->params[ORC_VAR_S2] = s2_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_planar_chroma_422_420 */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_planar_chroma_422_420 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_int8 *ORC_RESTRICT ptr0;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  const orc_int8 *ORC_RESTRICT ptr5;
-  orc_int8 var32;
-  orc_int8 var33;
-  orc_int8 var34;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-    ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var32 = ptr4[i];
-      /* 1: loadb */
-      var33 = ptr5[i];
-      /* 2: avgub */
-      var34 = ((orc_uint8) var32 + (orc_uint8) var33 + 1) >> 1;
-      /* 3: storeb */
-      ptr0[i] = var34;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_planar_chroma_422_420 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_int8 *ORC_RESTRICT ptr0;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  const orc_int8 *ORC_RESTRICT ptr5;
-  orc_int8 var32;
-  orc_int8 var33;
-  orc_int8 var34;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-    ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var32 = ptr4[i];
-      /* 1: loadb */
-      var33 = ptr5[i];
-      /* 2: avgub */
-      var34 = ((orc_uint8) var32 + (orc_uint8) var33 + 1) >> 1;
-      /* 3: storeb */
-      ptr0[i] = var34;
-    }
-  }
-
-}
-
-void
-video_convert_orc_planar_chroma_422_420 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 39, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 112, 108, 97, 110, 97, 114, 95, 99, 104, 114,
-        111, 109, 97, 95, 52, 50, 50, 95, 52, 50, 48, 11, 1, 1, 12, 1,
-        1, 12, 1, 1, 39, 0, 4, 5, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_planar_chroma_422_420);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_planar_chroma_422_420");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_planar_chroma_422_420);
-      orc_program_add_destination (p, 1, "d1");
-      orc_program_add_source (p, 1, "s1");
-      orc_program_add_source (p, 1, "s2");
-
-      orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_S2,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-  ex->params[ORC_VAR_S2] = s2_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_YUY2_AYUV */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_YUY2_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union64 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var36;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union16 var37;
-#else
-  orc_union16 var37;
-#endif
-  orc_union64 var38;
-  orc_union16 var39;
-  orc_union16 var40;
-  orc_union32 var41;
-  orc_union32 var42;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-    /* 2: loadpb */
-    var37.x2[0] = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
-    var37.x2[1] = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var36 = ptr4[i];
-      /* 1: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var36.x2[0];
-        var39.x2[0] = _src.x2[1];
-        var40.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var36.x2[1];
-        var39.x2[1] = _src.x2[1];
-        var40.x2[1] = _src.x2[0];
-      }
-      /* 3: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var37.x2[0];
-        _dest.x2[1] = var40.x2[0];
-        var41.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var37.x2[1];
-        _dest.x2[1] = var40.x2[1];
-        var41.x2[1] = _dest.i;
-      }
-      /* 4: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var39.i;
-        _dest.x2[1] = var39.i;
-        var42.i = _dest.i;
-      }
-      /* 5: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var41.x2[0];
-        _dest.x2[1] = var42.x2[0];
-        var38.x2[0] = _dest.i;
-      }
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var41.x2[1];
-        _dest.x2[1] = var42.x2[1];
-        var38.x2[1] = _dest.i;
-      }
-      /* 6: storeq */
-      ptr0[i] = var38;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_YUY2_AYUV (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union64 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var36;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union16 var37;
-#else
-  orc_union16 var37;
-#endif
-  orc_union64 var38;
-  orc_union16 var39;
-  orc_union16 var40;
-  orc_union32 var41;
-  orc_union32 var42;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-    /* 2: loadpb */
-    var37.x2[0] = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
-    var37.x2[1] = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var36 = ptr4[i];
-      /* 1: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var36.x2[0];
-        var39.x2[0] = _src.x2[1];
-        var40.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var36.x2[1];
-        var39.x2[1] = _src.x2[1];
-        var40.x2[1] = _src.x2[0];
-      }
-      /* 3: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var37.x2[0];
-        _dest.x2[1] = var40.x2[0];
-        var41.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var37.x2[1];
-        _dest.x2[1] = var40.x2[1];
-        var41.x2[1] = _dest.i;
-      }
-      /* 4: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var39.i;
-        _dest.x2[1] = var39.i;
-        var42.i = _dest.i;
-      }
-      /* 5: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var41.x2[0];
-        _dest.x2[1] = var42.x2[0];
-        var38.x2[0] = _dest.i;
-      }
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var41.x2[1];
-        _dest.x2[1] = var42.x2[1];
-        var38.x2[1] = _dest.i;
-      }
-      /* 6: storeq */
-      ptr0[i] = var38;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_YUY2_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 85,
-        89, 50, 95, 65, 89, 85, 86, 11, 8, 8, 12, 4, 4, 14, 2, 255,
-        0, 0, 0, 20, 2, 20, 2, 20, 4, 20, 4, 21, 1, 199, 33, 32,
-        4, 21, 1, 196, 34, 16, 32, 195, 35, 33, 33, 21, 1, 195, 0, 34,
-        35, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_YUY2_AYUV);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_YUY2_AYUV");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_YUY2_AYUV);
-      orc_program_add_destination (p, 8, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant (p, 2, 0x000000ff, "c1");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 2, "t2");
-      orc_program_add_temporary (p, 4, "t3");
-      orc_program_add_temporary (p, 4, "t4");
-
-      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T3, ORC_VAR_C1, ORC_VAR_T1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_T2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_UYVY_AYUV */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_UYVY_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union64 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var36;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union16 var37;
-#else
-  orc_union16 var37;
-#endif
-  orc_union64 var38;
-  orc_union16 var39;
-  orc_union16 var40;
-  orc_union32 var41;
-  orc_union32 var42;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-    /* 2: loadpb */
-    var37.x2[0] = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
-    var37.x2[1] = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var36 = ptr4[i];
-      /* 1: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var36.x2[0];
-        var39.x2[0] = _src.x2[1];
-        var40.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var36.x2[1];
-        var39.x2[1] = _src.x2[1];
-        var40.x2[1] = _src.x2[0];
-      }
-      /* 3: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var37.x2[0];
-        _dest.x2[1] = var39.x2[0];
-        var41.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var37.x2[1];
-        _dest.x2[1] = var39.x2[1];
-        var41.x2[1] = _dest.i;
-      }
-      /* 4: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var40.i;
-        _dest.x2[1] = var40.i;
-        var42.i = _dest.i;
-      }
-      /* 5: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var41.x2[0];
-        _dest.x2[1] = var42.x2[0];
-        var38.x2[0] = _dest.i;
-      }
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var41.x2[1];
-        _dest.x2[1] = var42.x2[1];
-        var38.x2[1] = _dest.i;
-      }
-      /* 6: storeq */
-      ptr0[i] = var38;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_UYVY_AYUV (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union64 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var36;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union16 var37;
-#else
-  orc_union16 var37;
-#endif
-  orc_union64 var38;
-  orc_union16 var39;
-  orc_union16 var40;
-  orc_union32 var41;
-  orc_union32 var42;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-    /* 2: loadpb */
-    var37.x2[0] = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
-    var37.x2[1] = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var36 = ptr4[i];
-      /* 1: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var36.x2[0];
-        var39.x2[0] = _src.x2[1];
-        var40.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var36.x2[1];
-        var39.x2[1] = _src.x2[1];
-        var40.x2[1] = _src.x2[0];
-      }
-      /* 3: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var37.x2[0];
-        _dest.x2[1] = var39.x2[0];
-        var41.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var37.x2[1];
-        _dest.x2[1] = var39.x2[1];
-        var41.x2[1] = _dest.i;
-      }
-      /* 4: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var40.i;
-        _dest.x2[1] = var40.i;
-        var42.i = _dest.i;
-      }
-      /* 5: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var41.x2[0];
-        _dest.x2[1] = var42.x2[0];
-        var38.x2[0] = _dest.i;
-      }
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var41.x2[1];
-        _dest.x2[1] = var42.x2[1];
-        var38.x2[1] = _dest.i;
-      }
-      /* 6: storeq */
-      ptr0[i] = var38;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_UYVY_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 85, 89,
-        86, 89, 95, 65, 89, 85, 86, 11, 8, 8, 12, 4, 4, 14, 2, 255,
-        0, 0, 0, 20, 2, 20, 2, 20, 4, 20, 4, 21, 1, 199, 32, 33,
-        4, 21, 1, 196, 34, 16, 32, 195, 35, 33, 33, 21, 1, 195, 0, 34,
-        35, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_UYVY_AYUV);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_UYVY_AYUV");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_UYVY_AYUV);
-      orc_program_add_destination (p, 8, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant (p, 2, 0x000000ff, "c1");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 2, "t2");
-      orc_program_add_temporary (p, 4, "t3");
-      orc_program_add_temporary (p, 4, "t4");
-
-      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T3, ORC_VAR_C1, ORC_VAR_T1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_T2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_YUY2_Y42B */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_YUY2_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride,
-    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
-    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_int8 *ORC_RESTRICT ptr1;
-  orc_int8 *ORC_RESTRICT ptr2;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var33;
-  orc_union16 var34;
-  orc_int8 var35;
-  orc_int8 var36;
-  orc_union16 var37;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
-    ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var33 = ptr4[i];
-      /* 1: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var33.x2[0];
-        var37.x2[0] = _src.x2[1];
-        var34.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var33.x2[1];
-        var37.x2[1] = _src.x2[1];
-        var34.x2[1] = _src.x2[0];
-      }
-      /* 2: storew */
-      ptr0[i] = var34;
-      /* 3: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var37.i;
-        var35 = _src.x2[1];
-        var36 = _src.x2[0];
-      }
-      /* 4: storeb */
-      ptr2[i] = var35;
-      /* 5: storeb */
-      ptr1[i] = var36;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_YUY2_Y42B (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_int8 *ORC_RESTRICT ptr1;
-  orc_int8 *ORC_RESTRICT ptr2;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var33;
-  orc_union16 var34;
-  orc_int8 var35;
-  orc_int8 var36;
-  orc_union16 var37;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
-    ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var33 = ptr4[i];
-      /* 1: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var33.x2[0];
-        var37.x2[0] = _src.x2[1];
-        var34.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var33.x2[1];
-        var37.x2[1] = _src.x2[1];
-        var34.x2[1] = _src.x2[0];
-      }
-      /* 2: storew */
-      ptr0[i] = var34;
-      /* 3: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var37.i;
-        var35 = _src.x2[1];
-        var36 = _src.x2[0];
-      }
-      /* 4: storeb */
-      ptr2[i] = var35;
-      /* 5: storeb */
-      ptr1[i] = var36;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_YUY2_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride,
-    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
-    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 85,
-        89, 50, 95, 89, 52, 50, 66, 11, 2, 2, 11, 1, 1, 11, 1, 1,
-        12, 4, 4, 20, 2, 21, 1, 199, 32, 0, 4, 199, 2, 1, 32, 2,
-        0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_YUY2_Y42B);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_YUY2_Y42B");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_YUY2_Y42B);
-      orc_program_add_destination (p, 2, "d1");
-      orc_program_add_destination (p, 1, "d2");
-      orc_program_add_destination (p, 1, "d3");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_temporary (p, 2, "t1");
-
-      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_D2] = d2;
-  ex->params[ORC_VAR_D2] = d2_stride;
-  ex->arrays[ORC_VAR_D3] = d3;
-  ex->params[ORC_VAR_D3] = d3_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_UYVY_Y42B */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_UYVY_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride,
-    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
-    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_int8 *ORC_RESTRICT ptr1;
-  orc_int8 *ORC_RESTRICT ptr2;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var33;
-  orc_union16 var34;
-  orc_int8 var35;
-  orc_int8 var36;
-  orc_union16 var37;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
-    ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var33 = ptr4[i];
-      /* 1: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var33.x2[0];
-        var34.x2[0] = _src.x2[1];
-        var37.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var33.x2[1];
-        var34.x2[1] = _src.x2[1];
-        var37.x2[1] = _src.x2[0];
-      }
-      /* 2: storew */
-      ptr0[i] = var34;
-      /* 3: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var37.i;
-        var35 = _src.x2[1];
-        var36 = _src.x2[0];
-      }
-      /* 4: storeb */
-      ptr2[i] = var35;
-      /* 5: storeb */
-      ptr1[i] = var36;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_UYVY_Y42B (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_int8 *ORC_RESTRICT ptr1;
-  orc_int8 *ORC_RESTRICT ptr2;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var33;
-  orc_union16 var34;
-  orc_int8 var35;
-  orc_int8 var36;
-  orc_union16 var37;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
-    ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var33 = ptr4[i];
-      /* 1: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var33.x2[0];
-        var34.x2[0] = _src.x2[1];
-        var37.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var33.x2[1];
-        var34.x2[1] = _src.x2[1];
-        var37.x2[1] = _src.x2[0];
-      }
-      /* 2: storew */
-      ptr0[i] = var34;
-      /* 3: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var37.i;
-        var35 = _src.x2[1];
-        var36 = _src.x2[0];
-      }
-      /* 4: storeb */
-      ptr2[i] = var35;
-      /* 5: storeb */
-      ptr1[i] = var36;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_UYVY_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride,
-    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
-    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 85, 89,
-        86, 89, 95, 89, 52, 50, 66, 11, 2, 2, 11, 1, 1, 11, 1, 1,
-        12, 4, 4, 20, 2, 21, 1, 199, 0, 32, 4, 199, 2, 1, 32, 2,
-        0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_UYVY_Y42B);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_UYVY_Y42B");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_UYVY_Y42B);
-      orc_program_add_destination (p, 2, "d1");
-      orc_program_add_destination (p, 1, "d2");
-      orc_program_add_destination (p, 1, "d3");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_temporary (p, 2, "t1");
-
-      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_D2] = d2;
-  ex->params[ORC_VAR_D2] = d2_stride;
-  ex->arrays[ORC_VAR_D3] = d3;
-  ex->params[ORC_VAR_D3] = d3_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_YUY2_Y444 */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_YUY2_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride,
-    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
-    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_union16 *ORC_RESTRICT ptr1;
-  orc_union16 *ORC_RESTRICT ptr2;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var35;
-  orc_union16 var36;
-  orc_union16 var37;
-  orc_union16 var38;
-  orc_union16 var39;
-  orc_int8 var40;
-  orc_int8 var41;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
-    ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var35 = ptr4[i];
-      /* 1: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var35.x2[0];
-        var39.x2[0] = _src.x2[1];
-        var36.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var35.x2[1];
-        var39.x2[1] = _src.x2[1];
-        var36.x2[1] = _src.x2[0];
-      }
-      /* 2: storew */
-      ptr0[i] = var36;
-      /* 3: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var39.i;
-        var40 = _src.x2[1];
-        var41 = _src.x2[0];
-      }
-      /* 4: splatbw */
-      var37.i = ((var41 & 0xff) << 8) | (var41 & 0xff);
-      /* 5: storew */
-      ptr1[i] = var37;
-      /* 6: splatbw */
-      var38.i = ((var40 & 0xff) << 8) | (var40 & 0xff);
-      /* 7: storew */
-      ptr2[i] = var38;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_YUY2_Y444 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_union16 *ORC_RESTRICT ptr1;
-  orc_union16 *ORC_RESTRICT ptr2;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var35;
-  orc_union16 var36;
-  orc_union16 var37;
-  orc_union16 var38;
-  orc_union16 var39;
-  orc_int8 var40;
-  orc_int8 var41;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
-    ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var35 = ptr4[i];
-      /* 1: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var35.x2[0];
-        var39.x2[0] = _src.x2[1];
-        var36.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var35.x2[1];
-        var39.x2[1] = _src.x2[1];
-        var36.x2[1] = _src.x2[0];
-      }
-      /* 2: storew */
-      ptr0[i] = var36;
-      /* 3: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var39.i;
-        var40 = _src.x2[1];
-        var41 = _src.x2[0];
-      }
-      /* 4: splatbw */
-      var37.i = ((var41 & 0xff) << 8) | (var41 & 0xff);
-      /* 5: storew */
-      ptr1[i] = var37;
-      /* 6: splatbw */
-      var38.i = ((var40 & 0xff) << 8) | (var40 & 0xff);
-      /* 7: storew */
-      ptr2[i] = var38;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_YUY2_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride,
-    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
-    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 85,
-        89, 50, 95, 89, 52, 52, 52, 11, 2, 2, 11, 2, 2, 11, 2, 2,
-        12, 4, 4, 20, 2, 20, 1, 20, 1, 21, 1, 199, 32, 0, 4, 199,
-        34, 33, 32, 151, 1, 33, 151, 2, 34, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_YUY2_Y444);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_YUY2_Y444");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_YUY2_Y444);
-      orc_program_add_destination (p, 2, "d1");
-      orc_program_add_destination (p, 2, "d2");
-      orc_program_add_destination (p, 2, "d3");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 1, "t2");
-      orc_program_add_temporary (p, 1, "t3");
-
-      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_T1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_D2, ORC_VAR_T2, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_D3, ORC_VAR_T3, ORC_VAR_D1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_D2] = d2;
-  ex->params[ORC_VAR_D2] = d2_stride;
-  ex->arrays[ORC_VAR_D3] = d3;
-  ex->params[ORC_VAR_D3] = d3_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_UYVY_Y444 */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_UYVY_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride,
-    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
-    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_union16 *ORC_RESTRICT ptr1;
-  orc_union16 *ORC_RESTRICT ptr2;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var35;
-  orc_union16 var36;
-  orc_union16 var37;
-  orc_union16 var38;
-  orc_union16 var39;
-  orc_int8 var40;
-  orc_int8 var41;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
-    ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var35 = ptr4[i];
-      /* 1: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var35.x2[0];
-        var36.x2[0] = _src.x2[1];
-        var39.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var35.x2[1];
-        var36.x2[1] = _src.x2[1];
-        var39.x2[1] = _src.x2[0];
-      }
-      /* 2: storew */
-      ptr0[i] = var36;
-      /* 3: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var39.i;
-        var40 = _src.x2[1];
-        var41 = _src.x2[0];
-      }
-      /* 4: splatbw */
-      var37.i = ((var41 & 0xff) << 8) | (var41 & 0xff);
-      /* 5: storew */
-      ptr1[i] = var37;
-      /* 6: splatbw */
-      var38.i = ((var40 & 0xff) << 8) | (var40 & 0xff);
-      /* 7: storew */
-      ptr2[i] = var38;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_UYVY_Y444 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_union16 *ORC_RESTRICT ptr1;
-  orc_union16 *ORC_RESTRICT ptr2;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var35;
-  orc_union16 var36;
-  orc_union16 var37;
-  orc_union16 var38;
-  orc_union16 var39;
-  orc_int8 var40;
-  orc_int8 var41;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
-    ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var35 = ptr4[i];
-      /* 1: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var35.x2[0];
-        var36.x2[0] = _src.x2[1];
-        var39.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var35.x2[1];
-        var36.x2[1] = _src.x2[1];
-        var39.x2[1] = _src.x2[0];
-      }
-      /* 2: storew */
-      ptr0[i] = var36;
-      /* 3: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var39.i;
-        var40 = _src.x2[1];
-        var41 = _src.x2[0];
-      }
-      /* 4: splatbw */
-      var37.i = ((var41 & 0xff) << 8) | (var41 & 0xff);
-      /* 5: storew */
-      ptr1[i] = var37;
-      /* 6: splatbw */
-      var38.i = ((var40 & 0xff) << 8) | (var40 & 0xff);
-      /* 7: storew */
-      ptr2[i] = var38;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_UYVY_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride,
-    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
-    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 85, 89,
-        86, 89, 95, 89, 52, 52, 52, 11, 2, 2, 11, 2, 2, 11, 2, 2,
-        12, 4, 4, 20, 2, 20, 1, 20, 1, 21, 1, 199, 0, 32, 4, 199,
-        34, 33, 32, 151, 1, 33, 151, 2, 34, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_UYVY_Y444);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_UYVY_Y444");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_UYVY_Y444);
-      orc_program_add_destination (p, 2, "d1");
-      orc_program_add_destination (p, 2, "d2");
-      orc_program_add_destination (p, 2, "d3");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 1, "t2");
-      orc_program_add_temporary (p, 1, "t3");
-
-      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_T1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_D2, ORC_VAR_T2, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_D3, ORC_VAR_T3, ORC_VAR_D1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_D2] = d2;
-  ex->params[ORC_VAR_D2] = d2_stride;
-  ex->arrays[ORC_VAR_D3] = d3;
-  ex->params[ORC_VAR_D3] = d3_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_UYVY_I420 */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_UYVY_I420 (guint8 * ORC_RESTRICT d1,
-    guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
-    guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, int n)
-{
-  int i;
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_union16 *ORC_RESTRICT ptr1;
-  orc_int8 *ORC_RESTRICT ptr2;
-  orc_int8 *ORC_RESTRICT ptr3;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  const orc_union32 *ORC_RESTRICT ptr5;
-  orc_union32 var35;
-  orc_union32 var36;
-  orc_int8 var37;
-  orc_int8 var38;
-  orc_union16 var39;
-  orc_union16 var40;
-  orc_union16 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-
-  ptr0 = (orc_union16 *) d1;
-  ptr1 = (orc_union16 *) d2;
-  ptr2 = (orc_int8 *) d3;
-  ptr3 = (orc_int8 *) d4;
-  ptr4 = (orc_union32 *) s1;
-  ptr5 = (orc_union32 *) s2;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var35 = ptr4[i];
-    /* 1: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var35.x2[0];
-      var39.x2[0] = _src.x2[1];
-      var40.x2[0] = _src.x2[0];
-    }
-    {
-      orc_union16 _src;
-      _src.i = var35.x2[1];
-      var39.x2[1] = _src.x2[1];
-      var40.x2[1] = _src.x2[0];
-    }
-    /* 2: storew */
-    ptr0[i] = var39;
-    /* 3: loadl */
-    var36 = ptr5[i];
-    /* 4: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var36.x2[0];
-      var41.x2[0] = _src.x2[1];
-      var42.x2[0] = _src.x2[0];
-    }
-    {
-      orc_union16 _src;
-      _src.i = var36.x2[1];
-      var41.x2[1] = _src.x2[1];
-      var42.x2[1] = _src.x2[0];
-    }
-    /* 5: storew */
-    ptr1[i] = var41;
-    /* 6: avgub */
-    var43.x2[0] = ((orc_uint8) var40.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-    var43.x2[1] = ((orc_uint8) var40.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-    /* 7: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var43.i;
-      var37 = _src.x2[1];
-      var38 = _src.x2[0];
-    }
-    /* 8: storeb */
-    ptr3[i] = var37;
-    /* 9: storeb */
-    ptr2[i] = var38;
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_UYVY_I420 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_union16 *ORC_RESTRICT ptr1;
-  orc_int8 *ORC_RESTRICT ptr2;
-  orc_int8 *ORC_RESTRICT ptr3;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  const orc_union32 *ORC_RESTRICT ptr5;
-  orc_union32 var35;
-  orc_union32 var36;
-  orc_int8 var37;
-  orc_int8 var38;
-  orc_union16 var39;
-  orc_union16 var40;
-  orc_union16 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-
-  ptr0 = (orc_union16 *) ex->arrays[0];
-  ptr1 = (orc_union16 *) ex->arrays[1];
-  ptr2 = (orc_int8 *) ex->arrays[2];
-  ptr3 = (orc_int8 *) ex->arrays[3];
-  ptr4 = (orc_union32 *) ex->arrays[4];
-  ptr5 = (orc_union32 *) ex->arrays[5];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var35 = ptr4[i];
-    /* 1: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var35.x2[0];
-      var39.x2[0] = _src.x2[1];
-      var40.x2[0] = _src.x2[0];
-    }
-    {
-      orc_union16 _src;
-      _src.i = var35.x2[1];
-      var39.x2[1] = _src.x2[1];
-      var40.x2[1] = _src.x2[0];
-    }
-    /* 2: storew */
-    ptr0[i] = var39;
-    /* 3: loadl */
-    var36 = ptr5[i];
-    /* 4: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var36.x2[0];
-      var41.x2[0] = _src.x2[1];
-      var42.x2[0] = _src.x2[0];
-    }
-    {
-      orc_union16 _src;
-      _src.i = var36.x2[1];
-      var41.x2[1] = _src.x2[1];
-      var42.x2[1] = _src.x2[0];
-    }
-    /* 5: storew */
-    ptr1[i] = var41;
-    /* 6: avgub */
-    var43.x2[0] = ((orc_uint8) var40.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-    var43.x2[1] = ((orc_uint8) var40.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-    /* 7: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var43.i;
-      var37 = _src.x2[1];
-      var38 = _src.x2[0];
-    }
-    /* 8: storeb */
-    ptr3[i] = var37;
-    /* 9: storeb */
-    ptr2[i] = var38;
-  }
-
-}
-
-void
-video_convert_orc_convert_UYVY_I420 (guint8 * ORC_RESTRICT d1,
-    guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
-    guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, int n)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
-        95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 85, 89, 86,
-        89, 95, 73, 52, 50, 48, 11, 2, 2, 11, 2, 2, 11, 1, 1, 11,
-        1, 1, 12, 4, 4, 12, 4, 4, 20, 2, 20, 2, 20, 2, 21, 1,
-        199, 34, 32, 4, 97, 0, 34, 21, 1, 199, 34, 33, 5, 97, 1, 34,
-        21, 1, 39, 32, 32, 33, 199, 3, 2, 32, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_UYVY_I420);
-#else
-      p = orc_program_new ();
-      orc_program_set_name (p, "video_convert_orc_convert_UYVY_I420");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_UYVY_I420);
-      orc_program_add_destination (p, 2, "d1");
-      orc_program_add_destination (p, 2, "d2");
-      orc_program_add_destination (p, 1, "d3");
-      orc_program_add_destination (p, 1, "d4");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_source (p, 4, "s2");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 2, "t2");
-      orc_program_add_temporary (p, 2, "t3");
-
-      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "storew", 0, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_S2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "storew", 0, ORC_VAR_D2, ORC_VAR_T3, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D4, ORC_VAR_D3, ORC_VAR_T1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->arrays[ORC_VAR_D2] = d2;
-  ex->arrays[ORC_VAR_D3] = d3;
-  ex->arrays[ORC_VAR_D4] = d4;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_AYUV_I420 */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_AYUV_I420 (guint8 * ORC_RESTRICT d1, int d1_stride,
-    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
-    int d3_stride, guint8 * ORC_RESTRICT d4, int d4_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_union16 *ORC_RESTRICT ptr1;
-  orc_int8 *ORC_RESTRICT ptr2;
-  orc_int8 *ORC_RESTRICT ptr3;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  const orc_union64 *ORC_RESTRICT ptr5;
-  orc_union64 var40;
-  orc_union16 var41;
-  orc_union64 var42;
-  orc_union16 var43;
-  orc_int8 var44;
-  orc_int8 var45;
-  orc_union32 var46;
-  orc_union32 var47;
-  orc_union32 var48;
-  orc_union32 var49;
-  orc_union32 var50;
-  orc_union16 var51;
-  orc_union16 var52;
-  orc_int8 var53;
-  orc_int8 var54;
-  orc_int8 var55;
-  orc_int8 var56;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
-    ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
-    ptr3 = ORC_PTR_OFFSET (d4, d4_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-    ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadq */
-      var40 = ptr4[i];
-      /* 1: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var40.x2[0];
-        var46.x2[0] = _src.x2[1];
-        var47.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union32 _src;
-        _src.i = var40.x2[1];
-        var46.x2[1] = _src.x2[1];
-        var47.x2[1] = _src.x2[0];
-      }
-      /* 2: select1wb */
-      {
-        orc_union16 _src;
-        _src.i = var47.x2[0];
-        var41.x2[0] = _src.x2[1];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var47.x2[1];
-        var41.x2[1] = _src.x2[1];
-      }
-      /* 3: storew */
-      ptr0[i] = var41;
-      /* 4: loadq */
-      var42 = ptr5[i];
-      /* 5: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var42.x2[0];
-        var48.x2[0] = _src.x2[1];
-        var49.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union32 _src;
-        _src.i = var42.x2[1];
-        var48.x2[1] = _src.x2[1];
-        var49.x2[1] = _src.x2[0];
-      }
-      /* 6: select1wb */
-      {
-        orc_union16 _src;
-        _src.i = var49.x2[0];
-        var43.x2[0] = _src.x2[1];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var49.x2[1];
-        var43.x2[1] = _src.x2[1];
-      }
-      /* 7: storew */
-      ptr1[i] = var43;
-      /* 8: avgub */
-      var50.x4[0] =
-          ((orc_uint8) var46.x4[0] + (orc_uint8) var48.x4[0] + 1) >> 1;
-      var50.x4[1] =
-          ((orc_uint8) var46.x4[1] + (orc_uint8) var48.x4[1] + 1) >> 1;
-      var50.x4[2] =
-          ((orc_uint8) var46.x4[2] + (orc_uint8) var48.x4[2] + 1) >> 1;
-      var50.x4[3] =
-          ((orc_uint8) var46.x4[3] + (orc_uint8) var48.x4[3] + 1) >> 1;
-      /* 9: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var50.x2[0];
-        var51.x2[0] = _src.x2[1];
-        var52.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var50.x2[1];
-        var51.x2[1] = _src.x2[1];
-        var52.x2[1] = _src.x2[0];
-      }
-      /* 10: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var52.i;
-        var53 = _src.x2[1];
-        var54 = _src.x2[0];
-      }
-      /* 11: avgub */
-      var44 = ((orc_uint8) var53 + (orc_uint8) var54 + 1) >> 1;
-      /* 12: storeb */
-      ptr2[i] = var44;
-      /* 13: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var51.i;
-        var55 = _src.x2[1];
-        var56 = _src.x2[0];
-      }
-      /* 14: avgub */
-      var45 = ((orc_uint8) var55 + (orc_uint8) var56 + 1) >> 1;
-      /* 15: storeb */
-      ptr3[i] = var45;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_AYUV_I420 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_union16 *ORC_RESTRICT ptr1;
-  orc_int8 *ORC_RESTRICT ptr2;
-  orc_int8 *ORC_RESTRICT ptr3;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  const orc_union64 *ORC_RESTRICT ptr5;
-  orc_union64 var40;
-  orc_union16 var41;
-  orc_union64 var42;
-  orc_union16 var43;
-  orc_int8 var44;
-  orc_int8 var45;
-  orc_union32 var46;
-  orc_union32 var47;
-  orc_union32 var48;
-  orc_union32 var49;
-  orc_union32 var50;
-  orc_union16 var51;
-  orc_union16 var52;
-  orc_int8 var53;
-  orc_int8 var54;
-  orc_int8 var55;
-  orc_int8 var56;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
-    ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
-    ptr3 = ORC_PTR_OFFSET (ex->arrays[3], ex->params[3] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-    ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadq */
-      var40 = ptr4[i];
-      /* 1: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var40.x2[0];
-        var46.x2[0] = _src.x2[1];
-        var47.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union32 _src;
-        _src.i = var40.x2[1];
-        var46.x2[1] = _src.x2[1];
-        var47.x2[1] = _src.x2[0];
-      }
-      /* 2: select1wb */
-      {
-        orc_union16 _src;
-        _src.i = var47.x2[0];
-        var41.x2[0] = _src.x2[1];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var47.x2[1];
-        var41.x2[1] = _src.x2[1];
-      }
-      /* 3: storew */
-      ptr0[i] = var41;
-      /* 4: loadq */
-      var42 = ptr5[i];
-      /* 5: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var42.x2[0];
-        var48.x2[0] = _src.x2[1];
-        var49.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union32 _src;
-        _src.i = var42.x2[1];
-        var48.x2[1] = _src.x2[1];
-        var49.x2[1] = _src.x2[0];
-      }
-      /* 6: select1wb */
-      {
-        orc_union16 _src;
-        _src.i = var49.x2[0];
-        var43.x2[0] = _src.x2[1];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var49.x2[1];
-        var43.x2[1] = _src.x2[1];
-      }
-      /* 7: storew */
-      ptr1[i] = var43;
-      /* 8: avgub */
-      var50.x4[0] =
-          ((orc_uint8) var46.x4[0] + (orc_uint8) var48.x4[0] + 1) >> 1;
-      var50.x4[1] =
-          ((orc_uint8) var46.x4[1] + (orc_uint8) var48.x4[1] + 1) >> 1;
-      var50.x4[2] =
-          ((orc_uint8) var46.x4[2] + (orc_uint8) var48.x4[2] + 1) >> 1;
-      var50.x4[3] =
-          ((orc_uint8) var46.x4[3] + (orc_uint8) var48.x4[3] + 1) >> 1;
-      /* 9: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var50.x2[0];
-        var51.x2[0] = _src.x2[1];
-        var52.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var50.x2[1];
-        var51.x2[1] = _src.x2[1];
-        var52.x2[1] = _src.x2[0];
-      }
-      /* 10: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var52.i;
-        var53 = _src.x2[1];
-        var54 = _src.x2[0];
-      }
-      /* 11: avgub */
-      var44 = ((orc_uint8) var53 + (orc_uint8) var54 + 1) >> 1;
-      /* 12: storeb */
-      ptr2[i] = var44;
-      /* 13: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var51.i;
-        var55 = _src.x2[1];
-        var56 = _src.x2[0];
-      }
-      /* 14: avgub */
-      var45 = ((orc_uint8) var55 + (orc_uint8) var56 + 1) >> 1;
-      /* 15: storeb */
-      ptr3[i] = var45;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_AYUV_I420 (guint8 * ORC_RESTRICT d1, int d1_stride,
-    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
-    int d3_stride, guint8 * ORC_RESTRICT d4, int d4_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
-        85, 86, 95, 73, 52, 50, 48, 11, 2, 2, 11, 2, 2, 11, 1, 1,
-        11, 1, 1, 12, 8, 8, 12, 8, 8, 20, 4, 20, 4, 20, 4, 20,
-        4, 20, 2, 20, 2, 20, 1, 20, 1, 21, 1, 198, 33, 32, 4, 21,
-        1, 189, 0, 32, 21, 1, 198, 34, 32, 5, 21, 1, 189, 1, 32, 21,
-        2, 39, 35, 33, 34, 21, 1, 199, 37, 36, 35, 199, 38, 39, 36, 39,
-        2, 38, 39, 199, 38, 39, 37, 39, 3, 38, 39, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_I420);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_AYUV_I420");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_I420);
-      orc_program_add_destination (p, 2, "d1");
-      orc_program_add_destination (p, 2, "d2");
-      orc_program_add_destination (p, 1, "d3");
-      orc_program_add_destination (p, 1, "d4");
-      orc_program_add_source (p, 8, "s1");
-      orc_program_add_source (p, 8, "s2");
-      orc_program_add_temporary (p, 4, "t1");
-      orc_program_add_temporary (p, 4, "t2");
-      orc_program_add_temporary (p, 4, "t3");
-      orc_program_add_temporary (p, 4, "t4");
-      orc_program_add_temporary (p, 2, "t5");
-      orc_program_add_temporary (p, 2, "t6");
-      orc_program_add_temporary (p, 1, "t7");
-      orc_program_add_temporary (p, 1, "t8");
-
-      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_S2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D2, ORC_VAR_T1,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 2, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_T3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T6, ORC_VAR_T5, ORC_VAR_T4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T7, ORC_VAR_T8, ORC_VAR_T5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 0, ORC_VAR_D3, ORC_VAR_T7, ORC_VAR_T8,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T7, ORC_VAR_T8, ORC_VAR_T6,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 0, ORC_VAR_D4, ORC_VAR_T7, ORC_VAR_T8,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_D2] = d2;
-  ex->params[ORC_VAR_D2] = d2_stride;
-  ex->arrays[ORC_VAR_D3] = d3;
-  ex->params[ORC_VAR_D3] = d3_stride;
-  ex->arrays[ORC_VAR_D4] = d4;
-  ex->params[ORC_VAR_D4] = d4_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-  ex->params[ORC_VAR_S2] = s2_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_AYUV_YUY2 */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_AYUV_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var37;
-  orc_union32 var38;
-  orc_union32 var39;
-  orc_union32 var40;
-  orc_union16 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadq */
-      var37 = ptr4[i];
-      /* 1: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var37.x2[0];
-        var39.x2[0] = _src.x2[1];
-        var40.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union32 _src;
-        _src.i = var37.x2[1];
-        var39.x2[1] = _src.x2[1];
-        var40.x2[1] = _src.x2[0];
-      }
-      /* 2: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var39.i;
-        var41.i = _src.x2[1];
-        var42.i = _src.x2[0];
-      }
-      /* 3: avgub */
-      var43.x2[0] =
-          ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-      var43.x2[1] =
-          ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-      /* 4: select1wb */
-      {
-        orc_union16 _src;
-        _src.i = var40.x2[0];
-        var44.x2[0] = _src.x2[1];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var40.x2[1];
-        var44.x2[1] = _src.x2[1];
-      }
-      /* 5: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var44.x2[0];
-        _dest.x2[1] = var43.x2[0];
-        var38.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var44.x2[1];
-        _dest.x2[1] = var43.x2[1];
-        var38.x2[1] = _dest.i;
-      }
-      /* 6: storel */
-      ptr0[i] = var38;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_AYUV_YUY2 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var37;
-  orc_union32 var38;
-  orc_union32 var39;
-  orc_union32 var40;
-  orc_union16 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadq */
-      var37 = ptr4[i];
-      /* 1: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var37.x2[0];
-        var39.x2[0] = _src.x2[1];
-        var40.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union32 _src;
-        _src.i = var37.x2[1];
-        var39.x2[1] = _src.x2[1];
-        var40.x2[1] = _src.x2[0];
-      }
-      /* 2: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var39.i;
-        var41.i = _src.x2[1];
-        var42.i = _src.x2[0];
-      }
-      /* 3: avgub */
-      var43.x2[0] =
-          ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-      var43.x2[1] =
-          ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-      /* 4: select1wb */
-      {
-        orc_union16 _src;
-        _src.i = var40.x2[0];
-        var44.x2[0] = _src.x2[1];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var40.x2[1];
-        var44.x2[1] = _src.x2[1];
-      }
-      /* 5: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var44.x2[0];
-        _dest.x2[1] = var43.x2[0];
-        var38.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var44.x2[1];
-        _dest.x2[1] = var43.x2[1];
-        var38.x2[1] = _dest.i;
-      }
-      /* 6: storel */
-      ptr0[i] = var38;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_AYUV_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
-        85, 86, 95, 89, 85, 89, 50, 11, 4, 4, 12, 8, 8, 20, 2, 20,
-        2, 20, 2, 20, 4, 20, 4, 21, 1, 198, 36, 35, 4, 198, 33, 34,
-        36, 21, 1, 39, 33, 33, 34, 21, 1, 189, 32, 35, 21, 1, 196, 0,
-        32, 33, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_YUY2);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_AYUV_YUY2");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_YUY2);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 8, "s1");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 2, "t2");
-      orc_program_add_temporary (p, 2, "t3");
-      orc_program_add_temporary (p, 4, "t4");
-      orc_program_add_temporary (p, 4, "t5");
-
-      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T4,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_AYUV_UYVY */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_AYUV_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var37;
-  orc_union32 var38;
-  orc_union32 var39;
-  orc_union32 var40;
-  orc_union16 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadq */
-      var37 = ptr4[i];
-      /* 1: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var37.x2[0];
-        var39.x2[0] = _src.x2[1];
-        var40.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union32 _src;
-        _src.i = var37.x2[1];
-        var39.x2[1] = _src.x2[1];
-        var40.x2[1] = _src.x2[0];
-      }
-      /* 2: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var39.i;
-        var41.i = _src.x2[1];
-        var42.i = _src.x2[0];
-      }
-      /* 3: avgub */
-      var43.x2[0] =
-          ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-      var43.x2[1] =
-          ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-      /* 4: select1wb */
-      {
-        orc_union16 _src;
-        _src.i = var40.x2[0];
-        var44.x2[0] = _src.x2[1];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var40.x2[1];
-        var44.x2[1] = _src.x2[1];
-      }
-      /* 5: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var43.x2[0];
-        _dest.x2[1] = var44.x2[0];
-        var38.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var43.x2[1];
-        _dest.x2[1] = var44.x2[1];
-        var38.x2[1] = _dest.i;
-      }
-      /* 6: storel */
-      ptr0[i] = var38;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_AYUV_UYVY (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var37;
-  orc_union32 var38;
-  orc_union32 var39;
-  orc_union32 var40;
-  orc_union16 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadq */
-      var37 = ptr4[i];
-      /* 1: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var37.x2[0];
-        var39.x2[0] = _src.x2[1];
-        var40.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union32 _src;
-        _src.i = var37.x2[1];
-        var39.x2[1] = _src.x2[1];
-        var40.x2[1] = _src.x2[0];
-      }
-      /* 2: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var39.i;
-        var41.i = _src.x2[1];
-        var42.i = _src.x2[0];
-      }
-      /* 3: avgub */
-      var43.x2[0] =
-          ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-      var43.x2[1] =
-          ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-      /* 4: select1wb */
-      {
-        orc_union16 _src;
-        _src.i = var40.x2[0];
-        var44.x2[0] = _src.x2[1];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var40.x2[1];
-        var44.x2[1] = _src.x2[1];
-      }
-      /* 5: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var43.x2[0];
-        _dest.x2[1] = var44.x2[0];
-        var38.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var43.x2[1];
-        _dest.x2[1] = var44.x2[1];
-        var38.x2[1] = _dest.i;
-      }
-      /* 6: storel */
-      ptr0[i] = var38;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_AYUV_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
-        85, 86, 95, 85, 89, 86, 89, 11, 4, 4, 12, 8, 8, 20, 2, 20,
-        2, 20, 2, 20, 4, 20, 4, 21, 1, 198, 36, 35, 4, 198, 33, 34,
-        36, 21, 1, 39, 33, 33, 34, 21, 1, 189, 32, 35, 21, 1, 196, 0,
-        33, 32, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_UYVY);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_AYUV_UYVY");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_UYVY);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 8, "s1");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 2, "t2");
-      orc_program_add_temporary (p, 2, "t3");
-      orc_program_add_temporary (p, 4, "t4");
-      orc_program_add_temporary (p, 4, "t5");
-
-      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T4,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_AYUV_Y42B */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_AYUV_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride,
-    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
-    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_int8 *ORC_RESTRICT ptr1;
-  orc_int8 *ORC_RESTRICT ptr2;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var36;
-  orc_int8 var37;
-  orc_int8 var38;
-  orc_union16 var39;
-  orc_union32 var40;
-  orc_union32 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
-    ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadq */
-      var36 = ptr4[i];
-      /* 1: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var36.x2[0];
-        var40.x2[0] = _src.x2[1];
-        var41.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union32 _src;
-        _src.i = var36.x2[1];
-        var40.x2[1] = _src.x2[1];
-        var41.x2[1] = _src.x2[0];
-      }
-      /* 2: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var40.i;
-        var42.i = _src.x2[1];
-        var43.i = _src.x2[0];
-      }
-      /* 3: avgub */
-      var44.x2[0] =
-          ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
-      var44.x2[1] =
-          ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
-      /* 4: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var44.i;
-        var37 = _src.x2[1];
-        var38 = _src.x2[0];
-      }
-      /* 5: storeb */
-      ptr2[i] = var37;
-      /* 6: storeb */
-      ptr1[i] = var38;
-      /* 7: select1wb */
-      {
-        orc_union16 _src;
-        _src.i = var41.x2[0];
-        var39.x2[0] = _src.x2[1];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var41.x2[1];
-        var39.x2[1] = _src.x2[1];
-      }
-      /* 8: storew */
-      ptr0[i] = var39;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_AYUV_Y42B (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_int8 *ORC_RESTRICT ptr1;
-  orc_int8 *ORC_RESTRICT ptr2;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var36;
-  orc_int8 var37;
-  orc_int8 var38;
-  orc_union16 var39;
-  orc_union32 var40;
-  orc_union32 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
-    ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadq */
-      var36 = ptr4[i];
-      /* 1: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var36.x2[0];
-        var40.x2[0] = _src.x2[1];
-        var41.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union32 _src;
-        _src.i = var36.x2[1];
-        var40.x2[1] = _src.x2[1];
-        var41.x2[1] = _src.x2[0];
-      }
-      /* 2: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var40.i;
-        var42.i = _src.x2[1];
-        var43.i = _src.x2[0];
-      }
-      /* 3: avgub */
-      var44.x2[0] =
-          ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
-      var44.x2[1] =
-          ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
-      /* 4: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var44.i;
-        var37 = _src.x2[1];
-        var38 = _src.x2[0];
-      }
-      /* 5: storeb */
-      ptr2[i] = var37;
-      /* 6: storeb */
-      ptr1[i] = var38;
-      /* 7: select1wb */
-      {
-        orc_union16 _src;
-        _src.i = var41.x2[0];
-        var39.x2[0] = _src.x2[1];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var41.x2[1];
-        var39.x2[1] = _src.x2[1];
-      }
-      /* 8: storew */
-      ptr0[i] = var39;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_AYUV_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride,
-    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
-    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
-        85, 86, 95, 89, 52, 50, 66, 11, 2, 2, 11, 1, 1, 11, 1, 1,
-        12, 8, 8, 20, 4, 20, 4, 20, 2, 20, 2, 21, 1, 198, 33, 32,
-        4, 198, 34, 35, 33, 21, 1, 39, 34, 34, 35, 199, 2, 1, 34, 21,
-        1, 189, 0, 32, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_Y42B);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_AYUV_Y42B");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_Y42B);
-      orc_program_add_destination (p, 2, "d1");
-      orc_program_add_destination (p, 1, "d2");
-      orc_program_add_destination (p, 1, "d3");
-      orc_program_add_source (p, 8, "s1");
-      orc_program_add_temporary (p, 4, "t1");
-      orc_program_add_temporary (p, 4, "t2");
-      orc_program_add_temporary (p, 2, "t3");
-      orc_program_add_temporary (p, 2, "t4");
-
-      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
-          ORC_VAR_D1, ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_D2] = d2;
-  ex->params[ORC_VAR_D2] = d2_stride;
-  ex->arrays[ORC_VAR_D3] = d3;
-  ex->params[ORC_VAR_D3] = d3_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_AYUV_Y444 */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_AYUV_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride,
-    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
-    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_int8 *ORC_RESTRICT ptr0;
-  orc_int8 *ORC_RESTRICT ptr1;
-  orc_int8 *ORC_RESTRICT ptr2;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var34;
-  orc_int8 var35;
-  orc_int8 var36;
-  orc_int8 var37;
-  orc_union16 var38;
-  orc_union16 var39;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
-    ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var34 = ptr4[i];
-      /* 1: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var34.i;
-        var38.i = _src.x2[1];
-        var39.i = _src.x2[0];
-      }
-      /* 2: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var38.i;
-        var35 = _src.x2[1];
-        var36 = _src.x2[0];
-      }
-      /* 3: storeb */
-      ptr2[i] = var35;
-      /* 4: storeb */
-      ptr1[i] = var36;
-      /* 5: select1wb */
-      {
-        orc_union16 _src;
-        _src.i = var39.i;
-        var37 = _src.x2[1];
-      }
-      /* 6: storeb */
-      ptr0[i] = var37;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_AYUV_Y444 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_int8 *ORC_RESTRICT ptr0;
-  orc_int8 *ORC_RESTRICT ptr1;
-  orc_int8 *ORC_RESTRICT ptr2;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var34;
-  orc_int8 var35;
-  orc_int8 var36;
-  orc_int8 var37;
-  orc_union16 var38;
-  orc_union16 var39;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
-    ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var34 = ptr4[i];
-      /* 1: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var34.i;
-        var38.i = _src.x2[1];
-        var39.i = _src.x2[0];
-      }
-      /* 2: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var38.i;
-        var35 = _src.x2[1];
-        var36 = _src.x2[0];
-      }
-      /* 3: storeb */
-      ptr2[i] = var35;
-      /* 4: storeb */
-      ptr1[i] = var36;
-      /* 5: select1wb */
-      {
-        orc_union16 _src;
-        _src.i = var39.i;
-        var37 = _src.x2[1];
-      }
-      /* 6: storeb */
-      ptr0[i] = var37;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_AYUV_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride,
-    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
-    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
-        85, 86, 95, 89, 52, 52, 52, 11, 1, 1, 11, 1, 1, 11, 1, 1,
-        12, 4, 4, 20, 2, 20, 2, 198, 33, 32, 4, 199, 2, 1, 33, 189,
-        0, 32, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_Y444);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_AYUV_Y444");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_Y444);
-      orc_program_add_destination (p, 1, "d1");
-      orc_program_add_destination (p, 1, "d2");
-      orc_program_add_destination (p, 1, "d3");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 2, "t2");
-
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "select1wb", 0, ORC_VAR_D1, ORC_VAR_T1,
-          ORC_VAR_D1, ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_D2] = d2;
-  ex->params[ORC_VAR_D2] = d2_stride;
-  ex->arrays[ORC_VAR_D3] = d3;
-  ex->params[ORC_VAR_D3] = d3_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_Y42B_YUY2 */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_Y42B_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  const orc_int8 *ORC_RESTRICT ptr5;
-  const orc_int8 *ORC_RESTRICT ptr6;
-  orc_int8 var33;
-  orc_int8 var34;
-  orc_union16 var35;
-  orc_union32 var36;
-  orc_union16 var37;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-    ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
-    ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var33 = ptr5[i];
-      /* 1: loadb */
-      var34 = ptr6[i];
-      /* 2: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var33;
-        _dest.x2[1] = var34;
-        var37.i = _dest.i;
-      }
-      /* 3: loadw */
-      var35 = ptr4[i];
-      /* 4: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var35.x2[0];
-        _dest.x2[1] = var37.x2[0];
-        var36.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var35.x2[1];
-        _dest.x2[1] = var37.x2[1];
-        var36.x2[1] = _dest.i;
-      }
-      /* 5: storel */
-      ptr0[i] = var36;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_Y42B_YUY2 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  const orc_int8 *ORC_RESTRICT ptr5;
-  const orc_int8 *ORC_RESTRICT ptr6;
-  orc_int8 var33;
-  orc_int8 var34;
-  orc_union16 var35;
-  orc_union32 var36;
-  orc_union16 var37;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-    ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
-    ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var33 = ptr5[i];
-      /* 1: loadb */
-      var34 = ptr6[i];
-      /* 2: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var33;
-        _dest.x2[1] = var34;
-        var37.i = _dest.i;
-      }
-      /* 3: loadw */
-      var35 = ptr4[i];
-      /* 4: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var35.x2[0];
-        _dest.x2[1] = var37.x2[0];
-        var36.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var35.x2[1];
-        _dest.x2[1] = var37.x2[1];
-        var36.x2[1] = _dest.i;
-      }
-      /* 5: storel */
-      ptr0[i] = var36;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_Y42B_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 52,
-        50, 66, 95, 89, 85, 89, 50, 11, 4, 4, 12, 2, 2, 12, 1, 1,
-        12, 1, 1, 20, 2, 196, 32, 5, 6, 21, 1, 196, 0, 4, 32, 2,
-        0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_Y42B_YUY2);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_Y42B_YUY2");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_Y42B_YUY2);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 2, "s1");
-      orc_program_add_source (p, 1, "s2");
-      orc_program_add_source (p, 1, "s3");
-      orc_program_add_temporary (p, 2, "t1");
-
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_T1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-  ex->params[ORC_VAR_S2] = s2_stride;
-  ex->arrays[ORC_VAR_S3] = (void *) s3;
-  ex->params[ORC_VAR_S3] = s3_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_Y42B_UYVY */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_Y42B_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  const orc_int8 *ORC_RESTRICT ptr5;
-  const orc_int8 *ORC_RESTRICT ptr6;
-  orc_int8 var33;
-  orc_int8 var34;
-  orc_union16 var35;
-  orc_union32 var36;
-  orc_union16 var37;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-    ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
-    ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var33 = ptr5[i];
-      /* 1: loadb */
-      var34 = ptr6[i];
-      /* 2: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var33;
-        _dest.x2[1] = var34;
-        var37.i = _dest.i;
-      }
-      /* 3: loadw */
-      var35 = ptr4[i];
-      /* 4: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var37.x2[0];
-        _dest.x2[1] = var35.x2[0];
-        var36.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var37.x2[1];
-        _dest.x2[1] = var35.x2[1];
-        var36.x2[1] = _dest.i;
-      }
-      /* 5: storel */
-      ptr0[i] = var36;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_Y42B_UYVY (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  const orc_int8 *ORC_RESTRICT ptr5;
-  const orc_int8 *ORC_RESTRICT ptr6;
-  orc_int8 var33;
-  orc_int8 var34;
-  orc_union16 var35;
-  orc_union32 var36;
-  orc_union16 var37;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-    ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
-    ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var33 = ptr5[i];
-      /* 1: loadb */
-      var34 = ptr6[i];
-      /* 2: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var33;
-        _dest.x2[1] = var34;
-        var37.i = _dest.i;
-      }
-      /* 3: loadw */
-      var35 = ptr4[i];
-      /* 4: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var37.x2[0];
-        _dest.x2[1] = var35.x2[0];
-        var36.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var37.x2[1];
-        _dest.x2[1] = var35.x2[1];
-        var36.x2[1] = _dest.i;
-      }
-      /* 5: storel */
-      ptr0[i] = var36;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_Y42B_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 52,
-        50, 66, 95, 85, 89, 86, 89, 11, 4, 4, 12, 2, 2, 12, 1, 1,
-        12, 1, 1, 20, 2, 196, 32, 5, 6, 21, 1, 196, 0, 32, 4, 2,
-        0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_Y42B_UYVY);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_Y42B_UYVY");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_Y42B_UYVY);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 2, "s1");
-      orc_program_add_source (p, 1, "s2");
-      orc_program_add_source (p, 1, "s3");
-      orc_program_add_temporary (p, 2, "t1");
-
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-  ex->params[ORC_VAR_S2] = s2_stride;
-  ex->arrays[ORC_VAR_S3] = (void *) s3;
-  ex->params[ORC_VAR_S3] = s3_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_Y42B_AYUV */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_Y42B_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union64 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  const orc_int8 *ORC_RESTRICT ptr5;
-  const orc_int8 *ORC_RESTRICT ptr6;
-  orc_int8 var36;
-  orc_int8 var37;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union16 var38;
-#else
-  orc_union16 var38;
-#endif
-  orc_union16 var39;
-  orc_union64 var40;
-  orc_union16 var41;
-  orc_union32 var42;
-  orc_union32 var43;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-    ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
-    ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
-
-    /* 3: loadpb */
-    var38.x2[0] = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
-    var38.x2[1] = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var36 = ptr5[i];
-      /* 1: loadb */
-      var37 = ptr6[i];
-      /* 2: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var36;
-        _dest.x2[1] = var37;
-        var41.i = _dest.i;
-      }
-      /* 4: loadw */
-      var39 = ptr4[i];
-      /* 5: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var38.x2[0];
-        _dest.x2[1] = var39.x2[0];
-        var42.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var38.x2[1];
-        _dest.x2[1] = var39.x2[1];
-        var42.x2[1] = _dest.i;
-      }
-      /* 6: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var41.i;
-        _dest.x2[1] = var41.i;
-        var43.i = _dest.i;
-      }
-      /* 7: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var42.x2[0];
-        _dest.x2[1] = var43.x2[0];
-        var40.x2[0] = _dest.i;
-      }
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var42.x2[1];
-        _dest.x2[1] = var43.x2[1];
-        var40.x2[1] = _dest.i;
-      }
-      /* 8: storeq */
-      ptr0[i] = var40;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_Y42B_AYUV (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union64 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  const orc_int8 *ORC_RESTRICT ptr5;
-  const orc_int8 *ORC_RESTRICT ptr6;
-  orc_int8 var36;
-  orc_int8 var37;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union16 var38;
-#else
-  orc_union16 var38;
-#endif
-  orc_union16 var39;
-  orc_union64 var40;
-  orc_union16 var41;
-  orc_union32 var42;
-  orc_union32 var43;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-    ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
-    ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
-
-    /* 3: loadpb */
-    var38.x2[0] = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
-    var38.x2[1] = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var36 = ptr5[i];
-      /* 1: loadb */
-      var37 = ptr6[i];
-      /* 2: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var36;
-        _dest.x2[1] = var37;
-        var41.i = _dest.i;
-      }
-      /* 4: loadw */
-      var39 = ptr4[i];
-      /* 5: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var38.x2[0];
-        _dest.x2[1] = var39.x2[0];
-        var42.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var38.x2[1];
-        _dest.x2[1] = var39.x2[1];
-        var42.x2[1] = _dest.i;
-      }
-      /* 6: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var41.i;
-        _dest.x2[1] = var41.i;
-        var43.i = _dest.i;
-      }
-      /* 7: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var42.x2[0];
-        _dest.x2[1] = var43.x2[0];
-        var40.x2[0] = _dest.i;
-      }
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var42.x2[1];
-        _dest.x2[1] = var43.x2[1];
-        var40.x2[1] = _dest.i;
-      }
-      /* 8: storeq */
-      ptr0[i] = var40;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_Y42B_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 52,
-        50, 66, 95, 65, 89, 85, 86, 11, 8, 8, 12, 2, 2, 12, 1, 1,
-        12, 1, 1, 14, 1, 255, 0, 0, 0, 20, 2, 20, 2, 20, 4, 20,
-        4, 196, 32, 5, 6, 21, 1, 196, 35, 16, 4, 195, 34, 32, 32, 21,
-        1, 195, 0, 35, 34, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_Y42B_AYUV);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_Y42B_AYUV");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_Y42B_AYUV);
-      orc_program_add_destination (p, 8, "d1");
-      orc_program_add_source (p, 2, "s1");
-      orc_program_add_source (p, 1, "s2");
-      orc_program_add_source (p, 1, "s3");
-      orc_program_add_constant (p, 1, 0x000000ff, "c1");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 2, "t2");
-      orc_program_add_temporary (p, 4, "t3");
-      orc_program_add_temporary (p, 4, "t4");
-
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T4, ORC_VAR_C1, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_T1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T4, ORC_VAR_T3,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-  ex->params[ORC_VAR_S2] = s2_stride;
-  ex->arrays[ORC_VAR_S3] = (void *) s3;
-  ex->params[ORC_VAR_S3] = s3_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_Y444_YUY2 */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_Y444_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  const orc_union16 *ORC_RESTRICT ptr5;
-  const orc_union16 *ORC_RESTRICT ptr6;
-  orc_union16 var36;
-  orc_union16 var37;
-  orc_union16 var38;
-  orc_union32 var39;
-  orc_union32 var40;
-  orc_union16 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-    ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
-    ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadw */
-      var36 = ptr5[i];
-      /* 1: loadw */
-      var37 = ptr6[i];
-      /* 2: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var36.x2[0];
-        _dest.x2[1] = var37.x2[0];
-        var40.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var36.x2[1];
-        _dest.x2[1] = var37.x2[1];
-        var40.x2[1] = _dest.i;
-      }
-      /* 3: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var40.i;
-        var41.i = _src.x2[1];
-        var42.i = _src.x2[0];
-      }
-      /* 4: avgub */
-      var43.x2[0] =
-          ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-      var43.x2[1] =
-          ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-      /* 5: loadw */
-      var38 = ptr4[i];
-      /* 6: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var38.x2[0];
-        _dest.x2[1] = var43.x2[0];
-        var39.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var38.x2[1];
-        _dest.x2[1] = var43.x2[1];
-        var39.x2[1] = _dest.i;
-      }
-      /* 7: storel */
-      ptr0[i] = var39;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_Y444_YUY2 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  const orc_union16 *ORC_RESTRICT ptr5;
-  const orc_union16 *ORC_RESTRICT ptr6;
-  orc_union16 var36;
-  orc_union16 var37;
-  orc_union16 var38;
-  orc_union32 var39;
-  orc_union32 var40;
-  orc_union16 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-    ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
-    ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadw */
-      var36 = ptr5[i];
-      /* 1: loadw */
-      var37 = ptr6[i];
-      /* 2: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var36.x2[0];
-        _dest.x2[1] = var37.x2[0];
-        var40.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var36.x2[1];
-        _dest.x2[1] = var37.x2[1];
-        var40.x2[1] = _dest.i;
-      }
-      /* 3: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var40.i;
-        var41.i = _src.x2[1];
-        var42.i = _src.x2[0];
-      }
-      /* 4: avgub */
-      var43.x2[0] =
-          ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-      var43.x2[1] =
-          ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-      /* 5: loadw */
-      var38 = ptr4[i];
-      /* 6: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var38.x2[0];
-        _dest.x2[1] = var43.x2[0];
-        var39.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var38.x2[1];
-        _dest.x2[1] = var43.x2[1];
-        var39.x2[1] = _dest.i;
-      }
-      /* 7: storel */
-      ptr0[i] = var39;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_Y444_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 52,
-        52, 52, 95, 89, 85, 89, 50, 11, 4, 4, 12, 2, 2, 12, 2, 2,
-        12, 2, 2, 20, 2, 20, 4, 20, 2, 20, 2, 21, 1, 196, 33, 5,
-        6, 198, 34, 35, 33, 21, 1, 39, 32, 34, 35, 21, 1, 196, 0, 4,
-        32, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_Y444_YUY2);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_Y444_YUY2");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_Y444_YUY2);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 2, "s1");
-      orc_program_add_source (p, 2, "s2");
-      orc_program_add_source (p, 2, "s3");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 4, "t2");
-      orc_program_add_temporary (p, 2, "t3");
-      orc_program_add_temporary (p, 2, "t4");
-
-      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_S3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_T4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_T1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-  ex->params[ORC_VAR_S2] = s2_stride;
-  ex->arrays[ORC_VAR_S3] = (void *) s3;
-  ex->params[ORC_VAR_S3] = s3_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_Y444_UYVY */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_Y444_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  const orc_union16 *ORC_RESTRICT ptr5;
-  const orc_union16 *ORC_RESTRICT ptr6;
-  orc_union16 var36;
-  orc_union16 var37;
-  orc_union16 var38;
-  orc_union32 var39;
-  orc_union32 var40;
-  orc_union16 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-    ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
-    ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadw */
-      var36 = ptr5[i];
-      /* 1: loadw */
-      var37 = ptr6[i];
-      /* 2: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var36.x2[0];
-        _dest.x2[1] = var37.x2[0];
-        var40.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var36.x2[1];
-        _dest.x2[1] = var37.x2[1];
-        var40.x2[1] = _dest.i;
-      }
-      /* 3: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var40.i;
-        var41.i = _src.x2[1];
-        var42.i = _src.x2[0];
-      }
-      /* 4: avgub */
-      var43.x2[0] =
-          ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-      var43.x2[1] =
-          ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-      /* 5: loadw */
-      var38 = ptr4[i];
-      /* 6: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var43.x2[0];
-        _dest.x2[1] = var38.x2[0];
-        var39.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var43.x2[1];
-        _dest.x2[1] = var38.x2[1];
-        var39.x2[1] = _dest.i;
-      }
-      /* 7: storel */
-      ptr0[i] = var39;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_Y444_UYVY (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  const orc_union16 *ORC_RESTRICT ptr5;
-  const orc_union16 *ORC_RESTRICT ptr6;
-  orc_union16 var36;
-  orc_union16 var37;
-  orc_union16 var38;
-  orc_union32 var39;
-  orc_union32 var40;
-  orc_union16 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-    ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
-    ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadw */
-      var36 = ptr5[i];
-      /* 1: loadw */
-      var37 = ptr6[i];
-      /* 2: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var36.x2[0];
-        _dest.x2[1] = var37.x2[0];
-        var40.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var36.x2[1];
-        _dest.x2[1] = var37.x2[1];
-        var40.x2[1] = _dest.i;
-      }
-      /* 3: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var40.i;
-        var41.i = _src.x2[1];
-        var42.i = _src.x2[0];
-      }
-      /* 4: avgub */
-      var43.x2[0] =
-          ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-      var43.x2[1] =
-          ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-      /* 5: loadw */
-      var38 = ptr4[i];
-      /* 6: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var43.x2[0];
-        _dest.x2[1] = var38.x2[0];
-        var39.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var43.x2[1];
-        _dest.x2[1] = var38.x2[1];
-        var39.x2[1] = _dest.i;
-      }
-      /* 7: storel */
-      ptr0[i] = var39;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_Y444_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 52,
-        52, 52, 95, 85, 89, 86, 89, 11, 4, 4, 12, 2, 2, 12, 2, 2,
-        12, 2, 2, 20, 2, 20, 4, 20, 2, 20, 2, 21, 1, 196, 33, 5,
-        6, 198, 34, 35, 33, 21, 1, 39, 32, 34, 35, 21, 1, 196, 0, 32,
-        4, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_Y444_UYVY);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_Y444_UYVY");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_Y444_UYVY);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 2, "s1");
-      orc_program_add_source (p, 2, "s2");
-      orc_program_add_source (p, 2, "s3");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 4, "t2");
-      orc_program_add_temporary (p, 2, "t3");
-      orc_program_add_temporary (p, 2, "t4");
-
-      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_S3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_T4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-  ex->params[ORC_VAR_S2] = s2_stride;
-  ex->arrays[ORC_VAR_S3] = (void *) s3;
-  ex->params[ORC_VAR_S3] = s3_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_Y444_AYUV */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_Y444_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  const orc_int8 *ORC_RESTRICT ptr5;
-  const orc_int8 *ORC_RESTRICT ptr6;
-  orc_int8 var34;
-  orc_int8 var35;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_int8 var36;
-#else
-  orc_int8 var36;
-#endif
-  orc_int8 var37;
-  orc_union32 var38;
-  orc_union16 var39;
-  orc_union16 var40;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-    ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
-    ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
-
-    /* 3: loadpb */
-    var36 = (int) 0x000000ff;   /* 255 or 1.25987e-321f */
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var34 = ptr5[i];
-      /* 1: loadb */
-      var35 = ptr6[i];
-      /* 2: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var34;
-        _dest.x2[1] = var35;
-        var39.i = _dest.i;
-      }
-      /* 4: loadb */
-      var37 = ptr4[i];
-      /* 5: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var36;
-        _dest.x2[1] = var37;
-        var40.i = _dest.i;
-      }
-      /* 6: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var40.i;
-        _dest.x2[1] = var39.i;
-        var38.i = _dest.i;
-      }
-      /* 7: storel */
-      ptr0[i] = var38;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_Y444_AYUV (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  const orc_int8 *ORC_RESTRICT ptr5;
-  const orc_int8 *ORC_RESTRICT ptr6;
-  orc_int8 var34;
-  orc_int8 var35;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_int8 var36;
-#else
-  orc_int8 var36;
-#endif
-  orc_int8 var37;
-  orc_union32 var38;
-  orc_union16 var39;
-  orc_union16 var40;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-    ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
-    ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
-
-    /* 3: loadpb */
-    var36 = (int) 0x000000ff;   /* 255 or 1.25987e-321f */
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var34 = ptr5[i];
-      /* 1: loadb */
-      var35 = ptr6[i];
-      /* 2: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var34;
-        _dest.x2[1] = var35;
-        var39.i = _dest.i;
-      }
-      /* 4: loadb */
-      var37 = ptr4[i];
-      /* 5: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var36;
-        _dest.x2[1] = var37;
-        var40.i = _dest.i;
-      }
-      /* 6: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var40.i;
-        _dest.x2[1] = var39.i;
-        var38.i = _dest.i;
-      }
-      /* 7: storel */
-      ptr0[i] = var38;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_Y444_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 52,
-        52, 52, 95, 65, 89, 85, 86, 11, 4, 4, 12, 1, 1, 12, 1, 1,
-        12, 1, 1, 14, 1, 255, 0, 0, 0, 20, 2, 20, 2, 196, 32, 5,
-        6, 196, 33, 16, 4, 195, 0, 33, 32, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_Y444_AYUV);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_Y444_AYUV");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_Y444_AYUV);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 1, "s1");
-      orc_program_add_source (p, 1, "s2");
-      orc_program_add_source (p, 1, "s3");
-      orc_program_add_constant (p, 1, 0x000000ff, "c1");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 2, "t2");
-
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-  ex->params[ORC_VAR_S2] = s2_stride;
-  ex->arrays[ORC_VAR_S3] = (void *) s3;
-  ex->params[ORC_VAR_S3] = s3_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_AYUV_ARGB */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_AYUV_ARGB (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
-    int p4, int p5, int n, int m)
-{
-  int i;
-  int j;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var46;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var47;
-#else
-  orc_union32 var47;
-#endif
-  orc_union16 var48;
-  orc_union16 var49;
-  orc_union16 var50;
-  orc_union16 var51;
-  orc_union16 var52;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var53;
-#else
-  orc_union32 var53;
-#endif
-  orc_union32 var54;
-  orc_union32 var55;
-  orc_union16 var56;
-  orc_union16 var57;
-  orc_int8 var58;
-  orc_int8 var59;
-  orc_int8 var60;
-  orc_int8 var61;
-  orc_union16 var62;
-  orc_union16 var63;
-  orc_union16 var64;
-  orc_union16 var65;
-  orc_union16 var66;
-  orc_union16 var67;
-  orc_union16 var68;
-  orc_union16 var69;
-  orc_union16 var70;
-  orc_union16 var71;
-  orc_union16 var72;
-  orc_union16 var73;
-  orc_int8 var74;
-  orc_int8 var75;
-  orc_int8 var76;
-  orc_union16 var77;
-  orc_union16 var78;
-  orc_union32 var79;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-    /* 1: loadpb */
-    var47.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    /* 9: loadpw */
-    var48.i = p1;
-    /* 11: loadpw */
-    var49.i = p2;
-    /* 14: loadpw */
-    var50.i = p3;
-    /* 17: loadpw */
-    var51.i = p4;
-    /* 20: loadpw */
-    var52.i = p5;
-    /* 29: loadpb */
-    var53.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var46 = ptr4[i];
-      /* 2: subb */
-      var55.x4[0] = var46.x4[0] - var47.x4[0];
-      var55.x4[1] = var46.x4[1] - var47.x4[1];
-      var55.x4[2] = var46.x4[2] - var47.x4[2];
-      var55.x4[3] = var46.x4[3] - var47.x4[3];
-      /* 3: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var55.i;
-        var56.i = _src.x2[1];
-        var57.i = _src.x2[0];
-      }
-      /* 4: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var57.i;
-        var58 = _src.x2[1];
-        var59 = _src.x2[0];
-      }
-      /* 5: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var56.i;
-        var60 = _src.x2[1];
-        var61 = _src.x2[0];
-      }
-      /* 6: splatbw */
-      var62.i = ((var58 & 0xff) << 8) | (var58 & 0xff);
-      /* 7: splatbw */
-      var63.i = ((var61 & 0xff) << 8) | (var61 & 0xff);
-      /* 8: splatbw */
-      var64.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
-      /* 10: mulhsw */
-      var65.i = (var62.i * var48.i) >> 16;
-      /* 12: mulhsw */
-      var66.i = (var64.i * var49.i) >> 16;
-      /* 13: addssw */
-      var67.i = ORC_CLAMP_SW (var65.i + var66.i);
-      /* 15: mulhsw */
-      var68.i = (var63.i * var50.i) >> 16;
-      /* 16: addssw */
-      var69.i = ORC_CLAMP_SW (var65.i + var68.i);
-      /* 18: mulhsw */
-      var70.i = (var63.i * var51.i) >> 16;
-      /* 19: addssw */
-      var71.i = ORC_CLAMP_SW (var65.i + var70.i);
-      /* 21: mulhsw */
-      var72.i = (var64.i * var52.i) >> 16;
-      /* 22: addssw */
-      var73.i = ORC_CLAMP_SW (var71.i + var72.i);
-      /* 23: convssswb */
-      var74 = ORC_CLAMP_SB (var67.i);
-      /* 24: convssswb */
-      var75 = ORC_CLAMP_SB (var73.i);
-      /* 25: convssswb */
-      var76 = ORC_CLAMP_SB (var69.i);
-      /* 26: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var59;
-        _dest.x2[1] = var74;
-        var77.i = _dest.i;
-      }
-      /* 27: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var75;
-        _dest.x2[1] = var76;
-        var78.i = _dest.i;
-      }
-      /* 28: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var77.i;
-        _dest.x2[1] = var78.i;
-        var79.i = _dest.i;
-      }
-      /* 30: addb */
-      var54.x4[0] = var79.x4[0] + var53.x4[0];
-      var54.x4[1] = var79.x4[1] + var53.x4[1];
-      var54.x4[2] = var79.x4[2] + var53.x4[2];
-      var54.x4[3] = var79.x4[3] + var53.x4[3];
-      /* 31: storel */
-      ptr0[i] = var54;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_AYUV_ARGB (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var46;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var47;
-#else
-  orc_union32 var47;
-#endif
-  orc_union16 var48;
-  orc_union16 var49;
-  orc_union16 var50;
-  orc_union16 var51;
-  orc_union16 var52;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var53;
-#else
-  orc_union32 var53;
-#endif
-  orc_union32 var54;
-  orc_union32 var55;
-  orc_union16 var56;
-  orc_union16 var57;
-  orc_int8 var58;
-  orc_int8 var59;
-  orc_int8 var60;
-  orc_int8 var61;
-  orc_union16 var62;
-  orc_union16 var63;
-  orc_union16 var64;
-  orc_union16 var65;
-  orc_union16 var66;
-  orc_union16 var67;
-  orc_union16 var68;
-  orc_union16 var69;
-  orc_union16 var70;
-  orc_union16 var71;
-  orc_union16 var72;
-  orc_union16 var73;
-  orc_int8 var74;
-  orc_int8 var75;
-  orc_int8 var76;
-  orc_union16 var77;
-  orc_union16 var78;
-  orc_union32 var79;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-    /* 1: loadpb */
-    var47.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    /* 9: loadpw */
-    var48.i = ex->params[24];
-    /* 11: loadpw */
-    var49.i = ex->params[25];
-    /* 14: loadpw */
-    var50.i = ex->params[26];
-    /* 17: loadpw */
-    var51.i = ex->params[27];
-    /* 20: loadpw */
-    var52.i = ex->params[28];
-    /* 29: loadpb */
-    var53.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var46 = ptr4[i];
-      /* 2: subb */
-      var55.x4[0] = var46.x4[0] - var47.x4[0];
-      var55.x4[1] = var46.x4[1] - var47.x4[1];
-      var55.x4[2] = var46.x4[2] - var47.x4[2];
-      var55.x4[3] = var46.x4[3] - var47.x4[3];
-      /* 3: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var55.i;
-        var56.i = _src.x2[1];
-        var57.i = _src.x2[0];
-      }
-      /* 4: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var57.i;
-        var58 = _src.x2[1];
-        var59 = _src.x2[0];
-      }
-      /* 5: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var56.i;
-        var60 = _src.x2[1];
-        var61 = _src.x2[0];
-      }
-      /* 6: splatbw */
-      var62.i = ((var58 & 0xff) << 8) | (var58 & 0xff);
-      /* 7: splatbw */
-      var63.i = ((var61 & 0xff) << 8) | (var61 & 0xff);
-      /* 8: splatbw */
-      var64.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
-      /* 10: mulhsw */
-      var65.i = (var62.i * var48.i) >> 16;
-      /* 12: mulhsw */
-      var66.i = (var64.i * var49.i) >> 16;
-      /* 13: addssw */
-      var67.i = ORC_CLAMP_SW (var65.i + var66.i);
-      /* 15: mulhsw */
-      var68.i = (var63.i * var50.i) >> 16;
-      /* 16: addssw */
-      var69.i = ORC_CLAMP_SW (var65.i + var68.i);
-      /* 18: mulhsw */
-      var70.i = (var63.i * var51.i) >> 16;
-      /* 19: addssw */
-      var71.i = ORC_CLAMP_SW (var65.i + var70.i);
-      /* 21: mulhsw */
-      var72.i = (var64.i * var52.i) >> 16;
-      /* 22: addssw */
-      var73.i = ORC_CLAMP_SW (var71.i + var72.i);
-      /* 23: convssswb */
-      var74 = ORC_CLAMP_SB (var67.i);
-      /* 24: convssswb */
-      var75 = ORC_CLAMP_SB (var73.i);
-      /* 25: convssswb */
-      var76 = ORC_CLAMP_SB (var69.i);
-      /* 26: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var59;
-        _dest.x2[1] = var74;
-        var77.i = _dest.i;
-      }
-      /* 27: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var75;
-        _dest.x2[1] = var76;
-        var78.i = _dest.i;
-      }
-      /* 28: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var77.i;
-        _dest.x2[1] = var78.i;
-        var79.i = _dest.i;
-      }
-      /* 30: addb */
-      var54.x4[0] = var79.x4[0] + var53.x4[0];
-      var54.x4[1] = var79.x4[1] + var53.x4[1];
-      var54.x4[2] = var79.x4[2] + var53.x4[2];
-      var54.x4[3] = var79.x4[3] + var53.x4[3];
-      /* 31: storel */
-      ptr0[i] = var54;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_AYUV_ARGB (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
-    int p4, int p5, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
-        85, 86, 95, 65, 82, 71, 66, 11, 4, 4, 12, 4, 4, 14, 1, 128,
-        0, 0, 0, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2, 20, 1, 20,
-        1, 20, 1, 20, 1, 20, 2, 20, 2, 20, 2, 20, 2, 20, 2, 20,
-        2, 20, 1, 20, 1, 20, 1, 20, 4, 21, 2, 65, 45, 4, 16, 198,
-        38, 36, 45, 199, 33, 32, 36, 199, 35, 34, 38, 151, 36, 33, 151, 37,
-        34, 151, 38, 35, 90, 36, 36, 24, 90, 39, 38, 25, 71, 39, 36, 39,
-        90, 41, 37, 26, 71, 41, 36, 41, 90, 40, 37, 27, 71, 40, 36, 40,
-        90, 36, 38, 28, 71, 40, 40, 36, 159, 42, 39, 159, 43, 40, 159, 44,
-        41, 196, 39, 32, 42, 196, 41, 43, 44, 195, 45, 39, 41, 21, 2, 33,
-        0, 45, 16, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_ARGB);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_AYUV_ARGB");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_ARGB);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant (p, 1, 0x00000080, "c1");
-      orc_program_add_parameter (p, 2, "p1");
-      orc_program_add_parameter (p, 2, "p2");
-      orc_program_add_parameter (p, 2, "p3");
-      orc_program_add_parameter (p, 2, "p4");
-      orc_program_add_parameter (p, 2, "p5");
-      orc_program_add_temporary (p, 1, "t1");
-      orc_program_add_temporary (p, 1, "t2");
-      orc_program_add_temporary (p, 1, "t3");
-      orc_program_add_temporary (p, 1, "t4");
-      orc_program_add_temporary (p, 2, "t5");
-      orc_program_add_temporary (p, 2, "t6");
-      orc_program_add_temporary (p, 2, "t7");
-      orc_program_add_temporary (p, 2, "t8");
-      orc_program_add_temporary (p, 2, "t9");
-      orc_program_add_temporary (p, 2, "t10");
-      orc_program_add_temporary (p, 1, "t11");
-      orc_program_add_temporary (p, 1, "t12");
-      orc_program_add_temporary (p, 1, "t13");
-      orc_program_add_temporary (p, 4, "t14");
-
-      orc_program_append_2 (p, "subb", 2, ORC_VAR_T14, ORC_VAR_S1, ORC_VAR_C1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T7, ORC_VAR_T5,
-          ORC_VAR_T14, ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T7,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T6, ORC_VAR_T3, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_P1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T8, ORC_VAR_T7, ORC_VAR_P2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_T8,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T10, ORC_VAR_T6, ORC_VAR_P3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T5,
-          ORC_VAR_T10, ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T9, ORC_VAR_T6, ORC_VAR_P4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T9, ORC_VAR_T5, ORC_VAR_T9,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T7, ORC_VAR_P5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T11, ORC_VAR_T8,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T12, ORC_VAR_T9,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T13, ORC_VAR_T10,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T8, ORC_VAR_T1,
-          ORC_VAR_T11, ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T10, ORC_VAR_T12,
-          ORC_VAR_T13, ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T14, ORC_VAR_T8,
-          ORC_VAR_T10, ORC_VAR_D1);
-      orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, ORC_VAR_T14, ORC_VAR_C1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-  ex->params[ORC_VAR_P1] = p1;
-  ex->params[ORC_VAR_P2] = p2;
-  ex->params[ORC_VAR_P3] = p3;
-  ex->params[ORC_VAR_P4] = p4;
-  ex->params[ORC_VAR_P5] = p5;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_AYUV_BGRA */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_AYUV_BGRA (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
-    int p4, int p5, int n, int m)
-{
-  int i;
-  int j;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var46;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var47;
-#else
-  orc_union32 var47;
-#endif
-  orc_union16 var48;
-  orc_union16 var49;
-  orc_union16 var50;
-  orc_union16 var51;
-  orc_union16 var52;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var53;
-#else
-  orc_union32 var53;
-#endif
-  orc_union32 var54;
-  orc_union32 var55;
-  orc_union16 var56;
-  orc_union16 var57;
-  orc_int8 var58;
-  orc_int8 var59;
-  orc_int8 var60;
-  orc_int8 var61;
-  orc_union16 var62;
-  orc_union16 var63;
-  orc_union16 var64;
-  orc_union16 var65;
-  orc_union16 var66;
-  orc_union16 var67;
-  orc_union16 var68;
-  orc_union16 var69;
-  orc_union16 var70;
-  orc_union16 var71;
-  orc_union16 var72;
-  orc_union16 var73;
-  orc_int8 var74;
-  orc_int8 var75;
-  orc_int8 var76;
-  orc_union16 var77;
-  orc_union16 var78;
-  orc_union32 var79;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-    /* 1: loadpb */
-    var47.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    /* 9: loadpw */
-    var48.i = p1;
-    /* 11: loadpw */
-    var49.i = p2;
-    /* 14: loadpw */
-    var50.i = p3;
-    /* 17: loadpw */
-    var51.i = p4;
-    /* 20: loadpw */
-    var52.i = p5;
-    /* 29: loadpb */
-    var53.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var46 = ptr4[i];
-      /* 2: subb */
-      var55.x4[0] = var46.x4[0] - var47.x4[0];
-      var55.x4[1] = var46.x4[1] - var47.x4[1];
-      var55.x4[2] = var46.x4[2] - var47.x4[2];
-      var55.x4[3] = var46.x4[3] - var47.x4[3];
-      /* 3: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var55.i;
-        var56.i = _src.x2[1];
-        var57.i = _src.x2[0];
-      }
-      /* 4: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var57.i;
-        var58 = _src.x2[1];
-        var59 = _src.x2[0];
-      }
-      /* 5: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var56.i;
-        var60 = _src.x2[1];
-        var61 = _src.x2[0];
-      }
-      /* 6: splatbw */
-      var62.i = ((var58 & 0xff) << 8) | (var58 & 0xff);
-      /* 7: splatbw */
-      var63.i = ((var61 & 0xff) << 8) | (var61 & 0xff);
-      /* 8: splatbw */
-      var64.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
-      /* 10: mulhsw */
-      var65.i = (var62.i * var48.i) >> 16;
-      /* 12: mulhsw */
-      var66.i = (var64.i * var49.i) >> 16;
-      /* 13: addssw */
-      var67.i = ORC_CLAMP_SW (var65.i + var66.i);
-      /* 15: mulhsw */
-      var68.i = (var63.i * var50.i) >> 16;
-      /* 16: addssw */
-      var69.i = ORC_CLAMP_SW (var65.i + var68.i);
-      /* 18: mulhsw */
-      var70.i = (var63.i * var51.i) >> 16;
-      /* 19: addssw */
-      var71.i = ORC_CLAMP_SW (var65.i + var70.i);
-      /* 21: mulhsw */
-      var72.i = (var64.i * var52.i) >> 16;
-      /* 22: addssw */
-      var73.i = ORC_CLAMP_SW (var71.i + var72.i);
-      /* 23: convssswb */
-      var74 = ORC_CLAMP_SB (var67.i);
-      /* 24: convssswb */
-      var75 = ORC_CLAMP_SB (var73.i);
-      /* 25: convssswb */
-      var76 = ORC_CLAMP_SB (var69.i);
-      /* 26: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var76;
-        _dest.x2[1] = var75;
-        var77.i = _dest.i;
-      }
-      /* 27: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var74;
-        _dest.x2[1] = var59;
-        var78.i = _dest.i;
-      }
-      /* 28: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var77.i;
-        _dest.x2[1] = var78.i;
-        var79.i = _dest.i;
-      }
-      /* 30: addb */
-      var54.x4[0] = var79.x4[0] + var53.x4[0];
-      var54.x4[1] = var79.x4[1] + var53.x4[1];
-      var54.x4[2] = var79.x4[2] + var53.x4[2];
-      var54.x4[3] = var79.x4[3] + var53.x4[3];
-      /* 31: storel */
-      ptr0[i] = var54;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_AYUV_BGRA (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var46;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var47;
-#else
-  orc_union32 var47;
-#endif
-  orc_union16 var48;
-  orc_union16 var49;
-  orc_union16 var50;
-  orc_union16 var51;
-  orc_union16 var52;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var53;
-#else
-  orc_union32 var53;
-#endif
-  orc_union32 var54;
-  orc_union32 var55;
-  orc_union16 var56;
-  orc_union16 var57;
-  orc_int8 var58;
-  orc_int8 var59;
-  orc_int8 var60;
-  orc_int8 var61;
-  orc_union16 var62;
-  orc_union16 var63;
-  orc_union16 var64;
-  orc_union16 var65;
-  orc_union16 var66;
-  orc_union16 var67;
-  orc_union16 var68;
-  orc_union16 var69;
-  orc_union16 var70;
-  orc_union16 var71;
-  orc_union16 var72;
-  orc_union16 var73;
-  orc_int8 var74;
-  orc_int8 var75;
-  orc_int8 var76;
-  orc_union16 var77;
-  orc_union16 var78;
-  orc_union32 var79;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-    /* 1: loadpb */
-    var47.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    /* 9: loadpw */
-    var48.i = ex->params[24];
-    /* 11: loadpw */
-    var49.i = ex->params[25];
-    /* 14: loadpw */
-    var50.i = ex->params[26];
-    /* 17: loadpw */
-    var51.i = ex->params[27];
-    /* 20: loadpw */
-    var52.i = ex->params[28];
-    /* 29: loadpb */
-    var53.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var46 = ptr4[i];
-      /* 2: subb */
-      var55.x4[0] = var46.x4[0] - var47.x4[0];
-      var55.x4[1] = var46.x4[1] - var47.x4[1];
-      var55.x4[2] = var46.x4[2] - var47.x4[2];
-      var55.x4[3] = var46.x4[3] - var47.x4[3];
-      /* 3: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var55.i;
-        var56.i = _src.x2[1];
-        var57.i = _src.x2[0];
-      }
-      /* 4: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var57.i;
-        var58 = _src.x2[1];
-        var59 = _src.x2[0];
-      }
-      /* 5: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var56.i;
-        var60 = _src.x2[1];
-        var61 = _src.x2[0];
-      }
-      /* 6: splatbw */
-      var62.i = ((var58 & 0xff) << 8) | (var58 & 0xff);
-      /* 7: splatbw */
-      var63.i = ((var61 & 0xff) << 8) | (var61 & 0xff);
-      /* 8: splatbw */
-      var64.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
-      /* 10: mulhsw */
-      var65.i = (var62.i * var48.i) >> 16;
-      /* 12: mulhsw */
-      var66.i = (var64.i * var49.i) >> 16;
-      /* 13: addssw */
-      var67.i = ORC_CLAMP_SW (var65.i + var66.i);
-      /* 15: mulhsw */
-      var68.i = (var63.i * var50.i) >> 16;
-      /* 16: addssw */
-      var69.i = ORC_CLAMP_SW (var65.i + var68.i);
-      /* 18: mulhsw */
-      var70.i = (var63.i * var51.i) >> 16;
-      /* 19: addssw */
-      var71.i = ORC_CLAMP_SW (var65.i + var70.i);
-      /* 21: mulhsw */
-      var72.i = (var64.i * var52.i) >> 16;
-      /* 22: addssw */
-      var73.i = ORC_CLAMP_SW (var71.i + var72.i);
-      /* 23: convssswb */
-      var74 = ORC_CLAMP_SB (var67.i);
-      /* 24: convssswb */
-      var75 = ORC_CLAMP_SB (var73.i);
-      /* 25: convssswb */
-      var76 = ORC_CLAMP_SB (var69.i);
-      /* 26: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var76;
-        _dest.x2[1] = var75;
-        var77.i = _dest.i;
-      }
-      /* 27: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var74;
-        _dest.x2[1] = var59;
-        var78.i = _dest.i;
-      }
-      /* 28: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var77.i;
-        _dest.x2[1] = var78.i;
-        var79.i = _dest.i;
-      }
-      /* 30: addb */
-      var54.x4[0] = var79.x4[0] + var53.x4[0];
-      var54.x4[1] = var79.x4[1] + var53.x4[1];
-      var54.x4[2] = var79.x4[2] + var53.x4[2];
-      var54.x4[3] = var79.x4[3] + var53.x4[3];
-      /* 31: storel */
-      ptr0[i] = var54;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_AYUV_BGRA (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
-    int p4, int p5, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
-        85, 86, 95, 66, 71, 82, 65, 11, 4, 4, 12, 4, 4, 14, 1, 128,
-        0, 0, 0, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2, 20, 1, 20,
-        1, 20, 1, 20, 1, 20, 2, 20, 2, 20, 2, 20, 2, 20, 2, 20,
-        2, 20, 1, 20, 1, 20, 1, 20, 4, 21, 2, 65, 45, 4, 16, 198,
-        38, 36, 45, 199, 33, 32, 36, 199, 35, 34, 38, 151, 36, 33, 151, 37,
-        34, 151, 38, 35, 90, 36, 36, 24, 90, 39, 38, 25, 71, 39, 36, 39,
-        90, 41, 37, 26, 71, 41, 36, 41, 90, 40, 37, 27, 71, 40, 36, 40,
-        90, 36, 38, 28, 71, 40, 40, 36, 159, 42, 39, 159, 43, 40, 159, 44,
-        41, 196, 41, 44, 43, 196, 39, 42, 32, 195, 45, 41, 39, 21, 2, 33,
-        0, 45, 16, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_BGRA);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_AYUV_BGRA");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_BGRA);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant (p, 1, 0x00000080, "c1");
-      orc_program_add_parameter (p, 2, "p1");
-      orc_program_add_parameter (p, 2, "p2");
-      orc_program_add_parameter (p, 2, "p3");
-      orc_program_add_parameter (p, 2, "p4");
-      orc_program_add_parameter (p, 2, "p5");
-      orc_program_add_temporary (p, 1, "t1");
-      orc_program_add_temporary (p, 1, "t2");
-      orc_program_add_temporary (p, 1, "t3");
-      orc_program_add_temporary (p, 1, "t4");
-      orc_program_add_temporary (p, 2, "t5");
-      orc_program_add_temporary (p, 2, "t6");
-      orc_program_add_temporary (p, 2, "t7");
-      orc_program_add_temporary (p, 2, "t8");
-      orc_program_add_temporary (p, 2, "t9");
-      orc_program_add_temporary (p, 2, "t10");
-      orc_program_add_temporary (p, 1, "t11");
-      orc_program_add_temporary (p, 1, "t12");
-      orc_program_add_temporary (p, 1, "t13");
-      orc_program_add_temporary (p, 4, "t14");
-
-      orc_program_append_2 (p, "subb", 2, ORC_VAR_T14, ORC_VAR_S1, ORC_VAR_C1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T7, ORC_VAR_T5,
-          ORC_VAR_T14, ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T7,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T6, ORC_VAR_T3, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_P1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T8, ORC_VAR_T7, ORC_VAR_P2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_T8,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T10, ORC_VAR_T6, ORC_VAR_P3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T5,
-          ORC_VAR_T10, ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T9, ORC_VAR_T6, ORC_VAR_P4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T9, ORC_VAR_T5, ORC_VAR_T9,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T7, ORC_VAR_P5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T11, ORC_VAR_T8,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T12, ORC_VAR_T9,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T13, ORC_VAR_T10,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T10, ORC_VAR_T13,
-          ORC_VAR_T12, ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T8, ORC_VAR_T11,
-          ORC_VAR_T1, ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T14, ORC_VAR_T10,
-          ORC_VAR_T8, ORC_VAR_D1);
-      orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, ORC_VAR_T14, ORC_VAR_C1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-  ex->params[ORC_VAR_P1] = p1;
-  ex->params[ORC_VAR_P2] = p2;
-  ex->params[ORC_VAR_P3] = p3;
-  ex->params[ORC_VAR_P4] = p4;
-  ex->params[ORC_VAR_P5] = p5;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_AYUV_ABGR */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_AYUV_ABGR (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
-    int p4, int p5, int n, int m)
-{
-  int i;
-  int j;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var46;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var47;
-#else
-  orc_union32 var47;
-#endif
-  orc_union16 var48;
-  orc_union16 var49;
-  orc_union16 var50;
-  orc_union16 var51;
-  orc_union16 var52;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var53;
-#else
-  orc_union32 var53;
-#endif
-  orc_union32 var54;
-  orc_union32 var55;
-  orc_union16 var56;
-  orc_union16 var57;
-  orc_int8 var58;
-  orc_int8 var59;
-  orc_int8 var60;
-  orc_int8 var61;
-  orc_union16 var62;
-  orc_union16 var63;
-  orc_union16 var64;
-  orc_union16 var65;
-  orc_union16 var66;
-  orc_union16 var67;
-  orc_union16 var68;
-  orc_union16 var69;
-  orc_union16 var70;
-  orc_union16 var71;
-  orc_union16 var72;
-  orc_union16 var73;
-  orc_int8 var74;
-  orc_int8 var75;
-  orc_int8 var76;
-  orc_union16 var77;
-  orc_union16 var78;
-  orc_union32 var79;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-    /* 1: loadpb */
-    var47.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    /* 9: loadpw */
-    var48.i = p1;
-    /* 11: loadpw */
-    var49.i = p2;
-    /* 14: loadpw */
-    var50.i = p3;
-    /* 17: loadpw */
-    var51.i = p4;
-    /* 20: loadpw */
-    var52.i = p5;
-    /* 29: loadpb */
-    var53.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var46 = ptr4[i];
-      /* 2: subb */
-      var55.x4[0] = var46.x4[0] - var47.x4[0];
-      var55.x4[1] = var46.x4[1] - var47.x4[1];
-      var55.x4[2] = var46.x4[2] - var47.x4[2];
-      var55.x4[3] = var46.x4[3] - var47.x4[3];
-      /* 3: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var55.i;
-        var56.i = _src.x2[1];
-        var57.i = _src.x2[0];
-      }
-      /* 4: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var57.i;
-        var58 = _src.x2[1];
-        var59 = _src.x2[0];
-      }
-      /* 5: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var56.i;
-        var60 = _src.x2[1];
-        var61 = _src.x2[0];
-      }
-      /* 6: splatbw */
-      var62.i = ((var58 & 0xff) << 8) | (var58 & 0xff);
-      /* 7: splatbw */
-      var63.i = ((var61 & 0xff) << 8) | (var61 & 0xff);
-      /* 8: splatbw */
-      var64.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
-      /* 10: mulhsw */
-      var65.i = (var62.i * var48.i) >> 16;
-      /* 12: mulhsw */
-      var66.i = (var64.i * var49.i) >> 16;
-      /* 13: addssw */
-      var67.i = ORC_CLAMP_SW (var65.i + var66.i);
-      /* 15: mulhsw */
-      var68.i = (var63.i * var50.i) >> 16;
-      /* 16: addssw */
-      var69.i = ORC_CLAMP_SW (var65.i + var68.i);
-      /* 18: mulhsw */
-      var70.i = (var63.i * var51.i) >> 16;
-      /* 19: addssw */
-      var71.i = ORC_CLAMP_SW (var65.i + var70.i);
-      /* 21: mulhsw */
-      var72.i = (var64.i * var52.i) >> 16;
-      /* 22: addssw */
-      var73.i = ORC_CLAMP_SW (var71.i + var72.i);
-      /* 23: convssswb */
-      var74 = ORC_CLAMP_SB (var67.i);
-      /* 24: convssswb */
-      var75 = ORC_CLAMP_SB (var73.i);
-      /* 25: convssswb */
-      var76 = ORC_CLAMP_SB (var69.i);
-      /* 26: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var59;
-        _dest.x2[1] = var76;
-        var77.i = _dest.i;
-      }
-      /* 27: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var75;
-        _dest.x2[1] = var74;
-        var78.i = _dest.i;
-      }
-      /* 28: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var77.i;
-        _dest.x2[1] = var78.i;
-        var79.i = _dest.i;
-      }
-      /* 30: addb */
-      var54.x4[0] = var79.x4[0] + var53.x4[0];
-      var54.x4[1] = var79.x4[1] + var53.x4[1];
-      var54.x4[2] = var79.x4[2] + var53.x4[2];
-      var54.x4[3] = var79.x4[3] + var53.x4[3];
-      /* 31: storel */
-      ptr0[i] = var54;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_AYUV_ABGR (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var46;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var47;
-#else
-  orc_union32 var47;
-#endif
-  orc_union16 var48;
-  orc_union16 var49;
-  orc_union16 var50;
-  orc_union16 var51;
-  orc_union16 var52;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var53;
-#else
-  orc_union32 var53;
-#endif
-  orc_union32 var54;
-  orc_union32 var55;
-  orc_union16 var56;
-  orc_union16 var57;
-  orc_int8 var58;
-  orc_int8 var59;
-  orc_int8 var60;
-  orc_int8 var61;
-  orc_union16 var62;
-  orc_union16 var63;
-  orc_union16 var64;
-  orc_union16 var65;
-  orc_union16 var66;
-  orc_union16 var67;
-  orc_union16 var68;
-  orc_union16 var69;
-  orc_union16 var70;
-  orc_union16 var71;
-  orc_union16 var72;
-  orc_union16 var73;
-  orc_int8 var74;
-  orc_int8 var75;
-  orc_int8 var76;
-  orc_union16 var77;
-  orc_union16 var78;
-  orc_union32 var79;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-    /* 1: loadpb */
-    var47.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    /* 9: loadpw */
-    var48.i = ex->params[24];
-    /* 11: loadpw */
-    var49.i = ex->params[25];
-    /* 14: loadpw */
-    var50.i = ex->params[26];
-    /* 17: loadpw */
-    var51.i = ex->params[27];
-    /* 20: loadpw */
-    var52.i = ex->params[28];
-    /* 29: loadpb */
-    var53.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var46 = ptr4[i];
-      /* 2: subb */
-      var55.x4[0] = var46.x4[0] - var47.x4[0];
-      var55.x4[1] = var46.x4[1] - var47.x4[1];
-      var55.x4[2] = var46.x4[2] - var47.x4[2];
-      var55.x4[3] = var46.x4[3] - var47.x4[3];
-      /* 3: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var55.i;
-        var56.i = _src.x2[1];
-        var57.i = _src.x2[0];
-      }
-      /* 4: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var57.i;
-        var58 = _src.x2[1];
-        var59 = _src.x2[0];
-      }
-      /* 5: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var56.i;
-        var60 = _src.x2[1];
-        var61 = _src.x2[0];
-      }
-      /* 6: splatbw */
-      var62.i = ((var58 & 0xff) << 8) | (var58 & 0xff);
-      /* 7: splatbw */
-      var63.i = ((var61 & 0xff) << 8) | (var61 & 0xff);
-      /* 8: splatbw */
-      var64.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
-      /* 10: mulhsw */
-      var65.i = (var62.i * var48.i) >> 16;
-      /* 12: mulhsw */
-      var66.i = (var64.i * var49.i) >> 16;
-      /* 13: addssw */
-      var67.i = ORC_CLAMP_SW (var65.i + var66.i);
-      /* 15: mulhsw */
-      var68.i = (var63.i * var50.i) >> 16;
-      /* 16: addssw */
-      var69.i = ORC_CLAMP_SW (var65.i + var68.i);
-      /* 18: mulhsw */
-      var70.i = (var63.i * var51.i) >> 16;
-      /* 19: addssw */
-      var71.i = ORC_CLAMP_SW (var65.i + var70.i);
-      /* 21: mulhsw */
-      var72.i = (var64.i * var52.i) >> 16;
-      /* 22: addssw */
-      var73.i = ORC_CLAMP_SW (var71.i + var72.i);
-      /* 23: convssswb */
-      var74 = ORC_CLAMP_SB (var67.i);
-      /* 24: convssswb */
-      var75 = ORC_CLAMP_SB (var73.i);
-      /* 25: convssswb */
-      var76 = ORC_CLAMP_SB (var69.i);
-      /* 26: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var59;
-        _dest.x2[1] = var76;
-        var77.i = _dest.i;
-      }
-      /* 27: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var75;
-        _dest.x2[1] = var74;
-        var78.i = _dest.i;
-      }
-      /* 28: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var77.i;
-        _dest.x2[1] = var78.i;
-        var79.i = _dest.i;
-      }
-      /* 30: addb */
-      var54.x4[0] = var79.x4[0] + var53.x4[0];
-      var54.x4[1] = var79.x4[1] + var53.x4[1];
-      var54.x4[2] = var79.x4[2] + var53.x4[2];
-      var54.x4[3] = var79.x4[3] + var53.x4[3];
-      /* 31: storel */
-      ptr0[i] = var54;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_AYUV_ABGR (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
-    int p4, int p5, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
-        85, 86, 95, 65, 66, 71, 82, 11, 4, 4, 12, 4, 4, 14, 1, 128,
-        0, 0, 0, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2, 20, 1, 20,
-        1, 20, 1, 20, 1, 20, 2, 20, 2, 20, 2, 20, 2, 20, 2, 20,
-        2, 20, 1, 20, 1, 20, 1, 20, 4, 21, 2, 65, 45, 4, 16, 198,
-        38, 36, 45, 199, 33, 32, 36, 199, 35, 34, 38, 151, 36, 33, 151, 37,
-        34, 151, 38, 35, 90, 36, 36, 24, 90, 39, 38, 25, 71, 39, 36, 39,
-        90, 41, 37, 26, 71, 41, 36, 41, 90, 40, 37, 27, 71, 40, 36, 40,
-        90, 36, 38, 28, 71, 40, 40, 36, 159, 42, 39, 159, 43, 40, 159, 44,
-        41, 196, 41, 32, 44, 196, 39, 43, 42, 195, 45, 41, 39, 21, 2, 33,
-        0, 45, 16, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_ABGR);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_AYUV_ABGR");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_ABGR);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant (p, 1, 0x00000080, "c1");
-      orc_program_add_parameter (p, 2, "p1");
-      orc_program_add_parameter (p, 2, "p2");
-      orc_program_add_parameter (p, 2, "p3");
-      orc_program_add_parameter (p, 2, "p4");
-      orc_program_add_parameter (p, 2, "p5");
-      orc_program_add_temporary (p, 1, "t1");
-      orc_program_add_temporary (p, 1, "t2");
-      orc_program_add_temporary (p, 1, "t3");
-      orc_program_add_temporary (p, 1, "t4");
-      orc_program_add_temporary (p, 2, "t5");
-      orc_program_add_temporary (p, 2, "t6");
-      orc_program_add_temporary (p, 2, "t7");
-      orc_program_add_temporary (p, 2, "t8");
-      orc_program_add_temporary (p, 2, "t9");
-      orc_program_add_temporary (p, 2, "t10");
-      orc_program_add_temporary (p, 1, "t11");
-      orc_program_add_temporary (p, 1, "t12");
-      orc_program_add_temporary (p, 1, "t13");
-      orc_program_add_temporary (p, 4, "t14");
-
-      orc_program_append_2 (p, "subb", 2, ORC_VAR_T14, ORC_VAR_S1, ORC_VAR_C1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T7, ORC_VAR_T5,
-          ORC_VAR_T14, ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T7,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T6, ORC_VAR_T3, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_P1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T8, ORC_VAR_T7, ORC_VAR_P2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_T8,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T10, ORC_VAR_T6, ORC_VAR_P3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T5,
-          ORC_VAR_T10, ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T9, ORC_VAR_T6, ORC_VAR_P4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T9, ORC_VAR_T5, ORC_VAR_T9,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T7, ORC_VAR_P5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T11, ORC_VAR_T8,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T12, ORC_VAR_T9,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T13, ORC_VAR_T10,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T10, ORC_VAR_T1,
-          ORC_VAR_T13, ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T8, ORC_VAR_T12,
-          ORC_VAR_T11, ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T14, ORC_VAR_T10,
-          ORC_VAR_T8, ORC_VAR_D1);
-      orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, ORC_VAR_T14, ORC_VAR_C1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-  ex->params[ORC_VAR_P1] = p1;
-  ex->params[ORC_VAR_P2] = p2;
-  ex->params[ORC_VAR_P3] = p3;
-  ex->params[ORC_VAR_P4] = p4;
-  ex->params[ORC_VAR_P5] = p5;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_AYUV_RGBA */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_AYUV_RGBA (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
-    int p4, int p5, int n, int m)
-{
-  int i;
-  int j;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var46;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var47;
-#else
-  orc_union32 var47;
-#endif
-  orc_union16 var48;
-  orc_union16 var49;
-  orc_union16 var50;
-  orc_union16 var51;
-  orc_union16 var52;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var53;
-#else
-  orc_union32 var53;
-#endif
-  orc_union32 var54;
-  orc_union32 var55;
-  orc_union16 var56;
-  orc_union16 var57;
-  orc_int8 var58;
-  orc_int8 var59;
-  orc_int8 var60;
-  orc_int8 var61;
-  orc_union16 var62;
-  orc_union16 var63;
-  orc_union16 var64;
-  orc_union16 var65;
-  orc_union16 var66;
-  orc_union16 var67;
-  orc_union16 var68;
-  orc_union16 var69;
-  orc_union16 var70;
-  orc_union16 var71;
-  orc_union16 var72;
-  orc_union16 var73;
-  orc_int8 var74;
-  orc_int8 var75;
-  orc_int8 var76;
-  orc_union16 var77;
-  orc_union16 var78;
-  orc_union32 var79;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-    /* 1: loadpb */
-    var47.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    /* 9: loadpw */
-    var48.i = p1;
-    /* 11: loadpw */
-    var49.i = p2;
-    /* 14: loadpw */
-    var50.i = p3;
-    /* 17: loadpw */
-    var51.i = p4;
-    /* 20: loadpw */
-    var52.i = p5;
-    /* 29: loadpb */
-    var53.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var46 = ptr4[i];
-      /* 2: subb */
-      var55.x4[0] = var46.x4[0] - var47.x4[0];
-      var55.x4[1] = var46.x4[1] - var47.x4[1];
-      var55.x4[2] = var46.x4[2] - var47.x4[2];
-      var55.x4[3] = var46.x4[3] - var47.x4[3];
-      /* 3: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var55.i;
-        var56.i = _src.x2[1];
-        var57.i = _src.x2[0];
-      }
-      /* 4: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var57.i;
-        var58 = _src.x2[1];
-        var59 = _src.x2[0];
-      }
-      /* 5: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var56.i;
-        var60 = _src.x2[1];
-        var61 = _src.x2[0];
-      }
-      /* 6: splatbw */
-      var62.i = ((var58 & 0xff) << 8) | (var58 & 0xff);
-      /* 7: splatbw */
-      var63.i = ((var61 & 0xff) << 8) | (var61 & 0xff);
-      /* 8: splatbw */
-      var64.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
-      /* 10: mulhsw */
-      var65.i = (var62.i * var48.i) >> 16;
-      /* 12: mulhsw */
-      var66.i = (var64.i * var49.i) >> 16;
-      /* 13: addssw */
-      var67.i = ORC_CLAMP_SW (var65.i + var66.i);
-      /* 15: mulhsw */
-      var68.i = (var63.i * var50.i) >> 16;
-      /* 16: addssw */
-      var69.i = ORC_CLAMP_SW (var65.i + var68.i);
-      /* 18: mulhsw */
-      var70.i = (var63.i * var51.i) >> 16;
-      /* 19: addssw */
-      var71.i = ORC_CLAMP_SW (var65.i + var70.i);
-      /* 21: mulhsw */
-      var72.i = (var64.i * var52.i) >> 16;
-      /* 22: addssw */
-      var73.i = ORC_CLAMP_SW (var71.i + var72.i);
-      /* 23: convssswb */
-      var74 = ORC_CLAMP_SB (var67.i);
-      /* 24: convssswb */
-      var75 = ORC_CLAMP_SB (var73.i);
-      /* 25: convssswb */
-      var76 = ORC_CLAMP_SB (var69.i);
-      /* 26: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var74;
-        _dest.x2[1] = var75;
-        var77.i = _dest.i;
-      }
-      /* 27: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var76;
-        _dest.x2[1] = var59;
-        var78.i = _dest.i;
-      }
-      /* 28: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var77.i;
-        _dest.x2[1] = var78.i;
-        var79.i = _dest.i;
-      }
-      /* 30: addb */
-      var54.x4[0] = var79.x4[0] + var53.x4[0];
-      var54.x4[1] = var79.x4[1] + var53.x4[1];
-      var54.x4[2] = var79.x4[2] + var53.x4[2];
-      var54.x4[3] = var79.x4[3] + var53.x4[3];
-      /* 31: storel */
-      ptr0[i] = var54;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_AYUV_RGBA (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var46;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var47;
-#else
-  orc_union32 var47;
-#endif
-  orc_union16 var48;
-  orc_union16 var49;
-  orc_union16 var50;
-  orc_union16 var51;
-  orc_union16 var52;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var53;
-#else
-  orc_union32 var53;
-#endif
-  orc_union32 var54;
-  orc_union32 var55;
-  orc_union16 var56;
-  orc_union16 var57;
-  orc_int8 var58;
-  orc_int8 var59;
-  orc_int8 var60;
-  orc_int8 var61;
-  orc_union16 var62;
-  orc_union16 var63;
-  orc_union16 var64;
-  orc_union16 var65;
-  orc_union16 var66;
-  orc_union16 var67;
-  orc_union16 var68;
-  orc_union16 var69;
-  orc_union16 var70;
-  orc_union16 var71;
-  orc_union16 var72;
-  orc_union16 var73;
-  orc_int8 var74;
-  orc_int8 var75;
-  orc_int8 var76;
-  orc_union16 var77;
-  orc_union16 var78;
-  orc_union32 var79;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-    /* 1: loadpb */
-    var47.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    /* 9: loadpw */
-    var48.i = ex->params[24];
-    /* 11: loadpw */
-    var49.i = ex->params[25];
-    /* 14: loadpw */
-    var50.i = ex->params[26];
-    /* 17: loadpw */
-    var51.i = ex->params[27];
-    /* 20: loadpw */
-    var52.i = ex->params[28];
-    /* 29: loadpb */
-    var53.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var46 = ptr4[i];
-      /* 2: subb */
-      var55.x4[0] = var46.x4[0] - var47.x4[0];
-      var55.x4[1] = var46.x4[1] - var47.x4[1];
-      var55.x4[2] = var46.x4[2] - var47.x4[2];
-      var55.x4[3] = var46.x4[3] - var47.x4[3];
-      /* 3: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var55.i;
-        var56.i = _src.x2[1];
-        var57.i = _src.x2[0];
-      }
-      /* 4: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var57.i;
-        var58 = _src.x2[1];
-        var59 = _src.x2[0];
-      }
-      /* 5: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var56.i;
-        var60 = _src.x2[1];
-        var61 = _src.x2[0];
-      }
-      /* 6: splatbw */
-      var62.i = ((var58 & 0xff) << 8) | (var58 & 0xff);
-      /* 7: splatbw */
-      var63.i = ((var61 & 0xff) << 8) | (var61 & 0xff);
-      /* 8: splatbw */
-      var64.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
-      /* 10: mulhsw */
-      var65.i = (var62.i * var48.i) >> 16;
-      /* 12: mulhsw */
-      var66.i = (var64.i * var49.i) >> 16;
-      /* 13: addssw */
-      var67.i = ORC_CLAMP_SW (var65.i + var66.i);
-      /* 15: mulhsw */
-      var68.i = (var63.i * var50.i) >> 16;
-      /* 16: addssw */
-      var69.i = ORC_CLAMP_SW (var65.i + var68.i);
-      /* 18: mulhsw */
-      var70.i = (var63.i * var51.i) >> 16;
-      /* 19: addssw */
-      var71.i = ORC_CLAMP_SW (var65.i + var70.i);
-      /* 21: mulhsw */
-      var72.i = (var64.i * var52.i) >> 16;
-      /* 22: addssw */
-      var73.i = ORC_CLAMP_SW (var71.i + var72.i);
-      /* 23: convssswb */
-      var74 = ORC_CLAMP_SB (var67.i);
-      /* 24: convssswb */
-      var75 = ORC_CLAMP_SB (var73.i);
-      /* 25: convssswb */
-      var76 = ORC_CLAMP_SB (var69.i);
-      /* 26: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var74;
-        _dest.x2[1] = var75;
-        var77.i = _dest.i;
-      }
-      /* 27: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var76;
-        _dest.x2[1] = var59;
-        var78.i = _dest.i;
-      }
-      /* 28: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var77.i;
-        _dest.x2[1] = var78.i;
-        var79.i = _dest.i;
-      }
-      /* 30: addb */
-      var54.x4[0] = var79.x4[0] + var53.x4[0];
-      var54.x4[1] = var79.x4[1] + var53.x4[1];
-      var54.x4[2] = var79.x4[2] + var53.x4[2];
-      var54.x4[3] = var79.x4[3] + var53.x4[3];
-      /* 31: storel */
-      ptr0[i] = var54;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_AYUV_RGBA (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
-    int p4, int p5, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
-        85, 86, 95, 82, 71, 66, 65, 11, 4, 4, 12, 4, 4, 14, 1, 128,
-        0, 0, 0, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2, 20, 1, 20,
-        1, 20, 1, 20, 1, 20, 2, 20, 2, 20, 2, 20, 2, 20, 2, 20,
-        2, 20, 1, 20, 1, 20, 1, 20, 4, 21, 2, 65, 45, 4, 16, 198,
-        38, 36, 45, 199, 33, 32, 36, 199, 35, 34, 38, 151, 36, 33, 151, 37,
-        34, 151, 38, 35, 90, 36, 36, 24, 90, 39, 38, 25, 71, 39, 36, 39,
-        90, 41, 37, 26, 71, 41, 36, 41, 90, 40, 37, 27, 71, 40, 36, 40,
-        90, 36, 38, 28, 71, 40, 40, 36, 159, 42, 39, 159, 43, 40, 159, 44,
-        41, 196, 39, 42, 43, 196, 41, 44, 32, 195, 45, 39, 41, 21, 2, 33,
-        0, 45, 16, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_RGBA);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_AYUV_RGBA");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_RGBA);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant (p, 1, 0x00000080, "c1");
-      orc_program_add_parameter (p, 2, "p1");
-      orc_program_add_parameter (p, 2, "p2");
-      orc_program_add_parameter (p, 2, "p3");
-      orc_program_add_parameter (p, 2, "p4");
-      orc_program_add_parameter (p, 2, "p5");
-      orc_program_add_temporary (p, 1, "t1");
-      orc_program_add_temporary (p, 1, "t2");
-      orc_program_add_temporary (p, 1, "t3");
-      orc_program_add_temporary (p, 1, "t4");
-      orc_program_add_temporary (p, 2, "t5");
-      orc_program_add_temporary (p, 2, "t6");
-      orc_program_add_temporary (p, 2, "t7");
-      orc_program_add_temporary (p, 2, "t8");
-      orc_program_add_temporary (p, 2, "t9");
-      orc_program_add_temporary (p, 2, "t10");
-      orc_program_add_temporary (p, 1, "t11");
-      orc_program_add_temporary (p, 1, "t12");
-      orc_program_add_temporary (p, 1, "t13");
-      orc_program_add_temporary (p, 4, "t14");
-
-      orc_program_append_2 (p, "subb", 2, ORC_VAR_T14, ORC_VAR_S1, ORC_VAR_C1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T7, ORC_VAR_T5,
-          ORC_VAR_T14, ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T7,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T6, ORC_VAR_T3, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_P1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T8, ORC_VAR_T7, ORC_VAR_P2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_T8,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T10, ORC_VAR_T6, ORC_VAR_P3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T5,
-          ORC_VAR_T10, ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T9, ORC_VAR_T6, ORC_VAR_P4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T9, ORC_VAR_T5, ORC_VAR_T9,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T7, ORC_VAR_P5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T11, ORC_VAR_T8,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T12, ORC_VAR_T9,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T13, ORC_VAR_T10,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T8, ORC_VAR_T11,
-          ORC_VAR_T12, ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T10, ORC_VAR_T13,
-          ORC_VAR_T1, ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T14, ORC_VAR_T8,
-          ORC_VAR_T10, ORC_VAR_D1);
-      orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, ORC_VAR_T14, ORC_VAR_C1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-  ex->params[ORC_VAR_P1] = p1;
-  ex->params[ORC_VAR_P2] = p2;
-  ex->params[ORC_VAR_P3] = p3;
-  ex->params[ORC_VAR_P4] = p4;
-  ex->params[ORC_VAR_P5] = p5;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_I420_BGRA */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_I420_BGRA (guint8 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
-    const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int p4, int p5,
-    int n)
-{
-  int i;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  const orc_int8 *ORC_RESTRICT ptr5;
-  const orc_int8 *ORC_RESTRICT ptr6;
-  orc_int8 var42;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_int8 var43;
-#else
-  orc_int8 var43;
-#endif
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_int8 var44;
-#else
-  orc_int8 var44;
-#endif
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_int8 var45;
-#else
-  orc_int8 var45;
-#endif
-  orc_union16 var46;
-  orc_union16 var47;
-  orc_union16 var48;
-  orc_union16 var49;
-  orc_union16 var50;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_int8 var51;
-#else
-  orc_int8 var51;
-#endif
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var52;
-#else
-  orc_union32 var52;
-#endif
-  orc_union32 var53;
-  orc_int8 var54;
-  orc_union16 var55;
-  orc_int8 var56;
-  orc_int8 var57;
-  orc_union16 var58;
-  orc_int8 var59;
-  orc_int8 var60;
-  orc_union16 var61;
-  orc_union16 var62;
-  orc_union16 var63;
-  orc_union16 var64;
-  orc_union16 var65;
-  orc_union16 var66;
-  orc_union16 var67;
-  orc_union16 var68;
-  orc_union16 var69;
-  orc_union16 var70;
-  orc_int8 var71;
-  orc_int8 var72;
-  orc_int8 var73;
-  orc_union16 var74;
-  orc_union16 var75;
-  orc_union32 var76;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_int8 *) s1;
-  ptr5 = (orc_int8 *) s2;
-  ptr6 = (orc_int8 *) s3;
-
-  /* 1: loadpb */
-  var43 = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-  /* 5: loadpb */
-  var44 = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-  /* 9: loadpb */
-  var45 = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-  /* 12: loadpw */
-  var46.i = p1;
-  /* 14: loadpw */
-  var47.i = p2;
-  /* 17: loadpw */
-  var48.i = p3;
-  /* 20: loadpw */
-  var49.i = p4;
-  /* 23: loadpw */
-  var50.i = p5;
-  /* 30: loadpb */
-  var51 = (int) 0x0000007f;     /* 127 or 6.27463e-322f */
-  /* 33: loadpb */
-  var52.x4[0] = (int) 0x00000080;       /* 128 or 6.32404e-322f */
-  var52.x4[1] = (int) 0x00000080;       /* 128 or 6.32404e-322f */
-  var52.x4[2] = (int) 0x00000080;       /* 128 or 6.32404e-322f */
-  var52.x4[3] = (int) 0x00000080;       /* 128 or 6.32404e-322f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadb */
-    var42 = ptr4[i];
-    /* 2: subb */
-    var54 = var42 - var43;
-    /* 3: splatbw */
-    var55.i = ((var54 & 0xff) << 8) | (var54 & 0xff);
-    /* 4: loadupdb */
-    var56 = ptr5[i >> 1];
-    /* 6: subb */
-    var57 = var56 - var44;
-    /* 7: splatbw */
-    var58.i = ((var57 & 0xff) << 8) | (var57 & 0xff);
-    /* 8: loadupdb */
-    var59 = ptr6[i >> 1];
-    /* 10: subb */
-    var60 = var59 - var45;
-    /* 11: splatbw */
-    var61.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
-    /* 13: mulhsw */
-    var62.i = (var55.i * var46.i) >> 16;
-    /* 15: mulhsw */
-    var63.i = (var61.i * var47.i) >> 16;
-    /* 16: addssw */
-    var64.i = ORC_CLAMP_SW (var62.i + var63.i);
-    /* 18: mulhsw */
-    var65.i = (var58.i * var48.i) >> 16;
-    /* 19: addssw */
-    var66.i = ORC_CLAMP_SW (var62.i + var65.i);
-    /* 21: mulhsw */
-    var67.i = (var58.i * var49.i) >> 16;
-    /* 22: addssw */
-    var68.i = ORC_CLAMP_SW (var62.i + var67.i);
-    /* 24: mulhsw */
-    var69.i = (var61.i * var50.i) >> 16;
-    /* 25: addssw */
-    var70.i = ORC_CLAMP_SW (var68.i + var69.i);
-    /* 26: convssswb */
-    var71 = ORC_CLAMP_SB (var64.i);
-    /* 27: convssswb */
-    var72 = ORC_CLAMP_SB (var70.i);
-    /* 28: convssswb */
-    var73 = ORC_CLAMP_SB (var66.i);
-    /* 29: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var73;
-      _dest.x2[1] = var72;
-      var74.i = _dest.i;
-    }
-    /* 31: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var71;
-      _dest.x2[1] = var51;
-      var75.i = _dest.i;
-    }
-    /* 32: mergewl */
-    {
-      orc_union32 _dest;
-      _dest.x2[0] = var74.i;
-      _dest.x2[1] = var75.i;
-      var76.i = _dest.i;
-    }
-    /* 34: addb */
-    var53.x4[0] = var76.x4[0] + var52.x4[0];
-    var53.x4[1] = var76.x4[1] + var52.x4[1];
-    var53.x4[2] = var76.x4[2] + var52.x4[2];
-    var53.x4[3] = var76.x4[3] + var52.x4[3];
-    /* 35: storel */
-    ptr0[i] = var53;
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_I420_BGRA (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  const orc_int8 *ORC_RESTRICT ptr5;
-  const orc_int8 *ORC_RESTRICT ptr6;
-  orc_int8 var42;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_int8 var43;
-#else
-  orc_int8 var43;
-#endif
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_int8 var44;
-#else
-  orc_int8 var44;
-#endif
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_int8 var45;
-#else
-  orc_int8 var45;
-#endif
-  orc_union16 var46;
-  orc_union16 var47;
-  orc_union16 var48;
-  orc_union16 var49;
-  orc_union16 var50;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_int8 var51;
-#else
-  orc_int8 var51;
-#endif
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var52;
-#else
-  orc_union32 var52;
-#endif
-  orc_union32 var53;
-  orc_int8 var54;
-  orc_union16 var55;
-  orc_int8 var56;
-  orc_int8 var57;
-  orc_union16 var58;
-  orc_int8 var59;
-  orc_int8 var60;
-  orc_union16 var61;
-  orc_union16 var62;
-  orc_union16 var63;
-  orc_union16 var64;
-  orc_union16 var65;
-  orc_union16 var66;
-  orc_union16 var67;
-  orc_union16 var68;
-  orc_union16 var69;
-  orc_union16 var70;
-  orc_int8 var71;
-  orc_int8 var72;
-  orc_int8 var73;
-  orc_union16 var74;
-  orc_union16 var75;
-  orc_union32 var76;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_int8 *) ex->arrays[4];
-  ptr5 = (orc_int8 *) ex->arrays[5];
-  ptr6 = (orc_int8 *) ex->arrays[6];
-
-  /* 1: loadpb */
-  var43 = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-  /* 5: loadpb */
-  var44 = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-  /* 9: loadpb */
-  var45 = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-  /* 12: loadpw */
-  var46.i = ex->params[24];
-  /* 14: loadpw */
-  var47.i = ex->params[25];
-  /* 17: loadpw */
-  var48.i = ex->params[26];
-  /* 20: loadpw */
-  var49.i = ex->params[27];
-  /* 23: loadpw */
-  var50.i = ex->params[28];
-  /* 30: loadpb */
-  var51 = (int) 0x0000007f;     /* 127 or 6.27463e-322f */
-  /* 33: loadpb */
-  var52.x4[0] = (int) 0x00000080;       /* 128 or 6.32404e-322f */
-  var52.x4[1] = (int) 0x00000080;       /* 128 or 6.32404e-322f */
-  var52.x4[2] = (int) 0x00000080;       /* 128 or 6.32404e-322f */
-  var52.x4[3] = (int) 0x00000080;       /* 128 or 6.32404e-322f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadb */
-    var42 = ptr4[i];
-    /* 2: subb */
-    var54 = var42 - var43;
-    /* 3: splatbw */
-    var55.i = ((var54 & 0xff) << 8) | (var54 & 0xff);
-    /* 4: loadupdb */
-    var56 = ptr5[i >> 1];
-    /* 6: subb */
-    var57 = var56 - var44;
-    /* 7: splatbw */
-    var58.i = ((var57 & 0xff) << 8) | (var57 & 0xff);
-    /* 8: loadupdb */
-    var59 = ptr6[i >> 1];
-    /* 10: subb */
-    var60 = var59 - var45;
-    /* 11: splatbw */
-    var61.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
-    /* 13: mulhsw */
-    var62.i = (var55.i * var46.i) >> 16;
-    /* 15: mulhsw */
-    var63.i = (var61.i * var47.i) >> 16;
-    /* 16: addssw */
-    var64.i = ORC_CLAMP_SW (var62.i + var63.i);
-    /* 18: mulhsw */
-    var65.i = (var58.i * var48.i) >> 16;
-    /* 19: addssw */
-    var66.i = ORC_CLAMP_SW (var62.i + var65.i);
-    /* 21: mulhsw */
-    var67.i = (var58.i * var49.i) >> 16;
-    /* 22: addssw */
-    var68.i = ORC_CLAMP_SW (var62.i + var67.i);
-    /* 24: mulhsw */
-    var69.i = (var61.i * var50.i) >> 16;
-    /* 25: addssw */
-    var70.i = ORC_CLAMP_SW (var68.i + var69.i);
-    /* 26: convssswb */
-    var71 = ORC_CLAMP_SB (var64.i);
-    /* 27: convssswb */
-    var72 = ORC_CLAMP_SB (var70.i);
-    /* 28: convssswb */
-    var73 = ORC_CLAMP_SB (var66.i);
-    /* 29: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var73;
-      _dest.x2[1] = var72;
-      var74.i = _dest.i;
-    }
-    /* 31: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var71;
-      _dest.x2[1] = var51;
-      var75.i = _dest.i;
-    }
-    /* 32: mergewl */
-    {
-      orc_union32 _dest;
-      _dest.x2[0] = var74.i;
-      _dest.x2[1] = var75.i;
-      var76.i = _dest.i;
-    }
-    /* 34: addb */
-    var53.x4[0] = var76.x4[0] + var52.x4[0];
-    var53.x4[1] = var76.x4[1] + var52.x4[1];
-    var53.x4[2] = var76.x4[2] + var52.x4[2];
-    var53.x4[3] = var76.x4[3] + var52.x4[3];
-    /* 35: storel */
-    ptr0[i] = var53;
-  }
-
-}
-
-void
-video_convert_orc_convert_I420_BGRA (guint8 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
-    const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int p4, int p5,
-    int n)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
-        95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 73, 52, 50,
-        48, 95, 66, 71, 82, 65, 11, 4, 4, 12, 1, 1, 12, 1, 1, 12,
-        1, 1, 14, 1, 128, 0, 0, 0, 14, 4, 127, 0, 0, 0, 16, 2,
-        16, 2, 16, 2, 16, 2, 16, 2, 20, 2, 20, 2, 20, 2, 20, 2,
-        20, 2, 20, 2, 20, 1, 20, 1, 20, 1, 20, 4, 65, 38, 4, 16,
-        151, 32, 38, 45, 38, 5, 65, 38, 38, 16, 151, 33, 38, 45, 38, 6,
-        65, 38, 38, 16, 151, 34, 38, 90, 32, 32, 24, 90, 35, 34, 25, 71,
-        35, 32, 35, 90, 37, 33, 26, 71, 37, 32, 37, 90, 36, 33, 27, 71,
-        36, 32, 36, 90, 32, 34, 28, 71, 36, 36, 32, 159, 38, 35, 159, 39,
-        36, 159, 40, 37, 196, 37, 40, 39, 196, 35, 38, 17, 195, 41, 37, 35,
-        21, 2, 33, 0, 41, 16, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_I420_BGRA);
-#else
-      p = orc_program_new ();
-      orc_program_set_name (p, "video_convert_orc_convert_I420_BGRA");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_I420_BGRA);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 1, "s1");
-      orc_program_add_source (p, 1, "s2");
-      orc_program_add_source (p, 1, "s3");
-      orc_program_add_constant (p, 1, 0x00000080, "c1");
-      orc_program_add_constant (p, 4, 0x0000007f, "c2");
-      orc_program_add_parameter (p, 2, "p1");
-      orc_program_add_parameter (p, 2, "p2");
-      orc_program_add_parameter (p, 2, "p3");
-      orc_program_add_parameter (p, 2, "p4");
-      orc_program_add_parameter (p, 2, "p5");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 2, "t2");
-      orc_program_add_temporary (p, 2, "t3");
-      orc_program_add_temporary (p, 2, "t4");
-      orc_program_add_temporary (p, 2, "t5");
-      orc_program_add_temporary (p, 2, "t6");
-      orc_program_add_temporary (p, 1, "t7");
-      orc_program_add_temporary (p, 1, "t8");
-      orc_program_add_temporary (p, 1, "t9");
-      orc_program_add_temporary (p, 4, "t10");
-
-      orc_program_append_2 (p, "subb", 0, ORC_VAR_T7, ORC_VAR_S1, ORC_VAR_C1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T1, ORC_VAR_T7, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T7, ORC_VAR_S2,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "subb", 0, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_C1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T2, ORC_VAR_T7, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T7, ORC_VAR_S3,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "subb", 0, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_C1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T3, ORC_VAR_T7, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_P2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T4, ORC_VAR_T1, ORC_VAR_T4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T6, ORC_VAR_T2, ORC_VAR_P3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T6, ORC_VAR_T1, ORC_VAR_T6,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_P4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T5, ORC_VAR_T1, ORC_VAR_T5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_P5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_T1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T7, ORC_VAR_T4,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T8, ORC_VAR_T5,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T9, ORC_VAR_T6,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T6, ORC_VAR_T9, ORC_VAR_T8,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T4, ORC_VAR_T7, ORC_VAR_C2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T10, ORC_VAR_T6,
-          ORC_VAR_T4, ORC_VAR_D1);
-      orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, ORC_VAR_T10, ORC_VAR_C1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-  ex->arrays[ORC_VAR_S3] = (void *) s3;
-  ex->params[ORC_VAR_P1] = p1;
-  ex->params[ORC_VAR_P2] = p2;
-  ex->params[ORC_VAR_P3] = p3;
-  ex->params[ORC_VAR_P4] = p4;
-  ex->params[ORC_VAR_P5] = p5;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
diff --git a/gst/videoconvert/gstvideoconvertorc-dist.h b/gst/videoconvert/gstvideoconvertorc-dist.h
deleted file mode 100644 (file)
index b4981d1..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-
-/* autogenerated from gstvideoconvertorc.orc */
-
-#ifndef _GSTVIDEOCONVERTORC_H_
-#define _GSTVIDEOCONVERTORC_H_
-
-#include <glib.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-
-#ifndef _ORC_INTEGER_TYPEDEFS_
-#define _ORC_INTEGER_TYPEDEFS_
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-#include <stdint.h>
-typedef int8_t orc_int8;
-typedef int16_t orc_int16;
-typedef int32_t orc_int32;
-typedef int64_t orc_int64;
-typedef uint8_t orc_uint8;
-typedef uint16_t orc_uint16;
-typedef uint32_t orc_uint32;
-typedef uint64_t orc_uint64;
-#define ORC_UINT64_C(x) UINT64_C(x)
-#elif defined(_MSC_VER)
-typedef signed __int8 orc_int8;
-typedef signed __int16 orc_int16;
-typedef signed __int32 orc_int32;
-typedef signed __int64 orc_int64;
-typedef unsigned __int8 orc_uint8;
-typedef unsigned __int16 orc_uint16;
-typedef unsigned __int32 orc_uint32;
-typedef unsigned __int64 orc_uint64;
-#define ORC_UINT64_C(x) (x##Ui64)
-#define inline __inline
-#else
-#include <limits.h>
-typedef signed char orc_int8;
-typedef short orc_int16;
-typedef int orc_int32;
-typedef unsigned char orc_uint8;
-typedef unsigned short orc_uint16;
-typedef unsigned int orc_uint32;
-#if INT_MAX == LONG_MAX
-typedef long long orc_int64;
-typedef unsigned long long orc_uint64;
-#define ORC_UINT64_C(x) (x##ULL)
-#else
-typedef long orc_int64;
-typedef unsigned long orc_uint64;
-#define ORC_UINT64_C(x) (x##UL)
-#endif
-#endif
-typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16;
-typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32;
-typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; } orc_union64;
-#endif
-#ifndef ORC_RESTRICT
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-#define ORC_RESTRICT restrict
-#elif defined(__GNUC__) && __GNUC__ >= 4
-#define ORC_RESTRICT __restrict__
-#else
-#define ORC_RESTRICT
-#endif
-#endif
-
-#ifndef ORC_INTERNAL
-#if defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)
-#define ORC_INTERNAL __attribute__((visibility("hidden")))
-#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
-#define ORC_INTERNAL __hidden
-#elif defined (__GNUC__)
-#define ORC_INTERNAL __attribute__((visibility("hidden")))
-#else
-#define ORC_INTERNAL
-#endif
-#endif
-
-void video_convert_orc_memcpy_2d (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_convert_I420_UYVY (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n);
-void video_convert_orc_convert_I420_YUY2 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n);
-void video_convert_orc_convert_I420_AYUV (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n);
-void video_convert_orc_convert_YUY2_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3, guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n);
-void video_convert_orc_convert_UYVY_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_planar_chroma_420_422 (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_planar_chroma_420_444 (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_planar_chroma_422_444 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_planar_chroma_444_422 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_planar_chroma_444_420 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m);
-void video_convert_orc_planar_chroma_422_420 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m);
-void video_convert_orc_convert_YUY2_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_convert_UYVY_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_convert_YUY2_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_convert_UYVY_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_convert_YUY2_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_convert_UYVY_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_convert_UYVY_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3, guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n);
-void video_convert_orc_convert_AYUV_I420 (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3, int d3_stride, guint8 * ORC_RESTRICT d4, int d4_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m);
-void video_convert_orc_convert_AYUV_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_convert_AYUV_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_convert_AYUV_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_convert_AYUV_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_convert_Y42B_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
-void video_convert_orc_convert_Y42B_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
-void video_convert_orc_convert_Y42B_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
-void video_convert_orc_convert_Y444_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
-void video_convert_orc_convert_Y444_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
-void video_convert_orc_convert_Y444_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
-void video_convert_orc_convert_AYUV_ARGB (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3, int p4, int p5, int n, int m);
-void video_convert_orc_convert_AYUV_BGRA (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3, int p4, int p5, int n, int m);
-void video_convert_orc_convert_AYUV_ABGR (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3, int p4, int p5, int n, int m);
-void video_convert_orc_convert_AYUV_RGBA (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3, int p4, int p5, int n, int m);
-void video_convert_orc_convert_I420_BGRA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int p4, int p5, int n);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
diff --git a/gst/videoconvert/gstvideoconvertorc.orc b/gst/videoconvert/gstvideoconvertorc.orc
deleted file mode 100644 (file)
index 29a1998..0000000
+++ /dev/null
@@ -1,729 +0,0 @@
-
-.function video_convert_orc_memcpy_2d
-.flags 2d
-.dest 1 d1 guint8
-.source 1 s1 guint8
-
-copyb d1, s1
-
-.function video_convert_orc_convert_I420_UYVY
-.dest 4 d1 guint8
-.dest 4 d2 guint8
-.source 2 y1 guint8
-.source 2 y2 guint8
-.source 1 u guint8
-.source 1 v guint8
-.temp 2 uv
-
-mergebw uv, u, v
-x2 mergebw d1, uv, y1
-x2 mergebw d2, uv, y2
-
-
-.function video_convert_orc_convert_I420_YUY2
-.dest 4 d1 guint8
-.dest 4 d2 guint8
-.source 2 y1 guint8
-.source 2 y2 guint8
-.source 1 u guint8
-.source 1 v guint8
-.temp 2 uv
-
-mergebw uv, u, v
-x2 mergebw d1, y1, uv
-x2 mergebw d2, y2, uv
-
-
-
-.function video_convert_orc_convert_I420_AYUV
-.dest 4 d1 guint8
-.dest 4 d2 guint8
-.source 1 y1 guint8
-.source 1 y2 guint8
-.source 1 u guint8
-.source 1 v guint8
-.const 1 c255 255
-.temp 2 uv
-.temp 2 ay
-.temp 1 tu
-.temp 1 tv
-
-loadupdb tu, u
-loadupdb tv, v
-mergebw uv, tu, tv
-mergebw ay, c255, y1
-mergewl d1, ay, uv
-mergebw ay, c255, y2
-mergewl d2, ay, uv
-
-
-.function video_convert_orc_convert_YUY2_I420
-.dest 2 y1 guint8
-.dest 2 y2 guint8
-.dest 1 u guint8
-.dest 1 v guint8
-.source 4 yuv1 guint8
-.source 4 yuv2 guint8
-.temp 2 t1
-.temp 2 t2
-.temp 2 ty
-
-x2 splitwb t1, ty, yuv1
-storew y1, ty
-x2 splitwb t2, ty, yuv2
-storew y2, ty
-x2 avgub t1, t1, t2
-splitwb v, u, t1
-
-
-.function video_convert_orc_convert_UYVY_YUY2
-.flags 2d
-.dest 4 yuy2 guint8
-.source 4 uyvy guint8
-
-x2 swapw yuy2, uyvy
-
-
-.function video_convert_orc_planar_chroma_420_422
-.flags 2d
-.dest 1 d1 guint8
-.dest 1 d2 guint8
-.source 1 s guint8
-
-copyb d1, s
-copyb d2, s
-
-
-.function video_convert_orc_planar_chroma_420_444
-.flags 2d
-.dest 2 d1 guint8
-.dest 2 d2 guint8
-.source 1 s guint8
-.temp 2 t
-
-splatbw t, s
-storew d1, t
-storew d2, t
-
-
-.function video_convert_orc_planar_chroma_422_444
-.flags 2d
-.dest 2 d1 guint8
-.source 1 s guint8
-.temp 2 t
-
-splatbw t, s
-storew d1, t
-
-
-.function video_convert_orc_planar_chroma_444_422
-.flags 2d
-.dest 1 d guint8
-.source 2 s guint8
-.temp 1 t1
-.temp 1 t2
-
-splitwb t1, t2, s
-avgub d, t1, t2
-
-
-.function video_convert_orc_planar_chroma_444_420
-.flags 2d
-.dest 1 d guint8
-.source 2 s1 guint8
-.source 2 s2 guint8
-.temp 2 t
-.temp 1 t1
-.temp 1 t2
-
-x2 avgub t, s1, s2
-splitwb t1, t2, t
-avgub d, t1, t2
-
-
-.function video_convert_orc_planar_chroma_422_420
-.flags 2d
-.dest 1 d guint8
-.source 1 s1 guint8
-.source 1 s2 guint8
-
-avgub d, s1, s2
-
-
-.function video_convert_orc_convert_YUY2_AYUV
-.flags 2d
-.dest 8 ayuv guint8
-.source 4 yuy2 guint8
-.const 2 c255 0xff
-.temp 2 yy
-.temp 2 uv
-.temp 4 ayay
-.temp 4 uvuv
-
-x2 splitwb uv, yy, yuy2
-x2 mergebw ayay, c255, yy
-mergewl uvuv, uv, uv
-x2 mergewl ayuv, ayay, uvuv
-
-
-.function video_convert_orc_convert_UYVY_AYUV
-.flags 2d
-.dest 8 ayuv guint8
-.source 4 uyvy guint8
-.const 2 c255 0xff
-.temp 2 yy
-.temp 2 uv
-.temp 4 ayay
-.temp 4 uvuv
-
-x2 splitwb yy, uv, uyvy
-x2 mergebw ayay, c255, yy
-mergewl uvuv, uv, uv
-x2 mergewl ayuv, ayay, uvuv
-
-
-.function video_convert_orc_convert_YUY2_Y42B
-.flags 2d
-.dest 2 y guint8
-.dest 1 u guint8
-.dest 1 v guint8
-.source 4 yuy2 guint8
-.temp 2 uv
-
-x2 splitwb uv, y, yuy2
-splitwb v, u, uv
-
-
-.function video_convert_orc_convert_UYVY_Y42B
-.flags 2d
-.dest 2 y guint8
-.dest 1 u guint8
-.dest 1 v guint8
-.source 4 uyvy guint8
-.temp 2 uv
-
-x2 splitwb y, uv, uyvy
-splitwb v, u, uv
-
-
-.function video_convert_orc_convert_YUY2_Y444
-.flags 2d
-.dest 2 y guint8
-.dest 2 uu guint8
-.dest 2 vv guint8
-.source 4 yuy2 guint8
-.temp 2 uv
-.temp 1 u
-.temp 1 v
-
-x2 splitwb uv, y, yuy2
-splitwb v, u, uv
-splatbw uu, u
-splatbw vv, v
-
-
-.function video_convert_orc_convert_UYVY_Y444
-.flags 2d
-.dest 2 y guint8
-.dest 2 uu guint8
-.dest 2 vv guint8
-.source 4 uyvy guint8
-.temp 2 uv
-.temp 1 u
-.temp 1 v
-
-x2 splitwb y, uv, uyvy
-splitwb v, u, uv
-splatbw uu, u
-splatbw vv, v
-
-
-.function video_convert_orc_convert_UYVY_I420
-.dest 2 y1 guint8
-.dest 2 y2 guint8
-.dest 1 u guint8
-.dest 1 v guint8
-.source 4 yuv1 guint8
-.source 4 yuv2 guint8
-.temp 2 t1
-.temp 2 t2
-.temp 2 ty
-
-x2 splitwb ty, t1, yuv1
-storew y1, ty
-x2 splitwb ty, t2, yuv2
-storew y2, ty
-x2 avgub t1, t1, t2
-splitwb v, u, t1
-
-
-
-.function video_convert_orc_convert_AYUV_I420
-.flags 2d
-.dest 2 y1 guint8
-.dest 2 y2 guint8
-.dest 1 u guint8
-.dest 1 v guint8
-.source 8 ayuv1 guint8
-.source 8 ayuv2 guint8
-.temp 4 ay
-.temp 4 uv1
-.temp 4 uv2
-.temp 4 uv
-.temp 2 uu
-.temp 2 vv
-.temp 1 t1
-.temp 1 t2
-
-x2 splitlw uv1, ay, ayuv1
-x2 select1wb y1, ay
-x2 splitlw uv2, ay, ayuv2
-x2 select1wb y2, ay
-x4 avgub uv, uv1, uv2
-x2 splitwb vv, uu, uv
-splitwb t1, t2, uu
-avgub u, t1, t2
-splitwb t1, t2, vv
-avgub v, t1, t2
-
-
-
-.function video_convert_orc_convert_AYUV_YUY2
-.flags 2d
-.dest 4 yuy2 guint8
-.source 8 ayuv guint8
-.temp 2 yy
-.temp 2 uv1
-.temp 2 uv2
-.temp 4 ayay
-.temp 4 uvuv
-
-x2 splitlw uvuv, ayay, ayuv
-splitlw uv1, uv2, uvuv
-x2 avgub uv1, uv1, uv2
-x2 select1wb yy, ayay
-x2 mergebw yuy2, yy, uv1
-
-
-.function video_convert_orc_convert_AYUV_UYVY
-.flags 2d
-.dest 4 yuy2 guint8
-.source 8 ayuv guint8
-.temp 2 yy
-.temp 2 uv1
-.temp 2 uv2
-.temp 4 ayay
-.temp 4 uvuv
-
-x2 splitlw uvuv, ayay, ayuv
-splitlw uv1, uv2, uvuv
-x2 avgub uv1, uv1, uv2
-x2 select1wb yy, ayay
-x2 mergebw yuy2, uv1, yy
-
-
-
-.function video_convert_orc_convert_AYUV_Y42B
-.flags 2d
-.dest 2 y guint8
-.dest 1 u guint8
-.dest 1 v guint8
-.source 8 ayuv guint8
-.temp 4 ayay
-.temp 4 uvuv
-.temp 2 uv1
-.temp 2 uv2
-
-x2 splitlw uvuv, ayay, ayuv
-splitlw uv1, uv2, uvuv
-x2 avgub uv1, uv1, uv2
-splitwb v, u, uv1
-x2 select1wb y, ayay
-
-
-.function video_convert_orc_convert_AYUV_Y444
-.flags 2d
-.dest 1 y guint8
-.dest 1 u guint8
-.dest 1 v guint8
-.source 4 ayuv guint8
-.temp 2 ay
-.temp 2 uv
-
-splitlw uv, ay, ayuv
-splitwb v, u, uv
-select1wb y, ay
-
-
-.function video_convert_orc_convert_Y42B_YUY2
-.flags 2d
-.dest 4 yuy2 guint8
-.source 2 y guint8
-.source 1 u guint8
-.source 1 v guint8
-.temp 2 uv
-
-mergebw uv, u, v
-x2 mergebw yuy2, y, uv
-
-
-.function video_convert_orc_convert_Y42B_UYVY
-.flags 2d
-.dest 4 uyvy guint8
-.source 2 y guint8
-.source 1 u guint8
-.source 1 v guint8
-.temp 2 uv
-
-mergebw uv, u, v
-x2 mergebw uyvy, uv, y
-
-
-.function video_convert_orc_convert_Y42B_AYUV
-.flags 2d
-.dest 8 ayuv guint8
-.source 2 yy guint8
-.source 1 u guint8
-.source 1 v guint8
-.const 1 c255 255
-.temp 2 uv
-.temp 2 ay
-.temp 4 uvuv
-.temp 4 ayay
-
-mergebw uv, u, v
-x2 mergebw ayay, c255, yy
-mergewl uvuv, uv, uv
-x2 mergewl ayuv, ayay, uvuv
-
-
-.function video_convert_orc_convert_Y444_YUY2
-.flags 2d
-.dest 4 yuy2 guint8
-.source 2 y guint8
-.source 2 u guint8
-.source 2 v guint8
-.temp 2 uv
-.temp 4 uvuv
-.temp 2 uv1
-.temp 2 uv2
-
-x2 mergebw uvuv, u, v
-splitlw uv1, uv2, uvuv
-x2 avgub uv, uv1, uv2
-x2 mergebw yuy2, y, uv
-
-
-.function video_convert_orc_convert_Y444_UYVY
-.flags 2d
-.dest 4 uyvy guint8
-.source 2 y guint8
-.source 2 u guint8
-.source 2 v guint8
-.temp 2 uv
-.temp 4 uvuv
-.temp 2 uv1
-.temp 2 uv2
-
-x2 mergebw uvuv, u, v
-splitlw uv1, uv2, uvuv
-x2 avgub uv, uv1, uv2
-x2 mergebw uyvy, uv, y
-
-
-.function video_convert_orc_convert_Y444_AYUV
-.flags 2d
-.dest 4 ayuv guint8
-.source 1 yy guint8
-.source 1 u guint8
-.source 1 v guint8
-.const 1 c255 255
-.temp 2 uv
-.temp 2 ay
-
-mergebw uv, u, v
-mergebw ay, c255, yy
-mergewl ayuv, ay, uv
-
-
-
-.function video_convert_orc_convert_AYUV_ARGB
-.flags 2d
-.dest 4 argb guint8
-.source 4 ayuv guint8
-.param 2 p1
-.param 2 p2
-.param 2 p3
-.param 2 p4
-.param 2 p5
-.temp 1 a
-.temp 1 y
-.temp 1 u
-.temp 1 v
-.temp 2 wy
-.temp 2 wu
-.temp 2 wv
-.temp 2 wr
-.temp 2 wg
-.temp 2 wb
-.temp 1 r
-.temp 1 g
-.temp 1 b
-.temp 4 x
-.const 1 c128 128
-
-x4 subb x, ayuv, c128 
-splitlw wv, wy, x
-splitwb y, a, wy
-splitwb v, u, wv
-
-splatbw wy, y
-splatbw wu, u
-splatbw wv, v
-
-mulhsw wy, wy, p1
-
-mulhsw wr, wv, p2
-addssw wr, wy, wr
-
-mulhsw wb, wu, p3
-addssw wb, wy, wb
-
-mulhsw wg, wu, p4
-addssw wg, wy, wg
-mulhsw wy, wv, p5
-addssw wg, wg, wy
-
-convssswb r, wr
-convssswb g, wg
-convssswb b, wb
-
-mergebw wr, a, r
-mergebw wb, g, b
-mergewl x, wr, wb
-x4 addb argb, x, c128
-
-.function video_convert_orc_convert_AYUV_BGRA
-.flags 2d
-.dest 4 bgra guint8
-.source 4 ayuv guint8
-.param 2 p1
-.param 2 p2
-.param 2 p3
-.param 2 p4
-.param 2 p5
-.temp 1 a
-.temp 1 y
-.temp 1 u
-.temp 1 v
-.temp 2 wy
-.temp 2 wu
-.temp 2 wv
-.temp 2 wr
-.temp 2 wg
-.temp 2 wb
-.temp 1 r
-.temp 1 g
-.temp 1 b
-.temp 4 x
-.const 1 c128 128
-
-x4 subb x, ayuv, c128 
-splitlw wv, wy, x
-splitwb y, a, wy
-splitwb v, u, wv
-
-splatbw wy, y
-splatbw wu, u
-splatbw wv, v
-
-mulhsw wy, wy, p1
-
-mulhsw wr, wv, p2
-addssw wr, wy, wr
-
-mulhsw wb, wu, p3
-addssw wb, wy, wb
-
-mulhsw wg, wu, p4
-addssw wg, wy, wg
-mulhsw wy, wv, p5
-addssw wg, wg, wy
-
-convssswb r, wr
-convssswb g, wg
-convssswb b, wb
-
-mergebw wb, b, g
-mergebw wr, r, a
-mergewl x, wb, wr
-x4 addb bgra, x, c128
-
-
-.function video_convert_orc_convert_AYUV_ABGR
-.flags 2d
-.dest 4 argb guint8
-.source 4 ayuv guint8
-.param 2 p1
-.param 2 p2
-.param 2 p3
-.param 2 p4
-.param 2 p5
-.temp 1 a
-.temp 1 y
-.temp 1 u
-.temp 1 v
-.temp 2 wy
-.temp 2 wu
-.temp 2 wv
-.temp 2 wr
-.temp 2 wg
-.temp 2 wb
-.temp 1 r
-.temp 1 g
-.temp 1 b
-.temp 4 x
-.const 1 c128 128
-
-x4 subb x, ayuv, c128 
-splitlw wv, wy, x
-splitwb y, a, wy
-splitwb v, u, wv
-
-splatbw wy, y
-splatbw wu, u
-splatbw wv, v
-
-mulhsw wy, wy, p1
-
-mulhsw wr, wv, p2
-addssw wr, wy, wr
-
-mulhsw wb, wu, p3
-addssw wb, wy, wb
-
-mulhsw wg, wu, p4
-addssw wg, wy, wg
-mulhsw wy, wv, p5
-addssw wg, wg, wy
-
-convssswb r, wr
-convssswb g, wg
-convssswb b, wb
-
-mergebw wb, a, b
-mergebw wr, g, r
-mergewl x, wb, wr
-x4 addb argb, x, c128
-
-.function video_convert_orc_convert_AYUV_RGBA
-.flags 2d
-.dest 4 argb guint8
-.source 4 ayuv guint8
-.param 2 p1
-.param 2 p2
-.param 2 p3
-.param 2 p4
-.param 2 p5
-.temp 1 a
-.temp 1 y
-.temp 1 u
-.temp 1 v
-.temp 2 wy
-.temp 2 wu
-.temp 2 wv
-.temp 2 wr
-.temp 2 wg
-.temp 2 wb
-.temp 1 r
-.temp 1 g
-.temp 1 b
-.temp 4 x
-.const 1 c128 128
-
-x4 subb x, ayuv, c128 
-splitlw wv, wy, x
-splitwb y, a, wy
-splitwb v, u, wv
-
-splatbw wy, y
-splatbw wu, u
-splatbw wv, v
-
-mulhsw wy, wy, p1
-
-mulhsw wr, wv, p2
-addssw wr, wy, wr
-
-mulhsw wb, wu, p3
-addssw wb, wy, wb
-
-mulhsw wg, wu, p4
-addssw wg, wy, wg
-mulhsw wy, wv, p5
-addssw wg, wg, wy
-
-convssswb r, wr
-convssswb g, wg
-convssswb b, wb
-
-mergebw wr, r, g
-mergebw wb, b, a
-mergewl x, wr, wb
-x4 addb argb, x, c128
-
-
-
-.function video_convert_orc_convert_I420_BGRA
-.dest 4 argb guint8
-.source 1 y guint8
-.source 1 u guint8
-.source 1 v guint8
-.param 2 p1
-.param 2 p2
-.param 2 p3
-.param 2 p4
-.param 2 p5
-.temp 2 wy
-.temp 2 wu
-.temp 2 wv
-.temp 2 wr
-.temp 2 wg
-.temp 2 wb
-.temp 1 r
-.temp 1 g
-.temp 1 b
-.temp 4 x
-.const 1 c128 128
-
-subb r, y, c128
-splatbw wy, r
-loadupdb r, u
-subb r, r, c128
-splatbw wu, r
-loadupdb r, v
-subb r, r, c128
-splatbw wv, r
-
-mulhsw wy, wy, p1
-
-mulhsw wr, wv, p2
-addssw wr, wy, wr
-
-mulhsw wb, wu, p3
-addssw wb, wy, wb
-
-mulhsw wg, wu, p4
-addssw wg, wy, wg
-mulhsw wy, wv, p5
-addssw wg, wg, wy
-
-convssswb r, wr
-convssswb g, wg
-convssswb b, wb
-
-mergebw wb, b, g
-mergebw wr, r, 127
-mergewl x, wb, wr
-x4 addb argb, x, c128
-
diff --git a/gst/videoconvert/videoconvert.h b/gst/videoconvert/videoconvert.h
deleted file mode 100644 (file)
index bc0aa7a..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/* Video conversion functions
- * Copyright (C) 2010 David Schleef <ds@schleef.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef __COLORSPACE_H__
-#define __COLORSPACE_H__
-
-#include <gst/video/video.h>
-#include "gstcms.h"
-
-G_BEGIN_DECLS
-
-typedef struct _VideoConvert VideoConvert;
-
-typedef enum {
-  DITHER_NONE,
-  DITHER_VERTERR,
-  DITHER_HALFTONE
-} ColorSpaceDitherMethod;
-
-struct _VideoConvert {
-  GstVideoInfo in_info;
-  GstVideoInfo out_info;
-
-  gint width;
-  gint height;
-
-  gint in_bits;
-  gint out_bits;
-  gint cmatrix[4][4];
-
-  ColorSpaceDitherMethod dither;
-
-  guint lines;
-
-  guint n_tmplines;
-  gpointer *tmplines;
-  guint16 *errline;
-
-  GstVideoChromaResample *upsample;
-  guint up_n_lines;
-  gint up_offset;
-  GstVideoChromaResample *downsample;
-  guint down_n_lines;
-  gint down_offset;
-
-  void (*convert)      (VideoConvert *convert, GstVideoFrame *dest, const GstVideoFrame *src);
-  void (*matrix)       (VideoConvert *convert, gpointer pixels);
-  void (*dither16)     (VideoConvert *convert, guint16 * pixels, int j);
-
-};
-
-VideoConvert *   videoconvert_convert_new            (GstVideoInfo *in_info,
-                                                      GstVideoInfo *out_info);
-void             videoconvert_convert_free           (VideoConvert * convert);
-
-void             videoconvert_convert_set_dither     (VideoConvert * convert, int type);
-
-void             videoconvert_convert_convert        (VideoConvert * convert,
-                                                      GstVideoFrame *dest, const GstVideoFrame *src);
-
-
-G_END_DECLS
-
-#endif /* __GST_COLORSPACE_H__ */
index 2168baa..698bad4 100644 (file)
@@ -140,8 +140,7 @@ check_adder =
 endif
 
 if HAVE_ORC
-check_orc = orc/video orc/audio orc/adder orc/audioconvert orc/volume orc/videoscale orc/videotestsrc \
-           orc/videoconvert
+check_orc = orc/video orc/audio orc/adder orc/audioconvert orc/volume orc/videoscale orc/videotestsrc
 else
 check_orc =
 endif
@@ -638,9 +637,6 @@ nodist_orc_videoscale_SOURCES = orc/videoscale.c
 orc_videotestsrc_CFLAGS = $(ORC_CFLAGS)
 orc_videotestsrc_LDADD = $(ORC_LIBS) -lorc-test-0.4
 nodist_orc_videotestsrc_SOURCES = orc/videotestsrc.c
-orc_videoconvert_CFLAGS = $(ORC_CFLAGS)
-orc_videoconvert_LDADD = $(ORC_LIBS) -lorc-test-0.4
-nodist_orc_videoconvert_SOURCES = orc/videoconvert.c
 
 orc/video.c: $(top_srcdir)/gst-libs/gst/video/video-orc.orc
        $(MKDIR_P) orc/
@@ -670,10 +666,6 @@ orc/videotestsrc.c: $(top_srcdir)/gst/videotestsrc/gstvideotestsrcorc.orc
        $(MKDIR_P) orc/
        $(ORCC) --test -o $@ $<
 
-orc/videoconvert.c: $(top_srcdir)/gst/videoconvert/gstvideoconvertorc.orc
-       $(MKDIR_P) orc/
-       $(ORCC) --test -o $@ $<
-
 
 distclean-local-orc:
        rm -rf orc
index b0477b7..da23cc3 100644 (file)
@@ -81,6 +81,11 @@ EXPORTS
        gst_video_colorimetry_to_string
        gst_video_convert_sample
        gst_video_convert_sample_async
+       gst_video_convertor_frame
+       gst_video_convertor_free
+       gst_video_convertor_get_config
+       gst_video_convertor_new
+       gst_video_convertor_set_config
        gst_video_crop_meta_api_get_type
        gst_video_crop_meta_get_info
        gst_video_decoder_add_to_frame
@@ -113,6 +118,7 @@ EXPORTS
        gst_video_decoder_set_needs_format
        gst_video_decoder_set_output_state
        gst_video_decoder_set_packetized
+       gst_video_dither_method_get_type
        gst_video_encoder_allocate_output_buffer
        gst_video_encoder_allocate_output_frame
        gst_video_encoder_finish_frame