From: Reimar Döffinger Date: Mon, 9 Mar 2009 09:26:32 +0000 (+0000) Subject: Add av_fifo_reset function to completely reset fifo state, which makes X-Git-Tag: v0.6~5415 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=32b936d0c368db467be1c0501b36d9a995545675;p=platform%2Fupstream%2Flibav.git Add av_fifo_reset function to completely reset fifo state, which makes it easier to reuse the fifo. Originally committed as revision 17901 to svn://svn.ffmpeg.org/ffmpeg/trunk --- diff --git a/libavutil/fifo.c b/libavutil/fifo.c index f36dfeea6..9a9a139f3 100644 --- a/libavutil/fifo.c +++ b/libavutil/fifo.c @@ -27,9 +27,9 @@ AVFifoBuffer *av_fifo_alloc(unsigned int size) 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); diff --git a/libavutil/fifo.h b/libavutil/fifo.h index 9ba7e700f..f64914f7c 100644 --- a/libavutil/fifo.h +++ b/libavutil/fifo.h @@ -47,6 +47,12 @@ AVFifoBuffer *av_fifo_alloc(unsigned int size); */ 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.