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
This commit is contained in:
@@ -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)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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);
|
|||||||
*/
|
*/
|
||||||
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.
|
||||||
|
Reference in New Issue
Block a user