avformat/aviobuf: return stored AVIO context error on avio_close

Otherwise IO errors at avio_flush() before closing may be lost.

Signed-off-by: Marton Balint <cus@passwd.hu>
This commit is contained in:
Marton Balint 2021-11-30 00:59:14 +01:00
parent 722d28db12
commit 8a40cfa4da
1 changed files with 7 additions and 1 deletions

View File

@ -1231,6 +1231,7 @@ int avio_close(AVIOContext *s)
{
FFIOContext *const ctx = ffiocontext(s);
URLContext *h;
int ret, error;
if (!s)
return 0;
@ -1249,9 +1250,14 @@ int avio_close(AVIOContext *s)
ctx->bytes_read, ctx->seek_count);
av_opt_free(s);
error = s->error;
avio_context_free(&s);
return ffurl_close(h);
ret = ffurl_close(h);
if (ret < 0)
return ret;
return error;
}
int avio_closep(AVIOContext **s)