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>
This commit is contained in:
Andreas Rheinhardt 2020-03-21 18:31:06 +01:00
parent f12cdf8954
commit d2574262a5

View File

@ -172,22 +172,20 @@ static int read_header(AVFormatContext *s)
!p->blocks_offset_table || !p->blocks_offset_table ||
!p->video_frame || !p->video_frame ||
!p->audio_frame || !p->audio_frame ||
!p->temp_audio_frame) { !p->temp_audio_frame)
ret = AVERROR(ENOMEM); return AVERROR(ENOMEM);
goto fail;
}
avio_seek(pb, p->buffer_size, SEEK_SET); avio_seek(pb, p->buffer_size, SEEK_SET);
ret = read_table(s, p->blocks_count_table, p->nb_frames); ret = read_table(s, p->blocks_count_table, p->nb_frames);
if (ret < 0) if (ret < 0)
goto fail; return ret;
ret = read_table(s, p->frames_offset_table, p->nb_frames); ret = read_table(s, p->frames_offset_table, p->nb_frames);
if (ret < 0) if (ret < 0)
goto fail; return ret;
ret = read_table(s, p->blocks_offset_table, p->frame_blks); ret = read_table(s, p->blocks_offset_table, p->frame_blks);
if (ret < 0) if (ret < 0)
goto fail; return ret;
p->got_audio = 0; p->got_audio = 0;
p->current_frame = 0; p->current_frame = 0;
@ -196,11 +194,6 @@ static int read_header(AVFormatContext *s)
avio_seek(pb, p->start_offset, SEEK_SET); avio_seek(pb, p->start_offset, SEEK_SET);
return 0; return 0;
fail:
read_close(s);
return ret;
} }
static int read_packet(AVFormatContext *s, AVPacket *pkt) static int read_packet(AVFormatContext *s, AVPacket *pkt)
@ -275,6 +268,7 @@ const AVInputFormat ff_paf_demuxer = {
.name = "paf", .name = "paf",
.long_name = NULL_IF_CONFIG_SMALL("Amazing Studio Packed Animation File"), .long_name = NULL_IF_CONFIG_SMALL("Amazing Studio Packed Animation File"),
.priv_data_size = sizeof(PAFDemuxContext), .priv_data_size = sizeof(PAFDemuxContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = read_probe, .read_probe = read_probe,
.read_header = read_header, .read_header = read_header,
.read_packet = read_packet, .read_packet = read_packet,