Browse Source

frame: add a function for removing side data from a frame

tags/n2.3
Anton Khirnov 11 years ago
parent
commit
d161ae0a37
4 changed files with 27 additions and 1 deletions
  1. +4
    -0
      doc/APIchanges
  2. +16
    -0
      libavutil/frame.c
  3. +6
    -0
      libavutil/frame.h
  4. +1
    -1
      libavutil/version.h

+ 4
- 0
doc/APIchanges View File

@@ -13,6 +13,10 @@ libavutil: 2013-12-xx

API changes, most recent first:

2014-02-xx - xxxxxxx - lavu 53.08.0 - frame.h
Add av_frame_remove_side_data() for removing a single side data
instance from a frame.

2014-02-xx - xxxxxxx - lavu 53.07.0 - frame.h, replaygain.h
Add AV_FRAME_DATA_REPLAYGAIN for exporting replaygain tags.
Add a new header replaygain.h with the AVReplayGain struct.


+ 16
- 0
libavutil/frame.c View File

@@ -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--;
}
}
}

+ 6
- 0
libavutil/frame.h View File

@@ -562,6 +562,12 @@ AVFrameSideData *av_frame_new_side_data(AVFrame *frame,
AVFrameSideData *av_frame_get_side_data(const AVFrame *frame,
enum AVFrameSideDataType type);

/**
* If side data of the supplied type exists in the frame, free it and remove it
* from the frame.
*/
void av_frame_remove_side_data(AVFrame *frame, enum AVFrameSideDataType type);

/**
* @}
*/


+ 1
- 1
libavutil/version.h View File

@@ -54,7 +54,7 @@
*/

#define LIBAVUTIL_VERSION_MAJOR 53
#define LIBAVUTIL_VERSION_MINOR 7
#define LIBAVUTIL_VERSION_MINOR 8
#define LIBAVUTIL_VERSION_MICRO 0

#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \


Loading…
Cancel
Save