The branch, master has been updated
via 7a774829f99815f7671999c12fc920d8885b854a (commit)
from 73d411c399df4abe2750b611fc8381979fcbafc6 (commit)
- Log -----------------------------------------------------------------
commit 7a774829f99815f7671999c12fc920d8885b854a
Author: Marton Balint <[email protected]>
AuthorDate: Wed Aug 27 00:15:31 2025 +0200
Commit: Marton Balint <[email protected]>
CommitDate: Sat Aug 30 18:46:15 2025 +0000
avutil/opt: also print option names on parse error
It is more user-friendly to print which option caused the parse error.
Signed-off-by: Marton Balint <[email protected]>
diff --git a/libavutil/opt.c b/libavutil/opt.c
index 7a84a18bb5..fc5834e168 100644
--- a/libavutil/opt.c
+++ b/libavutil/opt.c
@@ -490,7 +490,7 @@ static int set_string_number(void *obj, void *target_obj,
const AVOption *o, con
res = av_expr_parse_and_eval(&d, i ? buf : val, const_names,
const_values, NULL, NULL, NULL,
NULL, NULL, 0, obj);
if (res < 0) {
- av_log(obj, AV_LOG_ERROR, "Unable to parse option value
\"%s\"\n", val);
+ av_log(obj, AV_LOG_ERROR, "Unable to parse \"%s\" option
value \"%s\"\n", o->name, val);
return res;
}
}
@@ -522,7 +522,7 @@ static int set_string_image_size(void *obj, const AVOption
*o, const char *val,
}
ret = av_parse_video_size(dst, dst + 1, val);
if (ret < 0)
- av_log(obj, AV_LOG_ERROR, "Unable to parse option value \"%s\" as
image size\n", val);
+ av_log(obj, AV_LOG_ERROR, "Unable to parse \"%s\" option value \"%s\"
as image size\n", o->name, val);
return ret;
}
@@ -530,7 +530,7 @@ static int set_string_video_rate(void *obj, const AVOption
*o, const char *val,
{
int ret = av_parse_video_rate(dst, val);
if (ret < 0)
- av_log(obj, AV_LOG_ERROR, "Unable to parse option value \"%s\" as
video rate\n", val);
+ av_log(obj, AV_LOG_ERROR, "Unable to parse \"%s\" option value \"%s\"
as video rate\n", o->name, val);
return ret;
}
@@ -543,7 +543,7 @@ static int set_string_color(void *obj, const AVOption *o,
const char *val, uint8
} else {
ret = av_parse_color(dst, val, -1, obj);
if (ret < 0)
- av_log(obj, AV_LOG_ERROR, "Unable to parse option value \"%s\" as
color\n", val);
+ av_log(obj, AV_LOG_ERROR, "Unable to parse \"%s\" option value
\"%s\" as color\n", o->name, val);
return ret;
}
return 0;
@@ -583,7 +583,7 @@ static int set_string_bool(void *obj, const AVOption *o,
const char *val, int *d
return 0;
fail:
- av_log(obj, AV_LOG_ERROR, "Unable to parse option value \"%s\" as
boolean\n", val);
+ av_log(obj, AV_LOG_ERROR, "Unable to parse \"%s\" option value \"%s\" as
boolean\n", o->name, val);
return AVERROR(EINVAL);
}
@@ -601,7 +601,7 @@ static int set_string_fmt(void *obj, const AVOption *o,
const char *val, uint8_t
fmt = strtol(val, &tail, 0);
if (*tail || (unsigned)fmt >= fmt_nb) {
av_log(obj, AV_LOG_ERROR,
- "Unable to parse option value \"%s\" as %s\n", val,
desc);
+ "Unable to parse \"%s\" option value \"%s\" as %s\n",
o->name, val, desc);
return AVERROR(EINVAL);
}
}
@@ -724,7 +724,7 @@ static int opt_set_elem(void *obj, void *target_obj, const
AVOption *o,
int64_t usecs = 0;
if (val) {
if ((ret = av_parse_time(&usecs, val, 1)) < 0) {
- av_log(obj, AV_LOG_ERROR, "Unable to parse option value
\"%s\" as duration\n", val);
+ av_log(obj, AV_LOG_ERROR, "Unable to parse \"%s\" option
value \"%s\" as duration\n", o->name, val);
return ret;
}
}
@@ -741,7 +741,7 @@ static int opt_set_elem(void *obj, void *target_obj, const
AVOption *o,
case AV_OPT_TYPE_CHLAYOUT:
ret = set_string_channel_layout(obj, o, val, dst);
if (ret < 0) {
- av_log(obj, AV_LOG_ERROR, "Unable to parse option value \"%s\" as
channel layout\n", val);
+ av_log(obj, AV_LOG_ERROR, "Unable to parse \"%s\" option value
\"%s\" as channel layout\n", o->name, val);
ret = AVERROR(EINVAL);
}
return ret;
diff --git a/tests/ref/fate/opt b/tests/ref/fate/opt
index b8812e3eff..1f82f7e4bd 100644
--- a/tests/ref/fate/opt
+++ b/tests/ref/fate/opt
@@ -231,7 +231,7 @@ Error 'foo==val'
Setting options string 'toggle=:'
Setting entry with key 'toggle' to value ''
Undefined constant or missing '(' in ''
-Unable to parse option value ""
+Unable to parse "toggle" option value ""
Error 'toggle=:'
Setting options string 'string=:'
Setting entry with key 'string' to value ''
@@ -247,7 +247,7 @@ Error 'toggle=100'
Setting options string 'toggle==1'
Setting entry with key 'toggle' to value '=1'
Undefined constant or missing '(' in '=1'
-Unable to parse option value "=1"
+Unable to parse "toggle" option value "=1"
Error 'toggle==1'
Setting options string 'flags=+mu-lame : num=42: toggle=0'
Setting entry with key 'flags' to value '+mu-lame'
@@ -275,7 +275,7 @@ Setting entry with key 'size' to value 'pal'
OK 'size=pal'
Setting options string 'size=bogus'
Setting entry with key 'size' to value 'bogus'
-Unable to parse option value "bogus" as image size
+Unable to parse "size" option value "bogus" as image size
Error 'size=bogus'
Setting options string 'pix_fmt=yuv420p'
Setting entry with key 'pix_fmt' to value 'yuv420p'
@@ -285,7 +285,7 @@ Setting entry with key 'pix_fmt' to value '2'
OK 'pix_fmt=2'
Setting options string 'pix_fmt=bogus'
Setting entry with key 'pix_fmt' to value 'bogus'
-Unable to parse option value "bogus" as pixel format
+Unable to parse "pix_fmt" option value "bogus" as pixel format
Error 'pix_fmt=bogus'
Setting options string 'sample_fmt=s16'
Setting entry with key 'sample_fmt' to value 's16'
@@ -295,7 +295,7 @@ Setting entry with key 'sample_fmt' to value '2'
OK 'sample_fmt=2'
Setting options string 'sample_fmt=bogus'
Setting entry with key 'sample_fmt' to value 'bogus'
-Unable to parse option value "bogus" as sample format
+Unable to parse "sample_fmt" option value "bogus" as sample format
Error 'sample_fmt=bogus'
Setting options string 'video_rate=pal'
Setting entry with key 'video_rate' to value 'pal'
@@ -312,11 +312,11 @@ OK 'video_rate=30/1.001'
Setting options string 'video_rate=bogus'
Setting entry with key 'video_rate' to value 'bogus'
Undefined constant or missing '(' in 'bogus'
-Unable to parse option value "bogus" as video rate
+Unable to parse "video_rate" option value "bogus" as video rate
Error 'video_rate=bogus'
Setting options string 'duration=bogus'
Setting entry with key 'duration' to value 'bogus'
-Unable to parse option value "bogus" as duration
+Unable to parse "duration" option value "bogus" as duration
Error 'duration=bogus'
Setting options string 'duration=123.45'
Setting entry with key 'duration' to value '123.45'
@@ -338,7 +338,7 @@ Setting entry with key 'cl' to value 'FL+FR'
OK 'cl=FL+FR'
Setting options string 'cl=foo'
Setting entry with key 'cl' to value 'foo'
-Unable to parse option value "foo" as channel layout
+Unable to parse "cl" option value "foo" as channel layout
Error 'cl=foo'
Setting options string 'bin=boguss'
Setting entry with key 'bin' to value 'boguss'
@@ -352,7 +352,7 @@ OK 'bin=ffff'
Setting options string 'num=bogus'
Setting entry with key 'num' to value 'bogus'
Undefined constant or missing '(' in 'bogus'
-Unable to parse option value "bogus"
+Unable to parse "num" option value "bogus"
Error 'num=bogus'
Setting options string 'num=44'
Setting entry with key 'num' to value '44'
@@ -374,7 +374,7 @@ Error 'num=101'
Setting options string 'unum=bogus'
Setting entry with key 'unum' to value 'bogus'
Undefined constant or missing '(' in 'bogus'
-Unable to parse option value "bogus"
+Unable to parse "unum" option value "bogus"
Error 'unum=bogus'
Setting options string 'unum=44'
Setting entry with key 'unum' to value '44'
@@ -396,7 +396,7 @@ Error 'unum=2147483649'
Setting options string 'num64=bogus'
Setting entry with key 'num64' to value 'bogus'
Undefined constant or missing '(' in 'bogus'
-Unable to parse option value "bogus"
+Unable to parse "num64" option value "bogus"
Error 'num64=bogus'
Setting options string 'num64=44'
Setting entry with key 'num64' to value '44'
@@ -421,7 +421,7 @@ Error 'num64=4294967297'
Setting options string 'flt=bogus'
Setting entry with key 'flt' to value 'bogus'
Undefined constant or missing '(' in 'bogus'
-Unable to parse option value "bogus"
+Unable to parse "flt" option value "bogus"
Error 'flt=bogus'
Setting options string 'flt=2'
Setting entry with key 'flt' to value '2'
@@ -440,7 +440,7 @@ Error 'flt=101'
Setting options string 'dbl=bogus'
Setting entry with key 'dbl' to value 'bogus'
Undefined constant or missing '(' in 'bogus'
-Unable to parse option value "bogus"
+Unable to parse "dbl" option value "bogus"
Error 'dbl=bogus'
Setting options string 'dbl=2'
Setting entry with key 'dbl' to value '2'
@@ -496,7 +496,7 @@ Error '5:size=pal:hello'
Setting options string ':'
Setting 'num' to value ''
Undefined constant or missing '(' in ''
-Unable to parse option value ""
+Unable to parse "num" option value ""
Error ':'
Setting options string '='
Setting '' to value ''
-----------------------------------------------------------------------
Summary of changes:
libavutil/opt.c | 16 ++++++++--------
tests/ref/fate/opt | 28 ++++++++++++++--------------
2 files changed, 22 insertions(+), 22 deletions(-)
hooks/post-receive
--
_______________________________________________
ffmpeg-cvslog mailing list -- [email protected]
To unsubscribe send an email to [email protected]