From 7b4e1466d4cb9283facd874fa109b6b3389b67e2 Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos Date: Mon, 27 Feb 2012 19:01:53 +0100 Subject: [PATCH] Exit ffmpeg if swr_convert() fails. --- ffmpeg.c | 4 ++++ libswresample/swresample.h | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/ffmpeg.c b/ffmpeg.c index c90720105a..4bdca88c7a 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -1267,6 +1267,10 @@ need_realloc: buftmp = audio_buf; size_out = swr_convert(ost->swr, ( uint8_t*[]){buftmp}, audio_buf_size / (enc->channels * osize), (const uint8_t*[]){buf }, size / (dec->channels * isize)); + if (size_out < 0) { + av_log(NULL, AV_LOG_FATAL, "swr_convert failed\n"); + exit_program(1); + } size_out = size_out * enc->channels * osize; } else { buftmp = buf; diff --git a/libswresample/swresample.h b/libswresample/swresample.h index 4a3f451aba..50f29103c8 100644 --- a/libswresample/swresample.h +++ b/libswresample/swresample.h @@ -106,7 +106,7 @@ void swr_free(struct SwrContext **s); * @param in input buffers, only the first one need to be set in case of packed audio * @param in_count number of input samples available in one channel * - * @return number of samples output per channel + * @return number of samples output per channel, negative value on error */ int swr_convert(struct SwrContext *s, uint8_t *out[SWR_CH_MAX], int out_count, const uint8_t *in [SWR_CH_MAX], int in_count);