diff mbox

[FFmpeg-devel,v5,3/7] avformat: Add av_stream_add_coded_side_data()

Message ID 20191230103124.12204-2-nicolas.gaullier@cji.paris
State Superseded
Headers show

Commit Message

Nicolas Gaullier Dec. 30, 2019, 10:31 a.m. UTC
This will allow avformat_find_stream_info() get side data from the codec context.
---
 doc/APIchanges         |  3 +++
 libavformat/avformat.h | 11 +++++++++++
 libavformat/utils.c    | 15 +++++++++++++++
 libavformat/version.h  |  4 ++--
 4 files changed, 31 insertions(+), 2 deletions(-)

Comments

Michael Niedermayer Jan. 8, 2020, 10:13 p.m. UTC | #1
On Mon, Dec 30, 2019 at 11:31:24AM +0100, Nicolas Gaullier wrote:
> This will allow avformat_find_stream_info() get side data from the codec context.
> ---
>  doc/APIchanges         |  3 +++
>  libavformat/avformat.h | 11 +++++++++++
>  libavformat/utils.c    | 15 +++++++++++++++
>  libavformat/version.h  |  4 ++--
>  4 files changed, 31 insertions(+), 2 deletions(-)

Its a bit difficult to review this because its not immedeatly
clear which other patches this depends on
Maybe you can post the patch either as reply to the previous version
or repost the whole related set

Thanks

[...]
diff mbox

Patch

diff --git a/doc/APIchanges b/doc/APIchanges
index 3c24dc6fbc..2b33274a14 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -15,6 +15,9 @@  libavutil:     2017-10-21
 
 API changes, most recent first:
 
+2019-12-30 - xxxxxxxxxx - lavf 58.36.100 - avformat.h
+  Add av_stream_add_coded_side_data().
+
 2019-12-27 - xxxxxxxxxx - lavu 56.38.100 - eval.h
   Add av_expr_count_func().
 
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index d4d9a3b06e..4dee1a272a 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -2191,6 +2191,17 @@  int av_stream_add_side_data(AVStream *st, enum AVPacketSideDataType type,
  */
 uint8_t *av_stream_new_side_data(AVStream *stream,
                                  enum AVPacketSideDataType type, int size);
+
+/**
+ * Add stream side_data from the coded_side_data of the supplied context.
+ *
+ * @param stream stream
+ * @param avctx the codec context that may contain coded_side_data
+ * @return >= 0 in case of success, a negative AVERROR code in case of
+ * failure
+ */
+int av_stream_add_coded_side_data(AVStream *stream, AVCodecContext *avctx);
+
 /**
  * Get side information from stream.
  *
diff --git a/libavformat/utils.c b/libavformat/utils.c
index b472762dd1..fe92ad4a1d 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -5556,6 +5556,21 @@  uint8_t *av_stream_new_side_data(AVStream *st, enum AVPacketSideDataType type,
     return data;
 }
 
+int av_stream_add_coded_side_data(AVStream *st, AVCodecContext *avctx)
+{
+    int i;
+
+    for (i = 0; i < avctx->nb_coded_side_data; i++) {
+        const AVPacketSideData *sd_src = &avctx->coded_side_data[i];
+        uint8_t *dst_data;
+        dst_data = av_stream_new_side_data(st, sd_src->type, sd_src->size);
+        if (!dst_data)
+            return AVERROR(ENOMEM);
+        memcpy(dst_data, sd_src->data, sd_src->size);
+    }
+    return 0;
+}
+
 int ff_stream_add_bitstream_filter(AVStream *st, const char *name, const char *args)
 {
     int ret;
diff --git a/libavformat/version.h b/libavformat/version.h
index 213b66b45f..f72fb9478a 100644
--- a/libavformat/version.h
+++ b/libavformat/version.h
@@ -32,8 +32,8 @@ 
 // Major bumping may affect Ticket5467, 5421, 5451(compatibility with Chromium)
 // Also please add any ticket numbers that you believe might be affected here
 #define LIBAVFORMAT_VERSION_MAJOR  58
-#define LIBAVFORMAT_VERSION_MINOR  35
-#define LIBAVFORMAT_VERSION_MICRO 101
+#define LIBAVFORMAT_VERSION_MINOR  36
+#define LIBAVFORMAT_VERSION_MICRO 100
 
 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
                                                LIBAVFORMAT_VERSION_MINOR, \