Improve av_parse_eval() error reporting.

Originally committed as revision 23627 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Stefano Sabatini 2010-06-16 18:27:46 +00:00
parent 08943c0bd1
commit 2f62224bc0

View File

@ -182,7 +182,7 @@ void av_free_expr(AVExpr *e)
static int parse_primary(AVExpr **e, Parser *p) static int parse_primary(AVExpr **e, Parser *p)
{ {
AVExpr *d = av_mallocz(sizeof(AVExpr)); AVExpr *d = av_mallocz(sizeof(AVExpr));
char *next= p->s; char *next = p->s, *s0 = p->s;
int ret, i; int ret, i;
if (!d) if (!d)
@ -211,7 +211,7 @@ static int parse_primary(AVExpr **e, Parser *p)
p->s= strchr(p->s, '('); p->s= strchr(p->s, '(');
if (p->s==NULL) { if (p->s==NULL) {
av_log(p, AV_LOG_ERROR, "undefined constant or missing (\n"); av_log(p, AV_LOG_ERROR, "Undefined constant or missing '(' in '%s'\n", s0);
p->s= next; p->s= next;
av_free_expr(d); av_free_expr(d);
return AVERROR(EINVAL); return AVERROR(EINVAL);
@ -222,7 +222,7 @@ static int parse_primary(AVExpr **e, Parser *p)
if ((ret = parse_expr(&d, p)) < 0) if ((ret = parse_expr(&d, p)) < 0)
return ret; return ret;
if (p->s[0] != ')') { if (p->s[0] != ')') {
av_log(p, AV_LOG_ERROR, "missing )\n"); av_log(p, AV_LOG_ERROR, "Missing ')' in '%s'\n", s0);
av_free_expr(d); av_free_expr(d);
return AVERROR(EINVAL); return AVERROR(EINVAL);
} }
@ -239,7 +239,7 @@ static int parse_primary(AVExpr **e, Parser *p)
parse_expr(&d->param[1], p); parse_expr(&d->param[1], p);
} }
if (p->s[0] != ')') { if (p->s[0] != ')') {
av_log(p, AV_LOG_ERROR, "missing )\n"); av_log(p, AV_LOG_ERROR, "Missing ')' or too many args in '%s'\n", s0);
av_free_expr(d); av_free_expr(d);
return AVERROR(EINVAL); return AVERROR(EINVAL);
} }
@ -290,7 +290,7 @@ static int parse_primary(AVExpr **e, Parser *p)
} }
} }
av_log(p, AV_LOG_ERROR, "unknown function\n"); av_log(p, AV_LOG_ERROR, "Unknown function in '%s'\n", s0);
av_free_expr(d); av_free_expr(d);
return AVERROR(EINVAL); return AVERROR(EINVAL);
} }