[FFmpeg-devel] [PATCH] avformat/avformat.h: Add av_stream_remove_side_data.
Jacob Trimble
modmaker at google.com
Tue Jun 26 02:03:32 EEST 2018
Signed-off-by: Jacob Trimble <modmaker at google.com>
---
libavformat/avformat.h | 8 ++++++++
libavformat/utils.c | 11 +++++++++++
2 files changed, 19 insertions(+)
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index fdaffa5bf4..434c88837e 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -2167,6 +2167,14 @@ AVStream *avformat_new_stream(AVFormatContext *s, const AVCodec *c);
int av_stream_add_side_data(AVStream *st, enum AVPacketSideDataType type,
uint8_t *data, size_t size);
+/**
+ * Removes any existing side data of the given type.
+ *
+ * @param st stream
+ * @param type side information type
+ */
+void av_stream_remove_side_data(AVStream *st, enum AVPacketSideDataType type);
+
/**
* Allocate new information from stream.
*
diff --git a/libavformat/utils.c b/libavformat/utils.c
index c9cdd2b470..4f7c408d93 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -5491,6 +5491,17 @@ int av_stream_add_side_data(AVStream *st, enum AVPacketSideDataType type,
return 0;
}
+void av_stream_remove_side_data(AVStream *st, enum AVPacketSideDataType type)
+{
+ for (int i = 0; i < st->nb_side_data; i++) {
+ if (st->side_data[i].type == type) {
+ av_freep(&st->side_data[i].data);
+ st->side_data[i] = st->side_data[st->nb_side_data - 1];
+ st->nb_side_data--;
+ }
+ }
+}
+
uint8_t *av_stream_new_side_data(AVStream *st, enum AVPacketSideDataType type,
int size)
{
--
2.18.0.rc2.346.g013aa6912e-goog
More information about the ffmpeg-devel
mailing list