Browse Source

swscale: use emms_c().

tags/n0.8
Ronald S. Bultje 14 years ago
parent
commit
c4fd283a46
2 changed files with 3 additions and 5 deletions
  1. +2
    -4
      libswscale/utils.c
  2. +1
    -1
      libswscale/x86/swscale_template.c

+ 2
- 4
libswscale/utils.c View File

@@ -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);


+ 1
- 1
libswscale/x86/swscale_template.c View File

@@ -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;


Loading…
Cancel
Save