swscale: Use full resolution chroma for yuv2rgb when the input has full chroma
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 9 Oct 2013 16:43:42 +0000 (18:43 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 10 Oct 2013 15:28:59 +0000 (17:28 +0200)
See Ticket3028

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libswscale/utils.c
tests/ref/fate/filter-pixfmts-scale

index 3daa4f4..5693291 100644 (file)
@@ -1208,6 +1208,16 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter,
             flags |= SWS_FULL_CHR_H_INT;
             c->flags = flags;
         }
+
+        if (   c->chrSrcHSubSample == 0
+            && c->chrSrcVSubSample == 0
+            && c->dither != SWS_DITHER_BAYER //SWS_FULL_CHR_H_INT is currently not supported with SWS_DITHER_BAYER
+            && !(c->flags & SWS_FAST_BILINEAR)
+        ) {
+            av_log(c, AV_LOG_DEBUG, "Forcing full internal H chroma due to input having non subsampled chroma\n");
+            flags |= SWS_FULL_CHR_H_INT;
+            c->flags = flags;
+        }
     }
 
     if (c->dither == SWS_DITHER_AUTO) {
index a2eb723..d2c8574 100644 (file)
@@ -1,20 +1,20 @@
-0bgr                710350573339f608b23e5bf8ea3327d0
-0rgb                ba87d80ccd24ffb20ac711511132adb8
-abgr                e448ff50225b119979987e55399e49e2
-argb                ef03d804e0de6315fd59e3d2edaddb9d
-bgr0                93cd61cfcbef1789d2d5ccae4de75f79
-bgr24               793fc4c2b1c92ad4f7f4dca157e624d1
+0bgr                a96ce0c378614d884139ec32d7b17fc0
+0rgb                70414c01ffbd3d420806c21b32a3158c
+abgr                d507465437881ceea4dac96ad72bcfa8
+argb                95964959d3580719b6df04457ed091ca
+bgr0                46c2957c538060d305d82f3890f703e8
+bgr24               1d684e701a851dc502051d064b49552e
 bgr444be            9af6abe0bc74cdcc75b4ab2f441f5f67
 bgr444le            b8c0e693ae2cbd7c03abcc3aeb4bf7b4
 bgr48be             3aa33b667b9baefe3f17ef44360688cd
 bgr48le             eaf353ab363fbb279fd72d6c6e3b8855
-bgr4_byte           a6e269daf7085504a01113ce5e8bff57
+bgr4_byte           2f2c6b57017092b981ffcd4a9eb54d3a
 bgr555be            9d71206c1a5373b8978126e5f5779726
 bgr555le            025caaa21fed9d14c382cac26af778c8
 bgr565be            fca6f07daf23d9dd84381dd4c9afd959
 bgr565le            f524e9f16bdd68b247dbcb621e543fc0
-bgr8                68a3a395043dc57335ad1f8e891229c5
-bgra                3eaf5489b8aa13a3388aad3751b597bf
+bgr8                2a6509639c181fb7829721bdbf78187c
+bgra                fec5335edde2f1ee1f40d2fe4305855c
 gbrap               76ddf2bedea40c8743f4117b786d4773
 gbrp                e2704defddf1cb8d75f0c80fec6491d3
 gbrp10be            7dce0805f7ead7d480bd83323d76bf9c
@@ -32,20 +32,20 @@ monob               91ec2a25b13f6ca34d42da778b217de0
 monow               a991455fda8f60f373aeb744456996b9
 nv12                0617f1e13ae4a43d4cb49282b9c02f71
 nv21                8a00d5d29766c1251eeda74c0ddee3f2
-pal8                7849884994cf99604f025b053332d08d
-rgb0                6a9d26ebf674f02b5a8830583ba7a171
-rgb24               1de2978e23ad10b9b4ca2777688b4546
+pal8                c4101024891e078d67ae480e15c380b5
+rgb0                9bccae1af3f4c3e6a126c98a595a2481
+rgb24               64aeb63d9e9735277255eba4f7a47082
 rgb444be            88f534c5d07ebf5a4374484aed540893
 rgb444le            c243685bfad7c243a78892a0dafe2b9f
 rgb48be             874c8e2305ce9d82165ffddf2854d1f2
 rgb48le             877075f2ff2d9a0aec6fec843385f126
-rgb4_byte           4a8b119cf1996efe273302da29cbfbfb
+rgb4_byte           37dce6bf5eea65cbc8c934a047190048
 rgb555be            8aeefa1fc4eba200abee3b1eb52186af
 rgb555le            0495a7c13f9b0d0253379d5ae90cf6c4
 rgb565be            5168b66e69c25351948085e5fc51bb3a
 rgb565le            301a4d41f0db3aaed341d812ed0d7927
-rgb8                8e5786e83099bc89d2e38a76e6dfcc52
-rgba                de6a65b8c01bdad84e575202ca8b66a0
+rgb8                8f24090953a7616ff319aa981e32c1e2
+rgba                aec2346373d91abdc8c0301b44513128
 rgba64be            5ce6f591ac8be4edcf5c3350d2d2d3f5
 rgba64le            12baab5162019de2053db39a3bfca868
 uyvy422             479105bc4c7fbb4a33ca8745aa8c2de8