External codec may have corner case reason to fail at init, better
report them instead having the user wonder.
---

This helped a lot debugging why the QSV failed to init when running
avconv through ssh on windows (yes I do such stuff).

 avconv.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/avconv.c b/avconv.c
index 4808235..8ef1495 100644
--- 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];
+            const char *errbuf_ptr = errbuf;
             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);
+            if (av_strerror(ret, errbuf, sizeof(errbuf)) < 0)
+                errbuf_ptr = strerror(AVUNERROR(ret));
+
+            snprintf(error, error_len,
+                     "Error while opening decoder for input stream #%d:%d : 
%s",
+                     ist->file_index, ist->st->index, errbuf_ptr);
             return ret;
         }
         assert_avoptions(ist->opts);
--
1.8.2.1

_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to