Browse Source

ffmpeg: add a grow_array() helper function

Originally committed as revision 25297 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/n0.8
Aurelien Jacobs 14 years ago
parent
commit
dba249abee
2 changed files with 21 additions and 0 deletions
  1. +20
    -0
      ffmpeg.c
  2. +1
    -0
      libavformat/cutils.c

+ 20
- 0
ffmpeg.c View File

@@ -647,6 +647,26 @@ static int ffmpeg_exit(int 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)
{
if(codec && codec->sample_fmts){


+ 1
- 0
libavformat/cutils.c View File

@@ -24,6 +24,7 @@
/* add one element to a dynamic array */
void ff_dynarray_add(intptr_t **tab_ptr, int *nb_ptr, intptr_t elem)
{
/* see similar ffmpeg.c:grow_array() */
int nb, nb_alloc;
intptr_t *tab;



Loading…
Cancel
Save