Esempio n. 1
0
void				get_conversion(t_prf *env, t_specs *specs)
{
	size_t			save;
	size_t			to_copy;

	save = env->index;
	if (!(env->format[env->index])
			|| (!ft_strchr(ALL_MODIFIERS, env->format[env->index])
				&& !ft_strchr(ALL_FORMATS, env->format[env->index])))
		return ;
	to_copy = 1;
	while (env->format && env->format[env->index]
			&& !ft_strchr(ALL_FORMATS, env->format[env->index]))
	{
		env->index++;
		to_copy++;
	}
	if (to_copy <= PRF_LEN_MAX_CONV)
		register_conversion(env, specs, to_copy, save);
	env->index++;
}
Esempio n. 2
0
int ac_imgconvert_init_yuv_planar(int accel)
{
    if (!register_conversion(IMG_YUV420P, IMG_YUV420P, yuv420p_copy)
     || !register_conversion(IMG_YUV420P, IMG_YUV411P, yuv420p_yuv411p)
     || !register_conversion(IMG_YUV420P, IMG_YUV422P, yuv420p_yuv422p)
     || !register_conversion(IMG_YUV420P, IMG_YUV444P, yuv420p_yuv444p)
     || !register_conversion(IMG_YUV420P, IMG_Y8,      yuvp_y8)

     || !register_conversion(IMG_YUV411P, IMG_YUV420P, yuv411p_yuv420p)
     || !register_conversion(IMG_YUV411P, IMG_YUV411P, yuv411p_copy)
     || !register_conversion(IMG_YUV411P, IMG_YUV422P, yuv411p_yuv422p)
     || !register_conversion(IMG_YUV411P, IMG_YUV444P, yuv411p_yuv444p)
     || !register_conversion(IMG_YUV411P, IMG_Y8,      yuvp_y8)

     || !register_conversion(IMG_YUV422P, IMG_YUV420P, yuv422p_yuv420p)
     || !register_conversion(IMG_YUV422P, IMG_YUV411P, yuv422p_yuv411p)
     || !register_conversion(IMG_YUV422P, IMG_YUV422P, yuv422p_copy)
     || !register_conversion(IMG_YUV422P, IMG_YUV444P, yuv422p_yuv444p)
     || !register_conversion(IMG_YUV422P, IMG_Y8,      yuvp_y8)

     || !register_conversion(IMG_YUV444P, IMG_YUV420P, yuv444p_yuv420p)
     || !register_conversion(IMG_YUV444P, IMG_YUV411P, yuv444p_yuv411p)
     || !register_conversion(IMG_YUV444P, IMG_YUV422P, yuv444p_yuv422p)
     || !register_conversion(IMG_YUV444P, IMG_YUV444P, yuv444p_copy)
     || !register_conversion(IMG_YUV444P, IMG_Y8,      yuvp_y8)

     || !register_conversion(IMG_Y8,      IMG_YUV420P, y8_yuv420p)
     || !register_conversion(IMG_Y8,      IMG_YUV411P, y8_yuv411p)
     || !register_conversion(IMG_Y8,      IMG_YUV422P, y8_yuv422p)
     || !register_conversion(IMG_Y8,      IMG_YUV444P, y8_yuv444p)
     || !register_conversion(IMG_Y8,      IMG_Y8,      y8_copy)
    ) {
        return 0;
    }

#if defined(HAVE_ASM_SSE2)
    if (accel & AC_SSE2) {
        if (!register_conversion(IMG_YUV420P, IMG_YUV411P, yuv420p_yuv411p_sse2)
         || !register_conversion(IMG_YUV420P, IMG_YUV444P, yuv420p_yuv444p_sse2)

         || !register_conversion(IMG_YUV411P, IMG_YUV420P, yuv411p_yuv420p_sse2)
         || !register_conversion(IMG_YUV411P, IMG_YUV422P, yuv411p_yuv422p_sse2)
         || !register_conversion(IMG_YUV411P, IMG_YUV444P, yuv411p_yuv444p_sse2)

         || !register_conversion(IMG_YUV422P, IMG_YUV420P, yuv422p_yuv420p_sse2)
         || !register_conversion(IMG_YUV422P, IMG_YUV411P, yuv422p_yuv411p_sse2)
         || !register_conversion(IMG_YUV422P, IMG_YUV444P, yuv422p_yuv444p_sse2)

         || !register_conversion(IMG_YUV444P, IMG_YUV420P, yuv444p_yuv420p_sse2)
         || !register_conversion(IMG_YUV444P, IMG_YUV411P, yuv444p_yuv411p_sse2)
         || !register_conversion(IMG_YUV444P, IMG_YUV422P, yuv444p_yuv422p_sse2)
        ) {
            return 0;
        }
    }
#endif  /* ARCH_X86 || ARCH_X86_64 */

    return 1;
}