OSDN Git Service

avconv: fix some bugs introduced in 630902a1e1336e7ee0cf3dcbcb6eb07af8edf660
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 1 Sep 2011 01:46:04 +0000 (03:46 +0200)
committerAnton Khirnov <anton@khirnov.net>
Thu, 1 Sep 2011 09:04:13 +0000 (11:04 +0200)
These caused scrambled error messages to be printed and
floating point exceptions.
For example when there was no decoder available for a
stream.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
avconv.c

index 22d54ad..f5f4dea 100644 (file)
--- a/avconv.c
+++ b/avconv.c
@@ -1822,7 +1822,7 @@ static int init_input_stream(int ist_index, OutputStream *output_streams, int nb
     if (ist->decoding_needed) {
         AVCodec *codec = ist->dec;
         if (!codec) {
-            snprintf(error, sizeof(error), "Decoder (codec id %d) not found for input stream #%d.%d",
+            snprintf(error, error_len, "Decoder (codec id %d) not found for input stream #%d.%d",
                     ist->st->codec->codec_id, ist->file_index, ist->st->index);
             return AVERROR(EINVAL);
         }
@@ -1838,7 +1838,7 @@ static int init_input_stream(int ist_index, OutputStream *output_streams, int nb
         }
 
         if (avcodec_open2(ist->st->codec, codec, &ist->opts) < 0) {
-            snprintf(error, sizeof(error), "Error while opening decoder for input stream #%d.%d",
+            snprintf(error, error_len, "Error while opening decoder for input stream #%d.%d",
                     ist->file_index, ist->st->index);
             return AVERROR(EINVAL);
         }
@@ -2150,7 +2150,7 @@ static int transcode_init(OutputFile *output_files,
 
     /* init input streams */
     for (i = 0; i < nb_input_streams; i++)
-        if ((ret = init_input_stream(i, output_streams, nb_output_streams, error, sizeof(error)) < 0))
+        if ((ret = init_input_stream(i, output_streams, nb_output_streams, error, sizeof(error))) < 0)
             goto dump_format;
 
     /* open files and write file headers */