[FFmpeg-cvslog] r17901 - in trunk/libavutil: fifo.c fifo.h
reimar
subversion
Mon Mar 9 10:26:32 CET 2009
Author: reimar
Date: Mon Mar 9 10:26:32 2009
New Revision: 17901
Log:
Add av_fifo_reset function to completely reset fifo state, which makes
it easier to reuse the fifo.
Modified:
trunk/libavutil/fifo.c
trunk/libavutil/fifo.h
Modified: trunk/libavutil/fifo.c
==============================================================================
--- trunk/libavutil/fifo.c Mon Mar 9 10:19:11 2009 (r17900)
+++ trunk/libavutil/fifo.c Mon Mar 9 10:26:32 2009 (r17901)
@@ -27,9 +27,9 @@ AVFifoBuffer *av_fifo_alloc(unsigned int
AVFifoBuffer *f= av_mallocz(sizeof(AVFifoBuffer));
if(!f)
return NULL;
- f->wptr = f->rptr =
f->buffer = av_malloc(size);
f->end = f->buffer + size;
+ av_fifo_reset(f);
if (!f->buffer)
av_freep(&f);
return f;
@@ -43,6 +43,12 @@ void av_fifo_free(AVFifoBuffer *f)
}
}
+void av_fifo_reset(AVFifoBuffer *f)
+{
+ f->wptr = f->rptr = f->buffer;
+ f->wndx = f->rndx = 0;
+}
+
int av_fifo_size(AVFifoBuffer *f)
{
return (uint32_t)(f->wndx - f->rndx);
Modified: trunk/libavutil/fifo.h
==============================================================================
--- trunk/libavutil/fifo.h Mon Mar 9 10:19:11 2009 (r17900)
+++ trunk/libavutil/fifo.h Mon Mar 9 10:26:32 2009 (r17901)
@@ -48,6 +48,12 @@ AVFifoBuffer *av_fifo_alloc(unsigned int
void av_fifo_free(AVFifoBuffer *f);
/**
+ * Resets the AVFifoBuffer to the state right after av_fifo_alloc, in particular it is emptied.
+ * @param *f AVFifoBuffer to reset
+ */
+void av_fifo_reset(AVFifoBuffer *f);
+
+/**
* Returns the amount of data in bytes in the AVFifoBuffer, that is the
* amount of data you can read from it.
* @param *f AVFifoBuffer to read from
More information about the ffmpeg-cvslog
mailing list