[FFmpeg-cvslog] avpacket: Add a function for shrinking already allocated side data

Martin Storsjö git at videolan.org
Thu Mar 1 23:34:07 CET 2012


ffmpeg | branch: master | Martin Storsjö <martin at martin.st> | Tue Feb 28 01:08:31 2012 +0200| [442c1320e72a13d02c9c477aab7100ef910c33c7] | committer: Martin Storsjö

avpacket: Add a function for shrinking already allocated side data

Signed-off-by: Martin Storsjö <martin at martin.st>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=442c1320e72a13d02c9c477aab7100ef910c33c7
---

 doc/APIchanges        |    3 +++
 libavcodec/avcodec.h  |   11 +++++++++++
 libavcodec/avpacket.c |   16 ++++++++++++++++
 libavcodec/version.h  |    2 +-
 4 files changed, 31 insertions(+), 1 deletions(-)

diff --git a/doc/APIchanges b/doc/APIchanges
index de57b2e..00cee5a 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -12,6 +12,9 @@ libavutil:   2011-04-18
 
 API changes, most recent first:
 
+2012-xx-xx - xxxxxxx - lavc 54.3.0 - avcodec.h
+  Add av_packet_shrink_side_data.
+
 2012-xx-xx - xxxxxxx - lavf 54.2.0 - avformat.h
   Add AVStream.attached_pic and AV_DISPOSITION_ATTACHED_PIC,
   used for dealing with attached pictures/cover art.
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index f4db083..af2a5ca 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -3079,6 +3079,17 @@ uint8_t* av_packet_new_side_data(AVPacket *pkt, enum AVPacketSideDataType type,
                                  int size);
 
 /**
+ * Shrink the already allocated side data buffer
+ *
+ * @param pkt packet
+ * @param type side information type
+ * @param size new side information size
+ * @return 0 on success, < 0 on failure
+ */
+int av_packet_shrink_side_data(AVPacket *pkt, enum AVPacketSideDataType type,
+                               int size);
+
+/**
  * Get side information from packet.
  *
  * @param pkt packet
diff --git a/libavcodec/avpacket.c b/libavcodec/avpacket.c
index e0e4df4..9b549e7 100644
--- a/libavcodec/avpacket.c
+++ b/libavcodec/avpacket.c
@@ -196,3 +196,19 @@ uint8_t* av_packet_get_side_data(AVPacket *pkt, enum AVPacketSideDataType type,
     }
     return NULL;
 }
+
+int av_packet_shrink_side_data(AVPacket *pkt, enum AVPacketSideDataType type,
+                               int size)
+{
+    int i;
+
+    for (i = 0; i < pkt->side_data_elems; i++) {
+        if (pkt->side_data[i].type == type) {
+            if (size > pkt->side_data[i].size)
+                return AVERROR(ENOMEM);
+            pkt->side_data[i].size = size;
+            return 0;
+        }
+    }
+    return AVERROR(ENOENT);
+}
diff --git a/libavcodec/version.h b/libavcodec/version.h
index 2f11a29..157f3cb 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -21,7 +21,7 @@
 #define AVCODEC_VERSION_H
 
 #define LIBAVCODEC_VERSION_MAJOR 54
-#define LIBAVCODEC_VERSION_MINOR  2
+#define LIBAVCODEC_VERSION_MINOR  3
 #define LIBAVCODEC_VERSION_MICRO  0
 
 #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \



More information about the ffmpeg-cvslog mailing list