From d161ae0a37900cbd36c1390ca32a56b892c02ab5 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Wed, 19 Feb 2014 20:11:21 +0100 Subject: frame: add a function for removing side data from a frame --- libavutil/frame.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'libavutil/frame.c') diff --git a/libavutil/frame.c b/libavutil/frame.c index f81bbbd138..cc4bfcdf4b 100644 --- a/libavutil/frame.c +++ b/libavutil/frame.c @@ -526,3 +526,19 @@ int av_frame_copy(AVFrame *dst, const AVFrame *src) return AVERROR(EINVAL); } + +void av_frame_remove_side_data(AVFrame *frame, enum AVFrameSideDataType type) +{ + int i; + + for (i = 0; i < frame->nb_side_data; i++) { + AVFrameSideData *sd = frame->side_data[i]; + if (sd->type == type) { + av_freep(&sd->data); + av_dict_free(&sd->metadata); + av_freep(&frame->side_data[i]); + frame->side_data[i] = frame->side_data[frame->nb_side_data - 1]; + frame->nb_side_data--; + } + } +} -- cgit v1.2.3