mirror of https://git.ffmpeg.org/ffmpeg.git
swscale: also update flags on sws_getCachedContext()
Originally committed as revision 32052 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
This commit is contained in:
parent
a1899e0adc
commit
c17f5a4e15
|
@ -720,6 +720,15 @@ static int handle_jpeg(enum PixelFormat *format)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int update_flags_cpu(int flags)
|
||||||
|
{
|
||||||
|
#if !CONFIG_RUNTIME_CPUDETECT //ensure that the flags match the compiled variant if cpudetect is off
|
||||||
|
flags &= ~(SWS_CPU_CAPS_MMX|SWS_CPU_CAPS_MMX2|SWS_CPU_CAPS_3DNOW|SWS_CPU_CAPS_ALTIVEC|SWS_CPU_CAPS_BFIN);
|
||||||
|
flags |= ff_hardcodedcpuflags();
|
||||||
|
#endif /* CONFIG_RUNTIME_CPUDETECT */
|
||||||
|
return flags;
|
||||||
|
}
|
||||||
|
|
||||||
SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat,
|
SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat,
|
||||||
int dstW, int dstH, enum PixelFormat dstFormat, int flags,
|
int dstW, int dstH, enum PixelFormat dstFormat, int flags,
|
||||||
SwsFilter *srcFilter, SwsFilter *dstFilter, const double *param)
|
SwsFilter *srcFilter, SwsFilter *dstFilter, const double *param)
|
||||||
|
@ -735,10 +744,7 @@ SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat,
|
||||||
__asm__ volatile("emms\n\t"::: "memory");
|
__asm__ volatile("emms\n\t"::: "memory");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !CONFIG_RUNTIME_CPUDETECT //ensure that the flags match the compiled variant if cpudetect is off
|
flags = update_flags_cpu(flags);
|
||||||
flags &= ~(SWS_CPU_CAPS_MMX|SWS_CPU_CAPS_MMX2|SWS_CPU_CAPS_3DNOW|SWS_CPU_CAPS_ALTIVEC|SWS_CPU_CAPS_BFIN);
|
|
||||||
flags |= ff_hardcodedcpuflags();
|
|
||||||
#endif /* CONFIG_RUNTIME_CPUDETECT */
|
|
||||||
if (!rgb15to16) sws_rgb2rgb_init(flags);
|
if (!rgb15to16) sws_rgb2rgb_init(flags);
|
||||||
|
|
||||||
unscaled = (srcW == dstW && srcH == dstH);
|
unscaled = (srcW == dstW && srcH == dstH);
|
||||||
|
@ -1509,6 +1515,8 @@ struct SwsContext *sws_getCachedContext(struct SwsContext *context,
|
||||||
if (!param)
|
if (!param)
|
||||||
param = default_param;
|
param = default_param;
|
||||||
|
|
||||||
|
flags = update_flags_cpu(flags);
|
||||||
|
|
||||||
if (context &&
|
if (context &&
|
||||||
(context->srcW != srcW ||
|
(context->srcW != srcW ||
|
||||||
context->srcH != srcH ||
|
context->srcH != srcH ||
|
||||||
|
|
Loading…
Reference in New Issue