Signed-off-by: Jacob Trimble <modma...@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 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel