void
evas_common_convert_yuv_420p_601_rgba(DATA8 **src, DATA8 *dst, int w, int h)
{
   int mmx, sse, sse2;

#if defined BUILD_MMX || defined BUILD_SSE
   evas_common_cpu_can_do(&mmx, &sse, &sse2);
#endif
#ifndef BUILD_SSE
   sse = 0;
   sse2 = 0;
#endif
#ifndef BUILD_MMX
   mmx = 0;
#endif
   if (evas_common_cpu_has_feature(CPU_FEATURE_MMX2))
     _evas_yv12torgb_sse(src, dst, w, h);
   else if (evas_common_cpu_has_feature(CPU_FEATURE_MMX))
     _evas_yv12torgb_mmx(src, dst, w, h);
#ifdef BUILD_ALTIVEC
   if (evas_common_cpu_has_feature(CPU_FEATURE_ALTIVEC))
     _evas_yv12torgb_altivec(src, dst, w, h);
#endif
   else
     {
#ifdef BUILD_C
	static int initted = 0;

	if (!initted) _evas_yuv_init();
	initted = 1;
	/* FIXME: diz may be faster sometimes */
	_evas_yv12torgb_raster(src, dst, w, h);
#endif
     }
}
Exemplo n.º 2
0
void
evas_common_convert_yuv_422p_709_rgba(DATA8 **src, DATA8 *dst, int w, int h)
{
   if (!initted) _evas_yuv_init();
   initted = 1;
/* Broken atm - the sse and mmx get math.. wrong :(
   if (evas_common_cpu_has_feature(CPU_FEATURE_MMX2))
     _evas_yv12_709torgb_sse(src, dst, w, h);
   else if (evas_common_cpu_has_feature(CPU_FEATURE_MMX))
     _evas_yv12_709torgb_mmx(src, dst, w, h);
   else
 */
     _evas_yv12_709torgb_raster(src, dst, w, h);
}
Exemplo n.º 3
0
void
evas_common_convert_yuv_422p_601_rgba(DATA8 **src, DATA8 *dst, int w, int h)
{
   if (!initted) _evas_yuv_init();
   initted = 1;
   if (evas_common_cpu_has_feature(CPU_FEATURE_MMX2))
     _evas_yv12torgb_sse(src, dst, w, h);
   else if (evas_common_cpu_has_feature(CPU_FEATURE_MMX))
     _evas_yv12torgb_mmx(src, dst, w, h);
#ifdef BUILD_ALTIVEC
   if (evas_common_cpu_has_feature(CPU_FEATURE_ALTIVEC))
     _evas_yv12torgb_altivec(src, dst, w, h);
#endif
   else
     _evas_yv12torgb_raster(src, dst, w, h);
}