[FFmpeg-devel] [PATCH 4/5] avformat: make AVFormatContext io_close return an int

Marton Balint cus at passwd.hu
Tue Nov 30 11:07:21 EET 2021



On Tue, 30 Nov 2021, Andreas Rheinhardt wrote:

> Marton Balint:
>> Otherwise there is no way to detect any error during avio_close().
>>
>> Signed-off-by: Marton Balint <cus at passwd.hu>
>> ---
>>  doc/APIchanges         | 3 +++
>>  libavformat/avformat.h | 6 +++++-
>>  libavformat/internal.h | 6 +++++-
>>  libavformat/options.c  | 4 ++--
>>  libavformat/utils.c    | 6 ++++--
>>  libavformat/version.h  | 4 ++--
>>  6 files changed, 21 insertions(+), 8 deletions(-)
>>
>> diff --git a/doc/APIchanges b/doc/APIchanges
>> index bc9f4e38da..090263aedf 100644
>> --- a/doc/APIchanges
>> +++ b/doc/APIchanges
>> @@ -14,6 +14,9 @@ libavutil:     2021-04-27
>>
>>  API changes, most recent first:
>>
>> +2021-12-xx - xxxxxxxxxx - lavf 59.10.100 - avformat.h
>> +  AVFormatContext io_open now returns an int.
>> +
>>  2021-11-22 - xxxxxxxxxx - lavu 57.9.100 - pixfmt.h
>>    Add AV_PIX_FMT_P210, AV_PIX_FMT_P410, AV_PIX_FMT_P216, and AV_PIX_FMT_P416.
>>
>> diff --git a/libavformat/avformat.h b/libavformat/avformat.h
>> index 75699f3a32..eec1f6b20c 100644
>> --- a/libavformat/avformat.h
>> +++ b/libavformat/avformat.h
>> @@ -1756,8 +1756,12 @@ typedef struct AVFormatContext {
>>
>>      /**
>>       * A callback for closing the streams opened with AVFormatContext.io_open().
>> +     *
>> +     * @param s the format context
>> +     * @param pb IO context to be closed and freed
>> +     * @return 0 on success, a negative AVERROR code on failure
>>       */
>> -    void (*io_close)(struct AVFormatContext *s, AVIOContext *pb);
>> +    int (*io_close)(struct AVFormatContext *s, AVIOContext *pb);
>>
>>      /**
>>       * ',' separated list of disallowed protocols.
>
> This is an API break.

To be honest I wanted to avoid the io_close2() dance. This change has 
limited impact and we still did not have a release since the bump.

I can rework if somebody feels that introducing io_close2() is the better 
way. Please let me know.

Thanks,
Marton


More information about the ffmpeg-devel mailing list