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:
parent
f12cdf8954
commit
d2574262a5
@ -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,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user