avformat: introduce AVFormatContext io_close2 which returns an int
authorMarton Balint <cus@passwd.hu>
Mon, 29 Nov 2021 23:38:30 +0000 (00:38 +0100)
committerMarton Balint <cus@passwd.hu>
Sat, 11 Dec 2021 23:32:20 +0000 (00:32 +0100)
commit64834bb86a133400970d203656a30ae6a3d2832f
tree5a037263437ff816b44b5209c18d8e61c6c99915
parent8d66a07d657ba7ed8c5e95345d4eec770b55e438
avformat: introduce AVFormatContext io_close2 which returns an int

Otherwise there is no way to detect an error returned by avio_close() because
ff_format_io_close cannot get the return value.

Checking the return value of the close function is important in order to check
if all data was successfully written and the underlying close() operation was
successful.

It can also be useful even for read mode because it can return any pending
AVIOContext error, so the user don't have to manually check AVIOContext->error.

In order to still support if the user overrides io_close, the generic code only
uses io_close2 if io_close is either NULL or the default io_close callback.

Signed-off-by: Marton Balint <cus@passwd.hu>
doc/APIchanges
libavformat/avformat.h
libavformat/dashenc.c
libavformat/fifo.c
libavformat/hlsenc.c
libavformat/internal.h
libavformat/options.c
libavformat/segment.c
libavformat/tee.c
libavformat/utils.c
libavformat/version.h