[FFmpeg-cvslog] r25297 - in trunk: ffmpeg.c libavformat/cutils.c
aurel
subversion
Fri Oct 1 23:29:37 CEST 2010
Author: aurel
Date: Fri Oct 1 23:29:37 2010
New Revision: 25297
Log:
ffmpeg: add a grow_array() helper function
Modified:
trunk/ffmpeg.c
trunk/libavformat/cutils.c
Modified: trunk/ffmpeg.c
==============================================================================
--- trunk/ffmpeg.c Fri Oct 1 20:32:53 2010 (r25296)
+++ trunk/ffmpeg.c Fri Oct 1 23:29:37 2010 (r25297)
@@ -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){
Modified: trunk/libavformat/cutils.c
==============================================================================
--- trunk/libavformat/cutils.c Fri Oct 1 20:32:53 2010 (r25296)
+++ trunk/libavformat/cutils.c Fri Oct 1 23:29:37 2010 (r25297)
@@ -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;
More information about the ffmpeg-cvslog
mailing list