On 12/20/2016 11:36 PM, Michael Niedermayer wrote: > On Tue, Dec 20, 2016 at 04:53:51PM -0800, Thomas Turner wrote: >> Signed-off-by: Thomas Turner <thomas...@googlemail.com> >> --- >> libavutil/Makefile | 1 + >> libavutil/tests/audio_fifo.c | 196 +++++++++++++++++++++++++++++++++++++ >> tests/fate/libavutil.mak | 4 + >> tests/ref/fate/audio_fifo | 228 >> +++++++++++++++++++++++++++++++++++++++++++ >> 4 files changed, 429 insertions(+) >> create mode 100644 libavutil/tests/audio_fifo.c >> create mode 100644 tests/ref/fate/audio_fifo > > applied > > thx
This is crashing on some fate clients. I noticed it's using malloc and free instead of the av_malloc family, so maybe it's related to that? Patch attached in any case, it's proper even if not the reason behind the crashes.
>From 61898e2580a67250cb3e1fb25a4e170fd00feada Mon Sep 17 00:00:00 2001 From: James Almer <jamr...@gmail.com> Date: Wed, 21 Dec 2016 21:41:20 -0300 Subject: [PATCH] test/audio_fifo: use av_malloc() family of functions Signed-off-by: James Almer <jamr...@gmail.com> --- libavutil/tests/audio_fifo.c | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/libavutil/tests/audio_fifo.c b/libavutil/tests/audio_fifo.c index dbadded..e9b1470 100644 --- a/libavutil/tests/audio_fifo.c +++ b/libavutil/tests/audio_fifo.c @@ -19,6 +19,7 @@ #include <stdlib.h> #include <stdio.h> #include <inttypes.h> +#include "libavutil/mem.h" #include "libavutil/audio_fifo.c" #define MAX_CHANNELS 32 @@ -50,15 +51,6 @@ static void ERROR(const char *str) exit(1); } -static void* allocate_memory(size_t size) -{ - void *ptr = malloc(size); - if (ptr == NULL){ - ERROR("failed to allocate memory!"); - } - return ptr; -} - static void print_audio_bytes(const TestStruct *test_sample, void **data_planes, int nb_samples) { int p, b, f; @@ -85,11 +77,15 @@ static int read_samples_from_audio_fifo(AVAudioFifo* afifo, void ***output, int int samples = FFMIN(nb_samples, afifo->nb_samples); int tot_elements = !(planes = av_sample_fmt_is_planar(afifo->sample_fmt)) ? samples : afifo->channels * samples; - void **data_planes = allocate_memory(sizeof(void*) * planes); + void **data_planes = av_malloc_array(planes, sizeof(void*)); + if (!data_planes) + ERROR("failed to allocate memory!"); *output = data_planes; for (i = 0; i < afifo->nb_buffers; ++i){ - data_planes[i] = allocate_memory(afifo->sample_size * tot_elements); + data_planes[i] = av_malloc_array(tot_elements, afifo->sample_size); + if (!data_planes[i]) + ERROR("failed to allocate memory!"); } return av_audio_fifo_read(afifo, *output, nb_samples); @@ -178,9 +174,9 @@ static void test_function(const TestStruct test_sample) /* deallocate */ for (i = 0; i < afifo->nb_buffers; ++i){ - free(output_data[i]); + av_freep(&output_data[i]); } - free(output_data); + av_freep(&output_data); av_audio_fifo_free(afifo); } -- 2.10.2
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel