- av_log(h, AV_LOG_ERROR, "%s\n", ERR_error_string(ERR_get_error(), NULL));
- return AVERROR(EIO);
+ while ((e = ERR_get_error()) != 0) {
+ av_log(h, AV_LOG_ERROR, "%s\n", ERR_error_string(e, NULL));
+ printed = 1;
+ }
+ if (c->io_err) {
+ av_log(h, AV_LOG_ERROR, "IO error: %s\n", av_err2str(c->io_err));
+ printed = 1;
+ averr = c->io_err;
+ c->io_err = 0;
+ }
+ if (!printed)
+ av_log(h, AV_LOG_ERROR, "Unknown error\n");
+ return averr;