From cac651c83417dde3b64a6620cac32f078c9c399f Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Mon, 29 Aug 2011 07:11:57 +0200 Subject: cmdutils: move grow_array() from avconv to cmdutils. --- cmdutils.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'cmdutils.c') diff --git a/cmdutils.c b/cmdutils.c index a86c55bc6d..9e34e43128 100644 --- a/cmdutils.c +++ b/cmdutils.c @@ -931,4 +931,23 @@ int get_filtered_video_frame(AVFilterContext *ctx, AVFrame *frame, return 1; } +void *grow_array(void *array, int elem_size, int *size, int new_size) +{ + if (new_size >= INT_MAX / elem_size) { + av_log(NULL, AV_LOG_ERROR, "Array too big.\n"); + exit_program(1); + } + if (*size < new_size) { + uint8_t *tmp = av_realloc(array, new_size*elem_size); + if (!tmp) { + av_log(NULL, AV_LOG_ERROR, "Could not alloc buffer.\n"); + exit_program(1); + } + memset(tmp + *size*elem_size, 0, (new_size-*size) * elem_size); + *size = new_size; + return tmp; + } + return array; +} + #endif /* CONFIG_AVFILTER */ -- cgit v1.2.3