diff options
author | Roman Shaposhnik <roman@shaposhnik.org> | 2006-09-21 07:31:53 +0000 |
---|---|---|
committer | Roman Shaposhnik <roman@shaposhnik.org> | 2006-09-21 07:31:53 +0000 |
commit | f5a478f65d7262dbe194641d384f24fbbc03ed85 (patch) | |
tree | fbdda2fba8809f3e7a6c662017d812276da8d5c1 /libavutil/fifo.h | |
parent | a1ef006823de991c546a89b3e9135617a3524582 (diff) | |
download | ffmpeg-f5a478f65d7262dbe194641d384f24fbbc03ed85.tar.gz |
* Moving FifoBuffer out of libavformat/avformat.h and
libavformat/utils.c into libavutil
Originally committed as revision 6310 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavutil/fifo.h')
-rw-r--r-- | libavutil/fifo.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/libavutil/fifo.h b/libavutil/fifo.h new file mode 100644 index 0000000000..9dec0e62d9 --- /dev/null +++ b/libavutil/fifo.h @@ -0,0 +1,25 @@ +#ifndef FIFO_H +#define FIFO_H + +typedef struct AVFifoBuffer { + uint8_t *buffer; + uint8_t *rptr, *wptr, *end; +} AVFifoBuffer; + +int av_fifo_init(AVFifoBuffer *f, int size); +void av_fifo_free(AVFifoBuffer *f); +int av_fifo_size(AVFifoBuffer *f); +int av_fifo_read(AVFifoBuffer *f, uint8_t *buf, int buf_size); +int av_fifo_generic_read(AVFifoBuffer *f, int buf_size, void (*func)(void*, void*, int), void* dest); +void av_fifo_write(AVFifoBuffer *f, const uint8_t *buf, int size); +void av_fifo_realloc(AVFifoBuffer *f, unsigned int size); +void av_fifo_drain(AVFifoBuffer *f, int size); + +static inline uint8_t av_fifo_peek(AVFifoBuffer *f, int offs) +{ + uint8_t *ptr = f->rptr + offs; + if (ptr >= f->end) + ptr -= f->end - f->buffer; + return *ptr; +} +#endif /* FIFO_H */ |