[FFmpeg-devel] [PATCH] libavcodec/libx264.c: distinguish between x264 parameter errors

Erik Slagter erik at slagter.name
Mon Jul 18 12:24:50 CEST 2011


On 18-07-11 11:42, Michael Niedermayer wrote:
> > ...
> > error: patch failed: libavcodec/libx264.c:198
> > error: libavcodec/libx264.c: patch does not apply
> > ...
Yeah strange, it doesn't apply at a clean test tree here
as well (anymore?).

I've remade the patch and this one seems to work: 

>From f0935970e302ff4e9f14cdedc5243ee3a26ab2f7 Mon Sep 17 00:00:00 2001
From: Erik Slagter <erik at slagter.name>
Date: Wed, 29 Jun 2011 11:46:09 +0200
Subject: [PATCH] libx264.c: distinguish between x264 parameter errors.

---
 libavcodec/libx264.c |   21 +++++++++++++--------
 1 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c
index cc5b983..670a780 100644
--- a/libavcodec/libx264.c
+++ b/libavcodec/libx264.c
@@ -198,14 +198,19 @@ static void check_default_settings(AVCodecContext *avctx)
     }
 }
 
-#define OPT_STR(opt, param)                                             \
-    do {                                                                \
-        if (param && x264_param_parse(&x4->params, opt, param) < 0) {   \
-            av_log(avctx, AV_LOG_ERROR,                                 \
-                   "bad value for '%s': '%s'\n", opt, param);           \
-            return -1;                                                  \
-        }                                                               \
-    } while (0);                                                        \
+#define OPT_STR(opt, param)                                                   \
+    do {                                                                      \
+        int ret;                                                              \
+        if (param && (ret = x264_param_parse(&x4->params, opt, param)) < 0) { \
+            if(ret == X264_PARAM_BAD_NAME)                                    \
+                av_log(avctx, AV_LOG_ERROR,                                   \
+                        "bad option '%s': '%s'\n", opt, param);               \
+            else                                                              \
+                av_log(avctx, AV_LOG_ERROR,                                   \
+                        "bad value for '%s': '%s'\n", opt, param);            \
+            return -1;                                                        \
+        }                                                                     \
+    } while (0);
 
 static av_cold int X264_init(AVCodecContext *avctx)
 {
-- 1.7.4.4 



More information about the ffmpeg-devel mailing list