mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
lavu/fifo: add av_fifo_alloc_array function
Allows to alloc fifo buffer by passing number of elements and size of element. Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
This commit is contained in:
parent
d43c303038
commit
7336e39f3c
@ -15,6 +15,9 @@ libavutil: 2012-10-22
|
||||
|
||||
API changes, most recent first:
|
||||
|
||||
2014-05-xx - xxxxxxx - lavu 52.86.100 - fifo.h
|
||||
Add av_fifo_alloc_array() function.
|
||||
|
||||
2014-05-xx - xxxxxxx - lavu 53.15.0 - frame.h, display.h
|
||||
Add AV_FRAME_DATA_DISPLAYMATRIX for exporting frame-level
|
||||
spatial rendering on video frames for proper display.
|
||||
|
@ -24,19 +24,34 @@
|
||||
#include "common.h"
|
||||
#include "fifo.h"
|
||||
|
||||
AVFifoBuffer *av_fifo_alloc(unsigned int size)
|
||||
static AVFifoBuffer *fifo_alloc_common(void *buffer, size_t size)
|
||||
{
|
||||
AVFifoBuffer *f = av_mallocz(sizeof(AVFifoBuffer));
|
||||
if (!f)
|
||||
AVFifoBuffer *f;
|
||||
if (!buffer)
|
||||
return NULL;
|
||||
f->buffer = av_malloc(size);
|
||||
f = av_mallocz(sizeof(AVFifoBuffer));
|
||||
if (!f) {
|
||||
av_free(buffer);
|
||||
return NULL;
|
||||
}
|
||||
f->buffer = buffer;
|
||||
f->end = f->buffer + size;
|
||||
av_fifo_reset(f);
|
||||
if (!f->buffer)
|
||||
av_freep(&f);
|
||||
return f;
|
||||
}
|
||||
|
||||
AVFifoBuffer *av_fifo_alloc(unsigned int size)
|
||||
{
|
||||
void *buffer = av_malloc(size);
|
||||
return fifo_alloc_common(buffer, size);
|
||||
}
|
||||
|
||||
AVFifoBuffer *av_fifo_alloc_array(size_t nmemb, size_t size)
|
||||
{
|
||||
void *buffer = av_malloc_array(nmemb, size);
|
||||
return fifo_alloc_common(buffer, nmemb * size);
|
||||
}
|
||||
|
||||
void av_fifo_free(AVFifoBuffer *f)
|
||||
{
|
||||
if (f) {
|
||||
|
@ -41,6 +41,14 @@ typedef struct AVFifoBuffer {
|
||||
*/
|
||||
AVFifoBuffer *av_fifo_alloc(unsigned int size);
|
||||
|
||||
/**
|
||||
* Initialize an AVFifoBuffer.
|
||||
* @param nmemb number of elements
|
||||
* @param size size of the single element
|
||||
* @return AVFifoBuffer or NULL in case of memory allocation failure
|
||||
*/
|
||||
AVFifoBuffer *av_fifo_alloc_array(size_t nmemb, size_t size);
|
||||
|
||||
/**
|
||||
* Free an AVFifoBuffer.
|
||||
* @param f AVFifoBuffer to free
|
||||
|
@ -56,7 +56,7 @@
|
||||
*/
|
||||
|
||||
#define LIBAVUTIL_VERSION_MAJOR 52
|
||||
#define LIBAVUTIL_VERSION_MINOR 85
|
||||
#define LIBAVUTIL_VERSION_MINOR 86
|
||||
#define LIBAVUTIL_VERSION_MICRO 100
|
||||
|
||||
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
|
||||
|
Loading…
Reference in New Issue
Block a user