Merge commit '8a273a746061a112e5e35066a8fd8e146d821a62'
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 24 Feb 2015 23:32:57 +0000 (00:32 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 24 Feb 2015 23:33:09 +0000 (00:33 +0100)
* commit '8a273a746061a112e5e35066a8fd8e146d821a62':
  avio: Add an internal utility function for freeing dynamic buffers

Merged-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/avio_internal.h
libavformat/aviobuf.c

index 5864048..f728535 100644 (file)
@@ -150,4 +150,11 @@ int ffio_open_null_buf(AVIOContext **s);
  */
 int ffio_close_null_buf(AVIOContext *s);
 
+/**
+ * Free a dynamic buffer.
+ *
+ * @param s a pointer to an IO context opened by avio_open_dyn_buf()
+ */
+void ffio_free_dyn_buf(AVIOContext **s);
+
 #endif /* AVFORMAT_AVIO_INTERNAL_H */
index 3d77a7f..377d966 100644 (file)
@@ -1117,6 +1117,16 @@ int avio_close_dyn_buf(AVIOContext *s, uint8_t **pbuffer)
     return size - padding;
 }
 
+void ffio_free_dyn_buf(AVIOContext **s)
+{
+    uint8_t *tmp;
+    if (!*s)
+        return;
+    avio_close_dyn_buf(*s, &tmp);
+    av_free(tmp);
+    *s = NULL;
+}
+
 static int null_buf_write(void *opaque, uint8_t *buf, int buf_size)
 {
     DynBuffer *d = opaque;