diff --git a/doc/demuxers.texi b/doc/demuxers.texi index 2a6f7790fc..2867538860 100644 --- a/doc/demuxers.texi +++ b/doc/demuxers.texi @@ -58,6 +58,10 @@ following directive is recognized: Path to a file to read; special characters and spaces must be escaped with backslash or single quotes. +@item @code{ffconcat version 1.0} +Identify the script type and version. It also sets the @option{safe} option +to 1 if it was to its default -1. + @end table @subsection Options diff --git a/libavformat/concatdec.c b/libavformat/concatdec.c index bba99d8e66..b99ec5c15c 100644 --- a/libavformat/concatdec.c +++ b/libavformat/concatdec.c @@ -173,6 +173,15 @@ static int concat_read_header(AVFormatContext *avf) } if ((ret = add_file(avf, filename, &file, &nb_files_alloc)) < 0) FAIL(ret); + } else if (!strcmp(keyword, "ffconcat")) { + char *ver_kw = get_keyword(&cursor); + char *ver_val = get_keyword(&cursor); + if (strcmp(ver_kw, "version") || strcmp(ver_val, "1.0")) { + av_log(avf, AV_LOG_ERROR, "Line %d: invalid version\n", line); + FAIL(AVERROR_INVALIDDATA); + } + if (cat->safe < 0) + cat->safe = 1; } else { av_log(avf, AV_LOG_ERROR, "Line %d: unknown keyword '%s'\n", line, keyword);