]> git.sesse.net Git - ffmpeg/blobdiff - libavfilter/vf_scale.c
Merge remote-tracking branch 'qatar/master'
[ffmpeg] / libavfilter / vf_scale.c
index 86be86f3c965073c0ca9cc1a9d4b0b90515c38b4..810a6d3ef10337a1cd75d18bc45868767a6c2b63 100644 (file)
@@ -27,6 +27,7 @@
 #include "libavutil/avstring.h"
 #include "libavutil/eval.h"
 #include "libavutil/mathematics.h"
+#include "libavutil/opt.h"
 #include "libavutil/pixdesc.h"
 #include "libavutil/imgutils.h"
 #include "libavutil/avassert.h"
@@ -92,7 +93,15 @@ static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque)
     if (args) {
         sscanf(args, "%255[^:]:%255[^:]", scale->w_expr, scale->h_expr);
         p = strstr(args,"flags=");
-        if (p) scale->flags = strtoul(p+6, NULL, 0);
+        if (p) {
+            const AVClass *class = sws_get_class();
+            const AVOption    *o = av_opt_find(&class, "sws_flags", NULL, 0,
+                                               AV_OPT_SEARCH_FAKE_OBJ);
+            int ret = av_opt_eval_flags(&class, o, p + 6, &scale->flags);
+
+            if (ret < 0)
+                return ret;
+        }
         if(strstr(args,"interl=1")){
             scale->interlaced=1;
         }else if(strstr(args,"interl=-1"))