|
|
|
@ -586,11 +586,11 @@ static inline void postProcess(const uint8_t src[], int srcStride, uint8_t dst[] |
|
|
|
|
#if CONFIG_RUNTIME_CPUDETECT |
|
|
|
|
#if ARCH_X86 && HAVE_INLINE_ASM |
|
|
|
|
// ordered per speed fastest first
|
|
|
|
|
if (c->cpuCaps & PP_CPU_CAPS_MMX2) pp = postProcess_MMX2; |
|
|
|
|
else if (c->cpuCaps & PP_CPU_CAPS_3DNOW) pp = postProcess_3DNow; |
|
|
|
|
else if (c->cpuCaps & PP_CPU_CAPS_MMX) pp = postProcess_MMX; |
|
|
|
|
if (c->cpuCaps & AV_CPU_FLAG_MMXEXT) pp = postProcess_MMX2; |
|
|
|
|
else if (c->cpuCaps & AV_CPU_FLAG_3DNOW) pp = postProcess_3DNow; |
|
|
|
|
else if (c->cpuCaps & AV_CPU_FLAG_MMX) pp = postProcess_MMX; |
|
|
|
|
#elif HAVE_ALTIVEC |
|
|
|
|
if (c->cpuCaps & PP_CPU_CAPS_ALTIVEC) pp = postProcess_altivec; |
|
|
|
|
if (c->cpuCaps & AV_CPU_FLAG_ALTIVEC) pp = postProcess_altivec; |
|
|
|
|
#endif |
|
|
|
|
#else /* CONFIG_RUNTIME_CPUDETECT */ |
|
|
|
|
#if HAVE_MMXEXT_INLINE |
|
|
|
@ -896,7 +896,6 @@ pp_context *pp_get_context(int width, int height, int cpuCaps){ |
|
|
|
|
|
|
|
|
|
memset(c, 0, sizeof(PPContext)); |
|
|
|
|
c->av_class = &av_codec_context_class; |
|
|
|
|
c->cpuCaps= cpuCaps; |
|
|
|
|
if(cpuCaps&PP_FORMAT){ |
|
|
|
|
c->hChromaSubSample= cpuCaps&0x3; |
|
|
|
|
c->vChromaSubSample= (cpuCaps>>4)&0x3; |
|
|
|
@ -904,6 +903,15 @@ pp_context *pp_get_context(int width, int height, int cpuCaps){ |
|
|
|
|
c->hChromaSubSample= 1; |
|
|
|
|
c->vChromaSubSample= 1; |
|
|
|
|
} |
|
|
|
|
if (cpuCaps & PP_CPU_CAPS_AUTO) { |
|
|
|
|
c->cpuCaps = av_get_cpu_flags(); |
|
|
|
|
} else { |
|
|
|
|
c->cpuCaps = 0; |
|
|
|
|
if (cpuCaps & PP_CPU_CAPS_MMX) c->cpuCaps |= AV_CPU_FLAG_MMX; |
|
|
|
|
if (cpuCaps & PP_CPU_CAPS_MMX2) c->cpuCaps |= AV_CPU_FLAG_MMXEXT; |
|
|
|
|
if (cpuCaps & PP_CPU_CAPS_3DNOW) c->cpuCaps |= AV_CPU_FLAG_3DNOW; |
|
|
|
|
if (cpuCaps & PP_CPU_CAPS_ALTIVEC) c->cpuCaps |= AV_CPU_FLAG_ALTIVEC; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
reallocBuffers(c, width, height, stride, qpStride); |
|
|
|
|
|
|
|
|
|