[FFmpeg-devel] [PATCH v2] ffprobe: Allow unknown format private AVOptions

Marton Balint cus at passwd.hu
Tue Jun 30 23:48:36 EEST 2020



On Sun, 28 Jun 2020, Derek Buitenhuis wrote:

> This useful, because by ffprobe's very nature, you use it to probe
> a file and find out what it is. Requiring every format private option
> to be known to the demuxer forces one to run ffprobe twice, if one
> wants to use ffprobe in a generic way.
>
> For example, say one wants to probe all user-uploaded files, while
> also ignoring edit lists for any MP4s that are uploaded. Currently,
> you'd have to run ffprobe twice: once to identify the format, and
> once again to actually probe the metadata you want. After this
> patch, you could set -ignore_editlist 1 on every call and only
> probe once.
>
> Signed-off-by: Derek Buitenhuis <derek.buitenhuis at gmail.com>
> ---
> Changed to just be the main behavior instead of behind an option,
> as Michael suggested.
>
> Didn't really know what would be added to ffprobe.texi, though, since
> this is no longer an option.
> ---
> fftools/ffprobe.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
> index 5515e1b31b..61191add6b 100644
> --- a/fftools/ffprobe.c
> +++ b/fftools/ffprobe.c
> @@ -2879,10 +2879,8 @@ static int open_input_file(InputFile *ifile, const char *filename,
>     ifile->fmt_ctx = fmt_ctx;
>     if (scan_all_pmts_set)
>         av_dict_set(&format_opts, "scan_all_pmts", NULL, AV_DICT_MATCH_CASE);
> -    if ((t = av_dict_get(format_opts, "", NULL, AV_DICT_IGNORE_SUFFIX))) {
> -        av_log(NULL, AV_LOG_ERROR, "Option %s not found.\n", t->key);
> -        return AVERROR_OPTION_NOT_FOUND;
> -    }
> +    if ((t = av_dict_get(format_opts, "", NULL, AV_DICT_IGNORE_SUFFIX)))
> +        av_log(NULL, AV_LOG_WARNING, "Option %s skipped - not known to demuxer.\n", t->key);

This only logs the first skipped option. I think it is best if you 
iterate through all of them.

Regards,
Marton


More information about the ffmpeg-devel mailing list