summaryrefslogtreecommitdiff
path: root/libavutil
diff options
context:
space:
mode:
authorClément Bœsch <ubitux@gmail.com>2011-09-03 19:51:28 +0200
committerClément Bœsch <ubitux@gmail.com>2011-09-04 09:37:41 +0200
commit61e2e2969127e4cb8e0d32151fed3e03515fe436 (patch)
tree72ed060de80329fb6f8891582584779498061659 /libavutil
parent1889c6724a449b2e4826612d3b72efc76dbfb713 (diff)
av_string: add av_asprintf().
Diffstat (limited to 'libavutil')
-rw-r--r--libavutil/avstring.c26
-rw-r--r--libavutil/avstring.h10
-rw-r--r--libavutil/avutil.h2
3 files changed, 37 insertions, 1 deletions
diff --git a/libavutil/avstring.c b/libavutil/avstring.c
index b573dd6761..4cebbe04a6 100644
--- a/libavutil/avstring.c
+++ b/libavutil/avstring.c
@@ -91,6 +91,32 @@ size_t av_strlcatf(char *dst, size_t size, const char *fmt, ...)
return len;
}
+char *av_asprintf(const char *fmt, ...)
+{
+ char *p = NULL;
+ va_list va;
+ int len;
+
+ va_start(va, fmt);
+ len = vsnprintf(NULL, 0, fmt, va);
+ va_end(va);
+ if (len < 0)
+ goto end;
+
+ p = av_malloc(len + 1);
+ if (!p)
+ goto end;
+
+ va_start(va, fmt);
+ len = vsnprintf(p, len + 1, fmt, va);
+ va_end(va);
+ if (len < 0)
+ av_freep(&p);
+
+end:
+ return p;
+}
+
char *av_d2str(double d)
{
char *str= av_malloc(16);
diff --git a/libavutil/avstring.h b/libavutil/avstring.h
index 662af6b70d..2be84a9ed0 100644
--- a/libavutil/avstring.h
+++ b/libavutil/avstring.h
@@ -111,6 +111,16 @@ size_t av_strlcat(char *dst, const char *src, size_t size);
size_t av_strlcatf(char *dst, size_t size, const char *fmt, ...) av_printf_format(3, 4);
/**
+ * Print arguments following specified format into a large enough auto
+ * allocated buffer. It is similar to GNU asprintf().
+ * @param fmt printf-compatible format string, specifying how the
+ * following parameters are used.
+ * @return the allocated string
+ * @note You have to free the string yourself with av_free().
+ */
+char *av_asprintf(const char *fmt, ...) av_printf_format(1, 2);
+
+/**
* Convert a number to a av_malloced string.
*/
char *av_d2str(double d);
diff --git a/libavutil/avutil.h b/libavutil/avutil.h
index f77cde783d..06c0470ce7 100644
--- a/libavutil/avutil.h
+++ b/libavutil/avutil.h
@@ -40,7 +40,7 @@
#define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c)
#define LIBAVUTIL_VERSION_MAJOR 51
-#define LIBAVUTIL_VERSION_MINOR 15
+#define LIBAVUTIL_VERSION_MINOR 16
#define LIBAVUTIL_VERSION_MICRO 0
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \