Revision f433c8ab

View differences:

libswscale/swscale_template.c
950 950
                                    uint8_t *dest, uint8_t *uDest, uint8_t *vDest, long dstW, long chrDstW)
951 951
{
952 952
#ifdef HAVE_MMX
953
    if(!(c->flags & SWS_BITEXACT)){
953 954
    if (c->flags & SWS_ACCURATE_RND){
954 955
        if (uDest){
955 956
            YSCALEYUV2YV12X_ACCURATE(   "0", CHR_MMX_FILTER_OFFSET, uDest, chrDstW)
......
965 966

  
966 967
        YSCALEYUV2YV12X("0", LUM_MMX_FILTER_OFFSET, dest, dstW)
967 968
    }
968
#else
969
        return;
970
    }
971
#endif
969 972
#ifdef HAVE_ALTIVEC
970 973
yuv2yuvX_altivec_real(lumFilter, lumSrc, lumFilterSize,
971 974
                      chrFilter, chrSrc, chrFilterSize,
......
975 978
            chrFilter, chrSrc, chrFilterSize,
976 979
            dest, uDest, vDest, dstW, chrDstW);
977 980
#endif //!HAVE_ALTIVEC
978
#endif /* HAVE_MMX */
979 981
}
980 982

  
981 983
static inline void RENAME(yuv2nv12X)(SwsContext *c, int16_t *lumFilter, int16_t **lumSrc, int lumFilterSize,
......
990 992
static inline void RENAME(yuv2yuv1)(SwsContext *c, int16_t *lumSrc, int16_t *chrSrc,
991 993
                                    uint8_t *dest, uint8_t *uDest, uint8_t *vDest, long dstW, long chrDstW)
992 994
{
995
    int i;
993 996
#ifdef HAVE_MMX
997
    if(!(c->flags & SWS_BITEXACT)){
994 998
    long p= uDest ? 3 : 1;
995 999
    uint8_t *src[3]= {lumSrc + dstW, chrSrc + chrDstW, chrSrc + VOFW + chrDstW};
996 1000
    uint8_t *dst[3]= {dest, uDest, vDest};
......
1015 1019
            );
1016 1020
        }
1017 1021
    }
1018

  
1019
#else
1020
    int i;
1022
        return;
1023
    }
1024
#endif
1021 1025
    for (i=0; i<dstW; i++)
1022 1026
    {
1023 1027
        int val= (lumSrc[i]+64)>>7;
......
1046 1050
            uDest[i]= u;
1047 1051
            vDest[i]= v;
1048 1052
        }
1049
#endif
1050 1053
}
1051 1054

  
1052 1055

  
......
1059 1062
{
1060 1063
#ifdef HAVE_MMX
1061 1064
    long dummy=0;
1065
    if(!(c->flags & SWS_BITEXACT)){
1062 1066
    if (c->flags & SWS_ACCURATE_RND){
1063 1067
        switch(c->dstFormat){
1064 1068
        case PIX_FMT_RGB32:
......
1181 1185
            return;
1182 1186
        }
1183 1187
    }
1188
    }
1184 1189
#endif /* HAVE_MMX */
1185 1190
#ifdef HAVE_ALTIVEC
1186 1191
    /* The following list of supported dstFormat values should
......
1424 1429
    {
1425 1430
#endif // if 0
1426 1431
#ifdef HAVE_MMX
1432
    if(!(c->flags & SWS_BITEXACT)){
1427 1433
        switch(c->dstFormat)
1428 1434
        {
1429 1435
            //Note 8280 == DSTW_OFFSET but the preprocessor can't handle that there :(
......
1510 1516
                return;
1511 1517
            default: break;
1512 1518
        }
1519
    }
1513 1520
#endif //HAVE_MMX
1514 1521
YSCALE_YUV_2_ANYRGB_C(YSCALE_YUV_2_RGB2_C, YSCALE_YUV_2_PACKED2_C, YSCALE_YUV_2_GRAY16_2_C, YSCALE_YUV_2_MONO2_C)
1515 1522
}
......
1533 1540
    }
1534 1541

  
1535 1542
#ifdef HAVE_MMX
1543
    if(!(flags & SWS_BITEXACT)){
1536 1544
    if (uvalpha < 2048) // note this is not correct (shifts chrominance by 0.5 pixels) but it is a bit faster
1537 1545
    {
1538 1546
        switch(dstFormat)
......
1711 1719
            return;
1712 1720
        }
1713 1721
    }
1722
    }
1714 1723
#endif /* HAVE_MMX */
1715 1724
    if (uvalpha < 2048)
1716 1725
    {

Also available in: Unified diff