diff options
author | Nicolas George <george@nsup.org> | 2021-08-31 14:30:28 +0200 |
---|---|---|
committer | Nicolas George <george@nsup.org> | 2021-09-16 10:17:59 +0200 |
commit | 0a267bc5e20a8e7b1b79a501eed99c284ee00b4c (patch) | |
tree | 0fddc0c39699b04ec352ffcfe213d6ba512e8f34 | |
parent | 449ba49a9fb05642b068c51c2c6fbbfa4b11f010 (diff) | |
download | ffmpeg-0a267bc5e20a8e7b1b79a501eed99c284ee00b4c.tar.gz |
lavf/concatdec: add stream_codec directive
-rw-r--r-- | doc/demuxers.texi | 3 | ||||
-rw-r--r-- | libavformat/concatdec.c | 13 |
2 files changed, 16 insertions, 0 deletions
diff --git a/doc/demuxers.texi b/doc/demuxers.texi index 87e4d0319a..6bb0574e94 100644 --- a/doc/demuxers.texi +++ b/doc/demuxers.texi @@ -181,6 +181,9 @@ streams is not reliable. Metadata for the stream. Can be present multiple times. +@item @code{stream_codec @var{value}} +Codec for the stream. + @end table @subsection Options diff --git a/libavformat/concatdec.c b/libavformat/concatdec.c index 6e91fd1826..a0d68d51cc 100644 --- a/libavformat/concatdec.c +++ b/libavformat/concatdec.c @@ -431,6 +431,7 @@ typedef enum ParseDirective { DIR_STREAM, DIR_EXSID, DIR_STMETA, + DIR_STCODEC, } ParseDirective; static const ParseSyntax syntax[] = { @@ -445,6 +446,7 @@ static const ParseSyntax syntax[] = { [DIR_STREAM ] = { "stream", "", 0 }, [DIR_EXSID ] = { "exact_stream_id", "i", NEEDS_STREAM }, [DIR_STMETA ] = { "stream_meta", "ks", NEEDS_STREAM }, + [DIR_STCODEC ] = { "stream_codec", "k", NEEDS_STREAM }, }; static int concat_parse_script(AVFormatContext *avf) @@ -596,6 +598,17 @@ static int concat_parse_script(AVFormatContext *avf) FAIL(ret); break; + case DIR_STCODEC: { + const AVCodecDescriptor *codec = avcodec_descriptor_get_by_name(arg_kw[0]); + if (!codec) { + av_log(avf, AV_LOG_ERROR, "Line %d: codec '%s' not found\n", line, arg_kw[0]); + FAIL(AVERROR_DECODER_NOT_FOUND); + } + stream->codecpar->codec_type = codec->type; + stream->codecpar->codec_id = codec->id; + break; + } + default: FAIL(AVERROR_BUG); } |