X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libswscale%2Fswscale.c;h=ae79eb66e818257c33cffd16b3d5a8013c74765c;hb=2fc7c818cb7b7bfdca69d17ab9f1b48290dbc3f6;hp=5dd4124eba0438f1a69459e687ac682462c37e97;hpb=a6ff8514a9bdc93739a73d28913c6b457baff32d;p=ffmpeg diff --git a/libswscale/swscale.c b/libswscale/swscale.c index 5dd4124eba0..ae79eb66e81 100644 --- a/libswscale/swscale.c +++ b/libswscale/swscale.c @@ -544,7 +544,7 @@ static int swScale(SwsContext *c, const uint8_t *src[], if (!enough_lines) break; // we can't output a dstY line so let's try with the next slice -#if HAVE_MMX +#if HAVE_MMX && HAVE_INLINE_ASM updateMMXDitherTables(c, dstY, lumBufIndex, chrBufIndex, lastInLumBuf, lastInChrBuf); #endif @@ -663,8 +663,8 @@ static int swScale(SwsContext *c, const uint8_t *src[], if (isPlanar(dstFormat) && isALPHA(dstFormat) && !alpPixBuf) fillPlane(dst[3], dstStride[3], dstW, dstY - lastDstY, lastDstY, 255); -#if HAVE_MMX2 - if (av_get_cpu_flags() & AV_CPU_FLAG_MMX2) +#if HAVE_MMXEXT && HAVE_INLINE_ASM + if (av_get_cpu_flags() & AV_CPU_FLAG_MMXEXT) __asm__ volatile ("sfence" ::: "memory"); #endif emms_c(); @@ -691,7 +691,7 @@ static av_cold void sws_init_swScale_c(SwsContext *c) if (c->srcBpc == 8) { - if (c->dstBpc <= 10) { + if (c->dstBpc <= 14) { c->hyScale = c->hcScale = hScale8To15_c; if (c->flags & SWS_FAST_BILINEAR) { c->hyscale_fast = hyscale_fast_c; @@ -701,12 +701,12 @@ static av_cold void sws_init_swScale_c(SwsContext *c) c->hyScale = c->hcScale = hScale8To19_c; } } else { - c->hyScale = c->hcScale = c->dstBpc > 10 ? hScale16To19_c + c->hyScale = c->hcScale = c->dstBpc > 14 ? hScale16To19_c : hScale16To15_c; } if (c->srcRange != c->dstRange && !isAnyRGB(c->dstFormat)) { - if (c->dstBpc <= 10) { + if (c->dstBpc <= 14) { if (c->srcRange) { c->lumConvertRange = lumRangeFromJpeg_c; c->chrConvertRange = chrRangeFromJpeg_c;