avconv: report the error for codec open failure
authorLuca Barbato <lu_zero@gentoo.org>
Wed, 19 Jun 2013 22:06:08 +0000 (00:06 +0200)
committerLuca Barbato <lu_zero@gentoo.org>
Sat, 22 Jun 2013 18:54:59 +0000 (20:54 +0200)
External codec may have corner case reason to fail at init, better
report them instead having the user wonder.

avconv.c

index b490d4aa4aa9bff09e7e1e750980968ea3f8c2dd..9fa06756900d12fff14d0e52744bafb9e2ba369e 100644 (file)
--- a/avconv.c
+++ b/avconv.c
@@ -1371,10 +1371,16 @@ static int init_input_stream(int ist_index, char *error, int error_len)
         if (!av_dict_get(ist->opts, "threads", NULL, 0))
             av_dict_set(&ist->opts, "threads", "auto", 0);
         if ((ret = avcodec_open2(ist->st->codec, codec, &ist->opts)) < 0) {
+            char errbuf[128];
             if (ret == AVERROR_EXPERIMENTAL)
                 abort_codec_experimental(codec, 0);
-            snprintf(error, error_len, "Error while opening decoder for input stream #%d:%d",
-                    ist->file_index, ist->st->index);
+
+            av_strerror(ret, errbuf, sizeof(errbuf));
+
+            snprintf(error, error_len,
+                     "Error while opening decoder for input stream "
+                     "#%d:%d : %s",
+                     ist->file_index, ist->st->index, errbuf);
             return ret;
         }
         assert_avoptions(ist->opts);