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,
|
||||
int dstW, int dstH, enum PixelFormat dstFormat, int flags,
|
||||
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");
|
||||
#endif
|
||||
|
||||
#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 */
|
||||
flags = update_flags_cpu(flags);
|
||||
if (!rgb15to16) sws_rgb2rgb_init(flags);
|
||||
|
||||
unscaled = (srcW == dstW && srcH == dstH);
|
||||
|
@ -1509,6 +1515,8 @@ struct SwsContext *sws_getCachedContext(struct SwsContext *context,
|
|||
if (!param)
|
||||
param = default_param;
|
||||
|
||||
flags = update_flags_cpu(flags);
|
||||
|
||||
if (context &&
|
||||
(context->srcW != srcW ||
|
||||
context->srcH != srcH ||
|
||||
|
|
Loading…
Reference in New Issue