aboutsummaryrefslogtreecommitdiffstats
path: root/libavutil
diff options
context:
space:
mode:
authorNicolas George <nicolas.george@normalesup.org>2012-10-28 14:40:30 +0100
committerNicolas George <nicolas.george@normalesup.org>2012-11-02 15:12:29 +0100
commit483c1aa5f114bfed36a6e1c9eeb1e647124559f7 (patch)
treeb62362ceb28084bd7ba8855a6a5c75feee128c0b /libavutil
parent8551c6bec0fd6cf719f94b24bca39b1c3318e213 (diff)
downloadffmpeg-483c1aa5f114bfed36a6e1c9eeb1e647124559f7.tar.gz
lavu/bprint: add av_bprint_get_buffer().
It is useful to use bprint to handle a growing buffer used with another API.
Diffstat (limited to 'libavutil')
-rw-r--r--libavutil/bprint.c9
-rw-r--r--libavutil/bprint.h12
-rw-r--r--libavutil/version.h2
3 files changed, 22 insertions, 1 deletions
diff --git a/libavutil/bprint.c b/libavutil/bprint.c
index 373a492af0..9d8e7c18ab 100644
--- a/libavutil/bprint.c
+++ b/libavutil/bprint.c
@@ -129,6 +129,15 @@ void av_bprint_chars(AVBPrint *buf, char c, unsigned n)
av_bprint_grow(buf, n);
}
+void av_bprint_get_buffer(AVBPrint *buf, unsigned size,
+ unsigned char **mem, unsigned *actual_size)
+{
+ if (size > av_bprint_room(buf))
+ av_bprint_alloc(buf, size);
+ *actual_size = av_bprint_room(buf);
+ *mem = *actual_size ? buf->str + buf->len : NULL;
+}
+
void av_bprint_clear(AVBPrint *buf)
{
if (buf->len) {
diff --git a/libavutil/bprint.h b/libavutil/bprint.h
index 2bef18db23..c09b61f20f 100644
--- a/libavutil/bprint.h
+++ b/libavutil/bprint.h
@@ -126,6 +126,18 @@ void av_bprintf(AVBPrint *buf, const char *fmt, ...) av_printf_format(2, 3);
void av_bprint_chars(AVBPrint *buf, char c, unsigned n);
/**
+ * Allocate bytes in the buffer for external use.
+ *
+ * @param[in] buf buffer structure
+ * @param[in] size required size
+ * @param[out] mem pointer to the memory area
+ * @param[out] actual_size size of the memory area after allocation;
+ * can be larger or smaller than size
+ */
+void av_bprint_get_buffer(AVBPrint *buf, unsigned size,
+ unsigned char **mem, unsigned *actual_size);
+
+/**
* Reset the string to "" but keep internal allocated data.
*/
void av_bprint_clear(AVBPrint *buf);
diff --git a/libavutil/version.h b/libavutil/version.h
index 94a4a4787f..60a7450f91 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -75,7 +75,7 @@
*/
#define LIBAVUTIL_VERSION_MAJOR 52
-#define LIBAVUTIL_VERSION_MINOR 1
+#define LIBAVUTIL_VERSION_MINOR 2
#define LIBAVUTIL_VERSION_MICRO 100
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \