diff --git a/libswscale/utils.c b/libswscale/utils.c index b49ec89be8..29fc975046 100644 --- a/libswscale/utils.c +++ b/libswscale/utils.c @@ -193,8 +193,7 @@ static int initFilter(int16_t **outFilter, int16_t **filterPos, int *outFilterSi const int64_t fone= 1LL<<54; int ret= -1; - if (HAVE_MMX && cpu_flags & AV_CPU_FLAG_MMX) - __asm__ volatile("emms\n\t"::: "memory"); //FIXME this should not be required but it IS (even for non-MMX versions) + emms_c(); //FIXME this should not be required but it IS (even for non-MMX versions) // NOTE: the +1 is for the MMX scaler which reads over the end FF_ALLOC_OR_GOTO(NULL, *filterPos, (dstW+1)*sizeof(int16_t), fail); @@ -757,8 +756,7 @@ int sws_init_context(SwsContext *c, SwsFilter *srcFilter, SwsFilter *dstFilter) cpu_flags = av_get_cpu_flags(); flags = c->flags; - if (HAVE_MMX && cpu_flags & AV_CPU_FLAG_MMX) - __asm__ volatile("emms\n\t"::: "memory"); + emms_c(); if (!rgb15to16) sws_rgb2rgb_init(); unscaled = (srcW == dstW && srcH == dstH); diff --git a/libswscale/x86/swscale_template.c b/libswscale/x86/swscale_template.c index e03fbd44e2..576e22c082 100644 --- a/libswscale/x86/swscale_template.c +++ b/libswscale/x86/swscale_template.c @@ -2494,7 +2494,7 @@ static int RENAME(swScale)(SwsContext *c, const uint8_t* src[], int srcStride[], fillPlane(dst[3], dstStride[3], dstW, dstY-lastDstY, lastDstY, 255); if (COMPILE_TEMPLATE_MMX2) __asm__ volatile("sfence":::"memory"); - __asm__ volatile("emms" :::"memory"); + emms_c(); /* store changed local vars back in the context */ c->dstY= dstY;