[FFmpeg-devel] [PATCH 09/10] swscale: add P210/P410/P216/P416 output

rcombs rcombs at rcombs.me
Fri Dec 17 02:12:14 EET 2021


---
 libswscale/output.c  |  8 ++++++--
 libswscale/utils.c   | 16 ++++++++--------
 libswscale/version.h |  2 +-
 3 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/libswscale/output.c b/libswscale/output.c
index 58b10f85a5..4b4b186be9 100644
--- a/libswscale/output.c
+++ b/libswscale/output.c
@@ -2563,14 +2563,18 @@ av_cold void ff_sws_init_output_funcs(SwsContext *c,
     enum AVPixelFormat dstFormat = c->dstFormat;
     const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(dstFormat);
 
-    if (dstFormat == AV_PIX_FMT_P010LE || dstFormat == AV_PIX_FMT_P010BE) {
+    if (dstFormat == AV_PIX_FMT_P010LE || dstFormat == AV_PIX_FMT_P010BE ||
+        dstFormat == AV_PIX_FMT_P210LE || dstFormat == AV_PIX_FMT_P210BE ||
+        dstFormat == AV_PIX_FMT_P410LE || dstFormat == AV_PIX_FMT_P410BE) {
         *yuv2plane1 = isBE(dstFormat) ? yuv2p010l1_BE_c : yuv2p010l1_LE_c;
         *yuv2planeX = isBE(dstFormat) ? yuv2p010lX_BE_c : yuv2p010lX_LE_c;
         *yuv2nv12cX = yuv2p010cX_c;
     } else if (is16BPS(dstFormat)) {
         *yuv2planeX = isBE(dstFormat) ? yuv2planeX_16BE_c  : yuv2planeX_16LE_c;
         *yuv2plane1 = isBE(dstFormat) ? yuv2plane1_16BE_c  : yuv2plane1_16LE_c;
-        if (dstFormat == AV_PIX_FMT_P016LE || dstFormat == AV_PIX_FMT_P016BE) {
+        if (dstFormat == AV_PIX_FMT_P016LE || dstFormat == AV_PIX_FMT_P016BE ||
+            dstFormat == AV_PIX_FMT_P216LE || dstFormat == AV_PIX_FMT_P216BE ||
+            dstFormat == AV_PIX_FMT_P416LE || dstFormat == AV_PIX_FMT_P416BE) {
           *yuv2nv12cX = yuv2p016cX_c;
         }
     } else if (isNBPS(dstFormat)) {
diff --git a/libswscale/utils.c b/libswscale/utils.c
index d4a72d3ce1..c80b4f3e35 100644
--- a/libswscale/utils.c
+++ b/libswscale/utils.c
@@ -268,14 +268,14 @@ static const FormatEntry format_entries[] = {
     [AV_PIX_FMT_Y210LE]      = { 1, 0 },
     [AV_PIX_FMT_X2RGB10LE]   = { 1, 1 },
     [AV_PIX_FMT_X2BGR10LE]   = { 1, 1 },
-    [AV_PIX_FMT_P210BE]      = { 1, 0 },
-    [AV_PIX_FMT_P210LE]      = { 1, 0 },
-    [AV_PIX_FMT_P410BE]      = { 1, 0 },
-    [AV_PIX_FMT_P410LE]      = { 1, 0 },
-    [AV_PIX_FMT_P216BE]      = { 1, 0 },
-    [AV_PIX_FMT_P216LE]      = { 1, 0 },
-    [AV_PIX_FMT_P416BE]      = { 1, 0 },
-    [AV_PIX_FMT_P416LE]      = { 1, 0 },
+    [AV_PIX_FMT_P210BE]      = { 1, 1 },
+    [AV_PIX_FMT_P210LE]      = { 1, 1 },
+    [AV_PIX_FMT_P410BE]      = { 1, 1 },
+    [AV_PIX_FMT_P410LE]      = { 1, 1 },
+    [AV_PIX_FMT_P216BE]      = { 1, 1 },
+    [AV_PIX_FMT_P216LE]      = { 1, 1 },
+    [AV_PIX_FMT_P416BE]      = { 1, 1 },
+    [AV_PIX_FMT_P416LE]      = { 1, 1 },
 };
 
 void ff_shuffle_filter_coefficients(SwsContext *c, int *filterPos, int filterSize, int16_t *filter, int dstW){
diff --git a/libswscale/version.h b/libswscale/version.h
index 15ad54319c..8f7b56df9a 100644
--- a/libswscale/version.h
+++ b/libswscale/version.h
@@ -28,7 +28,7 @@
 
 #define LIBSWSCALE_VERSION_MAJOR   6
 #define LIBSWSCALE_VERSION_MINOR   1
-#define LIBSWSCALE_VERSION_MICRO 101
+#define LIBSWSCALE_VERSION_MICRO 102
 
 #define LIBSWSCALE_VERSION_INT  AV_VERSION_INT(LIBSWSCALE_VERSION_MAJOR, \
                                                LIBSWSCALE_VERSION_MINOR, \
-- 
2.33.1



More information about the ffmpeg-devel mailing list