提交 fcd1f6bc 编写于 作者: A Andrey Utkin 提交者: Michael Niedermayer

avutil/bprint: Add av_bprint_fd_contents()

Signed-off-by: NMichael Niedermayer <michaelni@gmx.at>
上级 06dae71d
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include <time.h> #include <time.h>
#include <unistd.h>
#include "avassert.h" #include "avassert.h"
#include "avstring.h" #include "avstring.h"
#include "bprint.h" #include "bprint.h"
...@@ -304,6 +305,22 @@ void av_bprint_escape(AVBPrint *dstbuf, const char *src, const char *special_cha ...@@ -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 #ifdef TEST
#undef printf #undef printf
......
...@@ -213,4 +213,11 @@ int av_bprint_finalize(AVBPrint *buf, char **ret_str); ...@@ -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, void av_bprint_escape(AVBPrint *dstbuf, const char *src, const char *special_chars,
enum AVEscapeMode mode, int flags); 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 */ #endif /* AVUTIL_BPRINT_H */
...@@ -56,8 +56,8 @@ ...@@ -56,8 +56,8 @@
*/ */
#define LIBAVUTIL_VERSION_MAJOR 52 #define LIBAVUTIL_VERSION_MAJOR 52
#define LIBAVUTIL_VERSION_MINOR 90 #define LIBAVUTIL_VERSION_MINOR 91
#define LIBAVUTIL_VERSION_MICRO 101 #define LIBAVUTIL_VERSION_MICRO 100
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
LIBAVUTIL_VERSION_MINOR, \ LIBAVUTIL_VERSION_MINOR, \
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册