mirror of https://git.ffmpeg.org/ffmpeg.git
pp: add auto detection cpu flag.
This commit is contained in:
parent
e034b07e40
commit
59d686f100
|
@ -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);
|
||||
|
||||
|
|
|
@ -84,6 +84,7 @@ void pp_free_context(pp_context *ppContext);
|
|||
#define PP_CPU_CAPS_MMX2 0x20000000
|
||||
#define PP_CPU_CAPS_3DNOW 0x40000000
|
||||
#define PP_CPU_CAPS_ALTIVEC 0x10000000
|
||||
#define PP_CPU_CAPS_AUTO 0x00080000
|
||||
|
||||
#define PP_FORMAT 0x00000008
|
||||
#define PP_FORMAT_420 (0x00000011|PP_FORMAT)
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
|
||||
#ifndef LIBPOSTPROC_VERSION_MAJOR
|
||||
#define LIBPOSTPROC_VERSION_MAJOR 52
|
||||
#define LIBPOSTPROC_VERSION_MINOR 1
|
||||
#define LIBPOSTPROC_VERSION_MINOR 2
|
||||
#define LIBPOSTPROC_VERSION_MICRO 100
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in New Issue