[FFmpeg-devel] [PATCH 11/12] lavf/concatdec: add stream_extradata directive

Nicolas George george at nsup.org
Tue Aug 31 21:07:38 EEST 2021


Signed-off-by: Nicolas George <george at nsup.org>
---
 doc/demuxers.texi       |  3 +++
 libavformat/concatdec.c | 11 +++++++++++
 2 files changed, 14 insertions(+)

diff --git a/doc/demuxers.texi b/doc/demuxers.texi
index 0c347e3f47..06ab152cc7 100644
--- a/doc/demuxers.texi
+++ b/doc/demuxers.texi
@@ -184,6 +184,9 @@ Can be present multiple times.
 @item @code{stream_codec @var{value}}
 Codec for the stream.
 
+ at item @code{stream_extradata @var{hex_string}}
+Extradata for the string, encoded in hexadecimal.
+
 @item @code{cahpter @var{id} @var{start} @var{end}}
 Add a chapter. @var{id} is an unique identifier, possibly small and
 consecutive.
diff --git a/libavformat/concatdec.c b/libavformat/concatdec.c
index 0dd39a149e..ded0ba6031 100644
--- a/libavformat/concatdec.c
+++ b/libavformat/concatdec.c
@@ -432,6 +432,7 @@ typedef enum ParseDirective {
    DIR_EXSID,
    DIR_STMETA,
    DIR_STCODEC,
+   DIR_STEDATA,
    DIR_CHAPTER,
 } ParseDirective;
 
@@ -448,6 +449,7 @@ static const ParseSyntax syntax[] = {
     [DIR_EXSID    ] = { "exact_stream_id",      "i",    NEEDS_STREAM },
     [DIR_STMETA   ] = { "stream_meta",          "ks",   NEEDS_STREAM },
     [DIR_STCODEC  ] = { "stream_codec",         "k",    NEEDS_STREAM },
+    [DIR_STEDATA  ] = { "stream_extradata",     "k",    NEEDS_STREAM },
     [DIR_CHAPTER  ] = { "chapter",              "idd",  0 },
 };
 
@@ -612,6 +614,15 @@ static int concat_parse_script(AVFormatContext *avf)
             break;
         }
 
+        case DIR_STEDATA: {
+            int size = ff_hex_to_data(NULL, arg_kw[0]);
+            ret = ff_alloc_extradata(stream->codecpar, size);
+            if (ret < 0)
+                FAIL(ret);
+            ff_hex_to_data(stream->codecpar->extradata, arg_kw[0]);
+            break;
+        }
+
         case DIR_CHAPTER:
             chapter = avpriv_new_chapter(avf, arg_int[0], AV_TIME_BASE_Q,
                                          arg_int[1], arg_int[2], NULL);
-- 
2.33.0



More information about the ffmpeg-devel mailing list