mirror of https://git.ffmpeg.org/ffmpeg.git
ffmpeg: add a grow_array() helper function
Originally committed as revision 25297 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
333771210e
commit
dba249abee
20
ffmpeg.c
20
ffmpeg.c
|
@ -647,6 +647,26 @@ static int ffmpeg_exit(int ret)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* similar to ff_dynarray_add() and av_fast_realloc() */
|
||||||
|
static void *grow_array(void *array, int elem_size, int *size, int new_size)
|
||||||
|
{
|
||||||
|
if (new_size >= INT_MAX / elem_size) {
|
||||||
|
fprintf(stderr, "Array too big.\n");
|
||||||
|
ffmpeg_exit(1);
|
||||||
|
}
|
||||||
|
if (*size < new_size) {
|
||||||
|
uint8_t *tmp = av_realloc(array, new_size*elem_size);
|
||||||
|
if (!tmp) {
|
||||||
|
fprintf(stderr, "Could not alloc buffer.\n");
|
||||||
|
ffmpeg_exit(1);
|
||||||
|
}
|
||||||
|
memset(tmp + *size*elem_size, 0, (new_size-*size) * elem_size);
|
||||||
|
*size = new_size;
|
||||||
|
return tmp;
|
||||||
|
}
|
||||||
|
return array;
|
||||||
|
}
|
||||||
|
|
||||||
static void choose_sample_fmt(AVStream *st, AVCodec *codec)
|
static void choose_sample_fmt(AVStream *st, AVCodec *codec)
|
||||||
{
|
{
|
||||||
if(codec && codec->sample_fmts){
|
if(codec && codec->sample_fmts){
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
/* add one element to a dynamic array */
|
/* add one element to a dynamic array */
|
||||||
void ff_dynarray_add(intptr_t **tab_ptr, int *nb_ptr, intptr_t elem)
|
void ff_dynarray_add(intptr_t **tab_ptr, int *nb_ptr, intptr_t elem)
|
||||||
{
|
{
|
||||||
|
/* see similar ffmpeg.c:grow_array() */
|
||||||
int nb, nb_alloc;
|
int nb, nb_alloc;
|
||||||
intptr_t *tab;
|
intptr_t *tab;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue