OSDN Git Service

Make parse_outputs() always return meaningful error codes.
authorStefano Sabatini <stefano.sabatini-lala@poste.it>
Sun, 7 Nov 2010 18:40:12 +0000 (18:40 +0000)
committerStefano Sabatini <stefano.sabatini-lala@poste.it>
Sun, 7 Nov 2010 18:40:12 +0000 (18:40 +0000)
Originally committed as revision 25698 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavfilter/graphparser.c

index 3b49898..2929776 100644 (file)
@@ -277,7 +277,7 @@ static int parse_outputs(const char **buf, AVFilterInOut **curr_inputs,
                          AVFilterInOut **open_inputs,
                          AVFilterInOut **open_outputs, AVClass *log_ctx)
 {
-    int pad = 0;
+    int ret, pad = 0;
 
     while (**buf == '[') {
         char *name = parse_link_name(buf, log_ctx);
@@ -287,15 +287,15 @@ static int parse_outputs(const char **buf, AVFilterInOut **curr_inputs,
         *curr_inputs = (*curr_inputs)->next;
 
         if (!name)
-            return -1;
+            return AVERROR(EINVAL);
 
         /* First check if the label is not in the open_inputs list */
         match = extract_inout(name, open_inputs);
 
         if (match) {
-            if (link_filter(input->filter, input->pad_idx,
-                            match->filter, match->pad_idx, log_ctx) < 0)
-                return -1;
+            if ((ret = link_filter(input->filter, input->pad_idx,
+                                   match->filter, match->pad_idx, log_ctx)) < 0)
+                return ret;
             av_free(match->name);
             av_free(name);
             av_free(match);