From 0b46d6f3efa7c647a42d3e77d09c274f611b752b Mon Sep 17 00:00:00 2001 From: Lukasz Marek Date: Fri, 23 Aug 2013 23:21:50 +0200 Subject: lavu/bprint: add append buffer function Signed-off-by: Lukasz Marek Reveiwed-by: Nicolas George Signed-off-by: Michael Niedermayer --- libavutil/bprint.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'libavutil/bprint.c') diff --git a/libavutil/bprint.c b/libavutil/bprint.c index cd91bc4a72..7786e3bce7 100644 --- a/libavutil/bprint.c +++ b/libavutil/bprint.c @@ -155,6 +155,24 @@ void av_bprint_chars(AVBPrint *buf, char c, unsigned n) av_bprint_grow(buf, n); } +void av_bprint_append_data(AVBPrint *buf, const char *data, unsigned size) +{ + unsigned room, real_n; + + while (1) { + room = av_bprint_room(buf); + if (size < room) + break; + if (av_bprint_alloc(buf, size)) + break; + } + if (room) { + real_n = FFMIN(size, room - 1); + memcpy(buf->str + buf->len, data, real_n); + } + av_bprint_grow(buf, size); +} + void av_bprint_strftime(AVBPrint *buf, const char *fmt, const struct tm *tm) { unsigned room; -- cgit v1.2.3