[FFmpeg-devel] [PATCH 2/7] swscale/tests/swscale: Split sws_getContext()

Michael Niedermayer michael at niedermayer.cc
Thu Feb 15 00:06:26 EET 2024


Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
---
 libswscale/tests/swscale.c | 23 ++++++++++++++++++++---
 1 file changed, 20 insertions(+), 3 deletions(-)

diff --git a/libswscale/tests/swscale.c b/libswscale/tests/swscale.c
index f853bc4c913..6792fcaa3dc 100644
--- a/libswscale/tests/swscale.c
+++ b/libswscale/tests/swscale.c
@@ -30,6 +30,7 @@
 #include "libavutil/mem.h"
 #include "libavutil/avutil.h"
 #include "libavutil/crc.h"
+#include "libavutil/opt.h"
 #include "libavutil/pixdesc.h"
 #include "libavutil/lfg.h"
 
@@ -165,10 +166,26 @@ static int doTest(const uint8_t * const ref[4], int refStride[4], int w, int h,
         }
     }
 
-    dstContext = sws_getContext(srcW, srcH, srcFormat, dstW, dstH, dstFormat,
-                                flags, NULL, NULL, NULL);
+    dstContext = sws_alloc_context();
     if (!dstContext) {
-        fprintf(stderr, "Failed to get %s ---> %s\n",
+        fprintf(stderr, "Failed to alloc %s ---> %s\n",
+                desc_src->name, desc_dst->name);
+        res = -1;
+        goto end;
+    }
+
+    av_opt_set_int(dstContext, "sws_flags",  flags, 0);
+    av_opt_set_int(dstContext, "srcw",       srcW, 0);
+    av_opt_set_int(dstContext, "srch",       srcH, 0);
+    av_opt_set_int(dstContext, "dstw",       dstW, 0);
+    av_opt_set_int(dstContext, "dsth",       dstH, 0);
+    av_opt_set_int(dstContext, "src_format", srcFormat, 0);
+    av_opt_set_int(dstContext, "dst_format", dstFormat, 0);
+    av_opt_set(dstContext, "alphablend", "none", 0);
+
+    if (sws_init_context(dstContext, NULL, NULL) < 0) {
+        sws_freeContext(dstContext);
+        fprintf(stderr, "Failed to init %s ---> %s\n",
                 desc_src->name, desc_dst->name);
         res = -1;
         goto end;
-- 
2.17.1



More information about the ffmpeg-devel mailing list