diff options
author | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2020-03-21 18:31:06 +0100 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2021-07-08 13:22:34 +0200 |
commit | d2574262a538748a24ca2debecec33d8fe31df60 (patch) | |
tree | e2d041d9fa0f67080e1411b0ec5155dbe2a510c6 | |
parent | f12cdf895499beb45de36855aa590bf7c5949a06 (diff) | |
download | ffmpeg-d2574262a538748a24ca2debecec33d8fe31df60.tar.gz |
avformat/paf: Simplify cleanup after read_header failure
by setting the FF_FMT_INIT_CLEANUP flag.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-rw-r--r-- | libavformat/paf.c | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/libavformat/paf.c b/libavformat/paf.c index f48b2e60cd..2d2d7f8dd8 100644 --- a/libavformat/paf.c +++ b/libavformat/paf.c @@ -172,22 +172,20 @@ static int read_header(AVFormatContext *s) !p->blocks_offset_table || !p->video_frame || !p->audio_frame || - !p->temp_audio_frame) { - ret = AVERROR(ENOMEM); - goto fail; - } + !p->temp_audio_frame) + return AVERROR(ENOMEM); avio_seek(pb, p->buffer_size, SEEK_SET); ret = read_table(s, p->blocks_count_table, p->nb_frames); if (ret < 0) - goto fail; + return ret; ret = read_table(s, p->frames_offset_table, p->nb_frames); if (ret < 0) - goto fail; + return ret; ret = read_table(s, p->blocks_offset_table, p->frame_blks); if (ret < 0) - goto fail; + return ret; p->got_audio = 0; p->current_frame = 0; @@ -196,11 +194,6 @@ static int read_header(AVFormatContext *s) avio_seek(pb, p->start_offset, SEEK_SET); return 0; - -fail: - read_close(s); - - return ret; } static int read_packet(AVFormatContext *s, AVPacket *pkt) @@ -275,6 +268,7 @@ const AVInputFormat ff_paf_demuxer = { .name = "paf", .long_name = NULL_IF_CONFIG_SMALL("Amazing Studio Packed Animation File"), .priv_data_size = sizeof(PAFDemuxContext), + .flags_internal = FF_FMT_INIT_CLEANUP, .read_probe = read_probe, .read_header = read_header, .read_packet = read_packet, |