[FFmpeg-cvslog] avutil/bprint: Add av_bprint_fd_contents()

Andrey Utkin git at videolan.org
Mon Jul 7 21:40:16 CEST 2014


ffmpeg | branch: master | Andrey Utkin <andrey.krieger.utkin at gmail.com> | Thu Jul  3 14:37:08 2014 +0300| [fcd1f6bc9d5caec25d925c5c4aa44cef15c37897] | committer: Michael Niedermayer

avutil/bprint: Add av_bprint_fd_contents()

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

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

 libavutil/bprint.c  |   17 +++++++++++++++++
 libavutil/bprint.h  |    7 +++++++
 libavutil/version.h |    4 ++--
 3 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/libavutil/bprint.c b/libavutil/bprint.c
index 0a0d078..becb4d8 100644
--- a/libavutil/bprint.c
+++ b/libavutil/bprint.c
@@ -22,6 +22,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <time.h>
+#include <unistd.h>
 #include "avassert.h"
 #include "avstring.h"
 #include "bprint.h"
@@ -304,6 +305,22 @@ void av_bprint_escape(AVBPrint *dstbuf, const char *src, const char *special_cha
     }
 }
 
+int av_bprint_fd_contents(AVBPrint *pb, int fd)
+{
+    int ret;
+    char buf[1024];
+    while (1) {
+        ret = read(fd, buf, sizeof(buf));
+        if (!ret)
+            return 0;
+        else if (ret < 0)
+            return AVERROR(errno);
+        av_bprint_append_data(pb, buf, ret);
+        if (!av_bprint_is_complete(pb))
+            return AVERROR(ENOMEM);
+    }
+}
+
 #ifdef TEST
 
 #undef printf
diff --git a/libavutil/bprint.h b/libavutil/bprint.h
index 839ec1e..1b23b9f 100644
--- a/libavutil/bprint.h
+++ b/libavutil/bprint.h
@@ -213,4 +213,11 @@ int av_bprint_finalize(AVBPrint *buf, char **ret_str);
 void av_bprint_escape(AVBPrint *dstbuf, const char *src, const char *special_chars,
                       enum AVEscapeMode mode, int flags);
 
+/**
+ * Read contents of fd into print buffer up to EOF.
+ *
+ * @return 0 for success, error code otherwise
+ */
+int av_bprint_fd_contents(AVBPrint *pb, int fd);
+
 #endif /* AVUTIL_BPRINT_H */
diff --git a/libavutil/version.h b/libavutil/version.h
index 3524151..0f4b571 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -56,8 +56,8 @@
  */
 
 #define LIBAVUTIL_VERSION_MAJOR  52
-#define LIBAVUTIL_VERSION_MINOR  90
-#define LIBAVUTIL_VERSION_MICRO 101
+#define LIBAVUTIL_VERSION_MINOR  91
+#define LIBAVUTIL_VERSION_MICRO 100
 
 #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
                                                LIBAVUTIL_VERSION_MINOR, \



More information about the ffmpeg-cvslog mailing list