Browse Source

Better error messages

Commited in SoC by Vitor Sessak on 2008-04-10 18:35:09

Originally committed as revision 13304 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/v0.5
Vitor Sessak 17 years ago
parent
commit
22260824c0
1 changed files with 19 additions and 3 deletions
  1. +19
    -3
      libavfilter/graphparser.c

+ 19
- 3
libavfilter/graphparser.c View File

@@ -139,20 +139,27 @@ static char *consume_string(const char **buf)
*/ */
static void parse_link_name(const char **buf, char **name) static void parse_link_name(const char **buf, char **name)
{ {
const char *start = *buf;
(*buf)++; (*buf)++;


*name = consume_string(buf); *name = consume_string(buf);


if(!*name[0])
if(!*name[0]) {
av_log(&log_ctx, AV_LOG_ERROR,
"Bad (empty?) label found in the following: \"%s\".\n", start);
goto fail; goto fail;
}


if(*(*buf)++ != ']')
if(*(*buf)++ != ']') {
av_log(&log_ctx, AV_LOG_ERROR,
"Mismatched '[' found in the following: \"%s\".\n", start);
goto fail; goto fail;
}


return; return;

fail: fail:
av_freep(name); av_freep(name);
av_log(&log_ctx, AV_LOG_ERROR, "Could not parse link name!\n");
} }


/** /**
@@ -212,6 +219,12 @@ static int parse_inouts(const char **buf, AVFilterInOut **inout, int pad,
while (**buf == '[') { while (**buf == '[') {
AVFilterInOut *inoutn = av_malloc(sizeof(AVFilterInOut)); AVFilterInOut *inoutn = av_malloc(sizeof(AVFilterInOut));
parse_link_name(buf, &inoutn->name); parse_link_name(buf, &inoutn->name);

if (!inoutn->name) {
av_free(inoutn);
return -1;
}

inoutn->type = type; inoutn->type = type;
inoutn->filter = filter; inoutn->filter = filter;
inoutn->pad_idx = pad++; inoutn->pad_idx = pad++;
@@ -263,6 +276,9 @@ int avfilter_parse_graph(AVFilterGraph *graph, const char *filters,


pad = parse_inouts(&inouts, &inout, chr == ',', LinkTypeIn, filter); pad = parse_inouts(&inouts, &inout, chr == ',', LinkTypeIn, filter);


if(pad < 0)
goto fail;

// If the first filter has an input and none was given, it is // If the first filter has an input and none was given, it is
// implicitly the input of the whole graph. // implicitly the input of the whole graph.
if(pad == 0 && filter->input_count == 1) { if(pad == 0 && filter->input_count == 1) {


Loading…
Cancel
Save