Exit ffmpeg if swr_convert() fails.
authorCarl Eugen Hoyos <cehoyos@ag.or.at>
Mon, 27 Feb 2012 18:01:53 +0000 (19:01 +0100)
committerCarl Eugen Hoyos <cehoyos@ag.or.at>
Mon, 27 Feb 2012 18:02:28 +0000 (19:02 +0100)
ffmpeg.c
libswresample/swresample.h

index c907201..4bdca88 100644 (file)
--- 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;
index 4a3f451..50f2910 100644 (file)
@@ -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);