aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>2007-12-22 16:18:07 +0000
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>2007-12-22 16:18:07 +0000
commit1e0f346896841598ee18f0145d86c2f352ee8ed8 (patch)
treea92eb6ffab6bb936fd7f9c1caf1137e1895d4ca4
parent4159db8ca34eb80e3761351058dea42aae40bd67 (diff)
downloadffmpeg-1e0f346896841598ee18f0145d86c2f352ee8ed8.tar.gz
Add a av_alloc_put_byte function.
The name is in analogy to init_put_byte, but I would not mind it being changed to something better. Originally committed as revision 11305 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--libavformat/avio.h8
-rw-r--r--libavformat/aviobuf.c14
2 files changed, 22 insertions, 0 deletions
diff --git a/libavformat/avio.h b/libavformat/avio.h
index 0957d9dbfc..9443cb017b 100644
--- a/libavformat/avio.h
+++ b/libavformat/avio.h
@@ -181,6 +181,14 @@ int init_put_byte(ByteIOContext *s,
int (*read_packet)(void *opaque, uint8_t *buf, int buf_size),
int (*write_packet)(void *opaque, uint8_t *buf, int buf_size),
offset_t (*seek)(void *opaque, offset_t offset, int whence));
+ByteIOContext *av_alloc_put_byte(
+ unsigned char *buffer,
+ int buffer_size,
+ int write_flag,
+ void *opaque,
+ int (*read_packet)(void *opaque, uint8_t *buf, int buf_size),
+ int (*write_packet)(void *opaque, uint8_t *buf, int buf_size),
+ offset_t (*seek)(void *opaque, offset_t offset, int whence));
void put_byte(ByteIOContext *s, int b);
void put_buffer(ByteIOContext *s, const unsigned char *buf, int size);
diff --git a/libavformat/aviobuf.c b/libavformat/aviobuf.c
index 45248a95ab..507003184e 100644
--- a/libavformat/aviobuf.c
+++ b/libavformat/aviobuf.c
@@ -60,6 +60,20 @@ int init_put_byte(ByteIOContext *s,
return 0;
}
+ByteIOContext *av_alloc_put_byte(
+ unsigned char *buffer,
+ int buffer_size,
+ int write_flag,
+ void *opaque,
+ int (*read_packet)(void *opaque, uint8_t *buf, int buf_size),
+ int (*write_packet)(void *opaque, uint8_t *buf, int buf_size),
+ offset_t (*seek)(void *opaque, offset_t offset, int whence)) {
+ ByteIOContext *s = av_mallocz(sizeof(ByteIOContext));
+ init_put_byte(s, buffer, buffer_size, write_flag, opaque,
+ read_packet, write_packet, seek);
+ return s;
+}
+
static void flush_buffer(ByteIOContext *s)
{
if (s->buf_ptr > s->buffer) {