aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarl Eugen Hoyos <cehoyos@ag.or.at>2012-02-27 19:01:53 +0100
committerCarl Eugen Hoyos <cehoyos@ag.or.at>2012-02-27 19:02:28 +0100
commit7b4e1466d4cb9283facd874fa109b6b3389b67e2 (patch)
tree0bd7a4234aa6d04c3e7a2ca5db5f128fbd4ee154
parenta4c22e3cac1aac61b6110753376b3a2bef4da0ec (diff)
downloadffmpeg-7b4e1466d4cb9283facd874fa109b6b3389b67e2.tar.gz
Exit ffmpeg if swr_convert() fails.
-rw-r--r--ffmpeg.c4
-rw-r--r--libswresample/swresample.h2
2 files changed, 5 insertions, 1 deletions
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);