[FFmpeg-devel] [PATCH 1/6] swscale/output: fill all the xv36le alpha bits

James Almer jamrial at gmail.com
Tue Oct 15 22:32:42 EEST 2024


In xv36 case, the alpha plane bits are undefined, but the format still defines
the component as 12bits, with the other 4 bits zeroed, so set only the valid
bits.

Signed-off-by: James Almer <jamrial at gmail.com>
---
 libswscale/output.c                      | 4 ++--
 tests/ref/fate/filter-pixfmts-copy       | 2 +-
 tests/ref/fate/filter-pixfmts-crop       | 2 +-
 tests/ref/fate/filter-pixfmts-field      | 2 +-
 tests/ref/fate/filter-pixfmts-fieldorder | 2 +-
 tests/ref/fate/filter-pixfmts-hflip      | 2 +-
 tests/ref/fate/filter-pixfmts-il         | 2 +-
 tests/ref/fate/filter-pixfmts-null       | 2 +-
 tests/ref/fate/filter-pixfmts-scale      | 2 +-
 tests/ref/fate/filter-pixfmts-transpose  | 2 +-
 tests/ref/fate/filter-pixfmts-vflip      | 2 +-
 11 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/libswscale/output.c b/libswscale/output.c
index 314dc8333f..3b954e28a2 100644
--- a/libswscale/output.c
+++ b/libswscale/output.c
@@ -2670,7 +2670,7 @@ yuv2xv36le_X_c(SwsContext *c, const int16_t *lumFilter,
 {
     int i;
     for (i = 0; i < dstW; i++) {
-        int Y = 1 << 14, U = 1 << 14, V = 1 << 14, A = 255;
+        int Y = 1 << 14, U = 1 << 14, V = 1 << 14, A = 65535;
         int j;
 
         for (j = 0; j < lumFilterSize; j++)
@@ -2684,7 +2684,7 @@ yuv2xv36le_X_c(SwsContext *c, const int16_t *lumFilter,
         AV_WL16(dest + 8 * i + 2, av_clip_uintp2(Y >> 15, 12) << 4);
         AV_WL16(dest + 8 * i + 0, av_clip_uintp2(U >> 15, 12) << 4);
         AV_WL16(dest + 8 * i + 4, av_clip_uintp2(V >> 15, 12) << 4);
-        AV_WL16(dest + 8 * i + 6, A);
+        AV_WL16(dest + 8 * i + 6, A << 4);
     }
 }
 
diff --git a/tests/ref/fate/filter-pixfmts-copy b/tests/ref/fate/filter-pixfmts-copy
index dbc9947a47..8bff815408 100644
--- a/tests/ref/fate/filter-pixfmts-copy
+++ b/tests/ref/fate/filter-pixfmts-copy
@@ -106,7 +106,7 @@ vyu444              93912234400a4373b1a6b5c4e4b1a4ef
 x2bgr10le           550c0d190cf695afa4eaacb644db6b75
 x2rgb10le           c1e3ac21be04a16bb157b22784524520
 xv30le              718bf036d13f9f1ea8804c2658dd53fa
-xv36le              6b8e46832aa8537a774e93dd7503c700
+xv36le              e08dcbde02f1c28a3554f372ad1278e2
 xyz12be             a1ef56bf746d71f59669c28e48fc8450
 xyz12le             831ff03c1ba4ef19374686f16a064d8c
 y210le              0736b017e0814daf38d3350c42796f7a
diff --git a/tests/ref/fate/filter-pixfmts-crop b/tests/ref/fate/filter-pixfmts-crop
index ef2fa68db0..c4ca776ade 100644
--- a/tests/ref/fate/filter-pixfmts-crop
+++ b/tests/ref/fate/filter-pixfmts-crop
@@ -103,7 +103,7 @@ vyu444              5d976b25782ff69e4b3b18453fa1447b
 x2bgr10le           84de725b85662c362862820dc4a309aa
 x2rgb10le           f4265aca7a67dbfa9354370098ca6f33
 xv30le              efebde9ca614024cd7ed95c7c02e9281
-xv36le              567af630bf0209e026e0909b3ca9c436
+xv36le              778286003497f92b84d0bd8258d6b85d
 xyz12be             cb4571f9aaa7b59f999ef327276104b7
 xyz12le             cd6aae8d26b18bdb4b9d068586276d91
 ya16be              a3d18014454942a96f15a49947c0c55d
diff --git a/tests/ref/fate/filter-pixfmts-field b/tests/ref/fate/filter-pixfmts-field
index 6e500bdff7..67ebe64c4f 100644
--- a/tests/ref/fate/filter-pixfmts-field
+++ b/tests/ref/fate/filter-pixfmts-field
@@ -106,7 +106,7 @@ vyu444              b139fb4ddaef12a7542a68277211efa7
 x2bgr10le           dbe21538d7cb1744914f6bd46ec09b55
 x2rgb10le           a18bc4ae5274e0a8cca9137ecd50c677
 xv30le              298f6f14c5bfc18587cd1c3225287a39
-xv36le              e05a99fc3edc8f26cb2dbd287c0a0fcf
+xv36le              ba99f258370f2a56993e8760e6b30194
 xyz12be             d2fa69ec91d3ed862f2dac3f8e7a3437
 xyz12le             02bccd5e0b6824779a1f848b0ea3e3b5
 y210le              025beb25f047a762e3788dbea4b60864
diff --git a/tests/ref/fate/filter-pixfmts-fieldorder b/tests/ref/fate/filter-pixfmts-fieldorder
index 890b9191c6..91106cbf39 100644
--- a/tests/ref/fate/filter-pixfmts-fieldorder
+++ b/tests/ref/fate/filter-pixfmts-fieldorder
@@ -95,7 +95,7 @@ vyu444              3ddab207d561a3ee5efae09e504207f2
 x2bgr10le           86474d84f26c5c51d6f75bf7e1de8da8
 x2rgb10le           cdf6a9e8a8d081aa768c6ae2e6221676
 xv30le              bfd6693b5e995f65b130d963a972c34e
-xv36le              1f054a1ba4c8f8875ffd15d3d1baccba
+xv36le              bcceffc985aaa8414c4b8072aa0889bd
 xyz12be             15f5cda71de5fef9cec5e75e3833b6bc
 xyz12le             7be6c8781f38c21a6b8f602f62ca31e6
 y210le              ee45acfb1386288af98af5313162ff3e
diff --git a/tests/ref/fate/filter-pixfmts-hflip b/tests/ref/fate/filter-pixfmts-hflip
index e12999a15a..18b9fe76fe 100644
--- a/tests/ref/fate/filter-pixfmts-hflip
+++ b/tests/ref/fate/filter-pixfmts-hflip
@@ -103,7 +103,7 @@ vyu444              7b72337f92a7223fd115265e2f769276
 x2bgr10le           827cc659f29378e00c5a7d2c0ada8f9a
 x2rgb10le           d4a8189b65395a88d0a38a7053f3359f
 xv30le              79c6fe0c957d4fdc7bd6d056b13d7ceb
-xv36le              6e9c3d2334f9fe2a0e6156615e53e272
+xv36le              e478b4b54698beb3ce1b9a2dd691d544
 xyz12be             25f90259ff8a226befdaec3dfe82996e
 xyz12le             926c0791d59aaff61b2778e8ada3316d
 ya16be              d5b342355bdd9e3197e01b13b7c6301e
diff --git a/tests/ref/fate/filter-pixfmts-il b/tests/ref/fate/filter-pixfmts-il
index 56bec41e4a..02f7021f45 100644
--- a/tests/ref/fate/filter-pixfmts-il
+++ b/tests/ref/fate/filter-pixfmts-il
@@ -105,7 +105,7 @@ vyu444              50e9e24a38afc81541a536d06aab5ebe
 x2bgr10le           135acaff8318cf9861bb0f7849a9e5e9
 x2rgb10le           517fb186f523dc7cdc5c5c6967cfbe94
 xv30le              b18e762bfc505cdd51bac3401c019613
-xv36le              cfebfdccb16087207bab0b1909c9d85c
+xv36le              102c0e817d375ddd6b2cfbb4262dec95
 xyz12be             7c7d54c55f136cbbc50b18029f3be0b3
 xyz12le             090ba6b1170baf2b1358b43b971d33b0
 y210le              306ec4238b49dbc8625a97b678ea1c5f
diff --git a/tests/ref/fate/filter-pixfmts-null b/tests/ref/fate/filter-pixfmts-null
index dbc9947a47..8bff815408 100644
--- a/tests/ref/fate/filter-pixfmts-null
+++ b/tests/ref/fate/filter-pixfmts-null
@@ -106,7 +106,7 @@ vyu444              93912234400a4373b1a6b5c4e4b1a4ef
 x2bgr10le           550c0d190cf695afa4eaacb644db6b75
 x2rgb10le           c1e3ac21be04a16bb157b22784524520
 xv30le              718bf036d13f9f1ea8804c2658dd53fa
-xv36le              6b8e46832aa8537a774e93dd7503c700
+xv36le              e08dcbde02f1c28a3554f372ad1278e2
 xyz12be             a1ef56bf746d71f59669c28e48fc8450
 xyz12le             831ff03c1ba4ef19374686f16a064d8c
 y210le              0736b017e0814daf38d3350c42796f7a
diff --git a/tests/ref/fate/filter-pixfmts-scale b/tests/ref/fate/filter-pixfmts-scale
index 60b968a9bf..d2fbf442c9 100644
--- a/tests/ref/fate/filter-pixfmts-scale
+++ b/tests/ref/fate/filter-pixfmts-scale
@@ -106,7 +106,7 @@ vyu444              d663334119da56e36aca1e8e4eb29a39
 x2bgr10le           d57b9a99033cc7b65ddd111578f2d385
 x2rgb10le           d56bdb23fa6a8e12a0b4394987f89935
 xv30le              aaee6b4eff276709715fa83073ae87a4
-xv36le              4242e35b87fcdfbc3f17370c591577c7
+xv36le              de9c74e94dc19c828e1572aa283d8aca
 xyz12be             c7ba8345998c0141ddc079cdd29b1a40
 xyz12le             95f5d3a0de834cc495c9032a14987cde
 y210le              1c2708a520477f955d1fedf6ca7a41bd
diff --git a/tests/ref/fate/filter-pixfmts-transpose b/tests/ref/fate/filter-pixfmts-transpose
index 54798f2276..6867c20eff 100644
--- a/tests/ref/fate/filter-pixfmts-transpose
+++ b/tests/ref/fate/filter-pixfmts-transpose
@@ -95,7 +95,7 @@ vyu444              e70a294738165223928fddc9970b8381
 x2bgr10le           4aa774b6d8f6d446a64f1f288e5c97eb
 x2rgb10le           09cb1d98fe17ad8a6d9d3bec97ddc845
 xv30le              da27f069e340e756a9bb29f628ed06d1
-xv36le              a819ca57db4187a3effe2bd5e374e932
+xv36le              9202133de91bf64c76ca27d5cd0c816a
 xyz12be             68e5cba640f6e4ef72dff950e88b5342
 xyz12le             8b6b6a6db4d7561e80db88ccaecce7a9
 ya16be              3e161cb5f225922a80fefdc9cc02a4f9
diff --git a/tests/ref/fate/filter-pixfmts-vflip b/tests/ref/fate/filter-pixfmts-vflip
index 8c0651090f..945a776a24 100644
--- a/tests/ref/fate/filter-pixfmts-vflip
+++ b/tests/ref/fate/filter-pixfmts-vflip
@@ -106,7 +106,7 @@ vyu444              815de7c57dc8afafb3de908a4a280582
 x2bgr10le           795b66a5fc83cd2cf300aae51c230f80
 x2rgb10le           262c502230cf3724f8e2cf4737f18a42
 xv30le              2cb6ce5f744b33d53cd39a2ea2ab00f3
-xv36le              bf1cbef0745f90881e15f5c5db3c5949
+xv36le              ffe6ab75ebc09134c3451f8f6ef0d501
 xyz12be             23fa9fb36d49dce61e284d41b83e0e6b
 xyz12le             ef73e6d1f932a9a355df1eedd628394f
 y210le              9544c81f8e1fc95e9fa4009dbecfea25
-- 
2.46.2



More information about the ffmpeg-devel mailing list