lavd/caca: provide more meaningful feedback if fails to set a dither option
authorStefano Sabatini <stefasab@gmail.com>
Sat, 21 Jul 2012 09:04:51 +0000 (11:04 +0200)
committerStefano Sabatini <stefasab@gmail.com>
Sun, 22 Jul 2012 08:32:15 +0000 (10:32 +0200)
libavdevice/caca.c

index 0f44edd..cfbb371 100644 (file)
@@ -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' for 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);