fifo: add av_fifo_grow()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
b9777797be
commit
f8196759b4
@ -153,7 +153,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#define LIBAVUTIL_VERSION_MAJOR 51
|
#define LIBAVUTIL_VERSION_MAJOR 51
|
||||||
#define LIBAVUTIL_VERSION_MINOR 51
|
#define LIBAVUTIL_VERSION_MINOR 52
|
||||||
#define LIBAVUTIL_VERSION_MICRO 100
|
#define LIBAVUTIL_VERSION_MICRO 100
|
||||||
|
|
||||||
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
|
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
|
||||||
|
@ -79,6 +79,19 @@ int av_fifo_realloc2(AVFifoBuffer *f, unsigned int new_size)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int av_fifo_grow(AVFifoBuffer *f, unsigned int size)
|
||||||
|
{
|
||||||
|
unsigned int old_size = f->end - f->buffer;
|
||||||
|
if(size + (unsigned)av_fifo_size(f) < size)
|
||||||
|
return AVERROR(EINVAL);
|
||||||
|
|
||||||
|
size += av_fifo_size(f);
|
||||||
|
|
||||||
|
if (old_size < size)
|
||||||
|
return av_fifo_realloc2(f, FFMAX(size, 2*size));
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
// src must NOT be const as it can be a context for func that may need updating (like a pointer or byte counter)
|
// src must NOT be const as it can be a context for func that may need updating (like a pointer or byte counter)
|
||||||
int av_fifo_generic_write(AVFifoBuffer *f, void *src, int size, int (*func)(void*, void*, int))
|
int av_fifo_generic_write(AVFifoBuffer *f, void *src, int size, int (*func)(void*, void*, int))
|
||||||
{
|
{
|
||||||
|
@ -102,6 +102,17 @@ int av_fifo_generic_write(AVFifoBuffer *f, void *src, int size, int (*func)(void
|
|||||||
*/
|
*/
|
||||||
int av_fifo_realloc2(AVFifoBuffer *f, unsigned int size);
|
int av_fifo_realloc2(AVFifoBuffer *f, unsigned int size);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enlarge an AVFifoBuffer.
|
||||||
|
* In case of reallocation failure, the old FIFO is kept unchanged.
|
||||||
|
* The new fifo size may be larger than the requested size.
|
||||||
|
*
|
||||||
|
* @param f AVFifoBuffer to resize
|
||||||
|
* @param additional_space the amount of space in bytes to allocate in addition to av_fifo_size()
|
||||||
|
* @return <0 for failure, >=0 otherwise
|
||||||
|
*/
|
||||||
|
int av_fifo_grow(AVFifoBuffer *f, unsigned int additional_space);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Read and discard the specified amount of data from an AVFifoBuffer.
|
* Read and discard the specified amount of data from an AVFifoBuffer.
|
||||||
* @param f AVFifoBuffer to read from
|
* @param f AVFifoBuffer to read from
|
||||||
|
Loading…
x
Reference in New Issue
Block a user