Commit 32b936d0 authored by Reimar Döffinger's avatar Reimar Döffinger

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
parent aa033b1e
...@@ -27,9 +27,9 @@ AVFifoBuffer *av_fifo_alloc(unsigned int size) ...@@ -27,9 +27,9 @@ AVFifoBuffer *av_fifo_alloc(unsigned int size)
AVFifoBuffer *f= av_mallocz(sizeof(AVFifoBuffer)); AVFifoBuffer *f= av_mallocz(sizeof(AVFifoBuffer));
if(!f) if(!f)
return NULL; return NULL;
f->wptr = f->rptr =
f->buffer = av_malloc(size); f->buffer = av_malloc(size);
f->end = f->buffer + size; f->end = f->buffer + size;
av_fifo_reset(f);
if (!f->buffer) if (!f->buffer)
av_freep(&f); av_freep(&f);
return f; return f;
...@@ -43,6 +43,12 @@ void av_fifo_free(AVFifoBuffer *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) int av_fifo_size(AVFifoBuffer *f)
{ {
return (uint32_t)(f->wndx - f->rndx); return (uint32_t)(f->wndx - f->rndx);
......
...@@ -47,6 +47,12 @@ AVFifoBuffer *av_fifo_alloc(unsigned int size); ...@@ -47,6 +47,12 @@ AVFifoBuffer *av_fifo_alloc(unsigned int size);
*/ */
void av_fifo_free(AVFifoBuffer *f); 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 * Returns the amount of data in bytes in the AVFifoBuffer, that is the
* amount of data you can read from it. * amount of data you can read from it.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment