[FFmpeg-devel] [PATCH] lavd/caca: provide more meaningful feedback if fails to set a dither option

Stefano Sabatini stefasab at gmail.com
Sat Jul 21 11:13:28 CEST 2012


---
 libavdevice/caca.c |   18 ++++++++++--------
 1 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/libavdevice/caca.c b/libavdevice/caca.c
index 414bd00..15c4b4e 100644
--- a/libavdevice/caca.c
+++ b/libavdevice/caca.c
@@ -153,15 +153,17 @@ static int caca_write_header(AVFormatContext *s)
         goto fail;
     }
 
-    ret  = caca_set_dither_algorithm(c->dither, c->algorithm);
-    ret += caca_set_dither_antialias(c->dither, c->antialias);
-    ret +=   caca_set_dither_charset(c->dither, c->charset);
-    ret +=     caca_set_dither_color(c->dither, c->colors);
-    if (ret) {
-        av_log(s, AV_LOG_ERROR, "Invalid value given to one of options\n");
-        ret = AVERROR(EINVAL);
-        goto fail;
+#define CHECK_DITHER_OPT(opt)                                           \
+    if (caca_set_dither_##opt(c->dither, c->opt) < 0)  {                \
+        ret = AVERROR(errno);                                           \
+        av_log(s, AV_LOG_ERROR, "Failed to set value '%s' to option '%s'\n", \
+               c->opt, #opt);                                           \
+        goto fail;                                                      \
     }
+    CHECK_DITHER_OPT(algorithm);
+    CHECK_DITHER_OPT(antialias);
+    CHECK_DITHER_OPT(charset);
+    CHECK_DITHER_OPT(color);
 
     if (!c->window_title)
         c->window_title = av_strdup(s->filename);
-- 
1.7.5.4



More information about the ffmpeg-devel mailing list