summaryrefslogtreecommitdiff
path: root/libavformat/aadec.c
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2020-03-21 18:31:06 +0100
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2021-07-07 20:57:43 +0200
commitb09b166829e5ed8c195e46580aef974ef2553ece (patch)
tree673a53c75a5433b8b524c9b9aba7c2be7a660364 /libavformat/aadec.c
parentf7fb09cb001d32e55cf280ca8434de0049146552 (diff)
avformat/aadec: Simplify cleanup after read_header failure
by setting the FF_FMT_INIT_CLEANUP flag. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Diffstat (limited to 'libavformat/aadec.c')
-rw-r--r--libavformat/aadec.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/libavformat/aadec.c b/libavformat/aadec.c
index 70df0439bd..247c498147 100644
--- a/libavformat/aadec.c
+++ b/libavformat/aadec.c
@@ -175,10 +175,8 @@ static int aa_read_header(AVFormatContext *s)
/* decoder setup */
st = avformat_new_stream(s, NULL);
- if (!st) {
- av_freep(&c->tea_ctx);
+ if (!st)
return AVERROR(ENOMEM);
- }
st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO;
if (!strcmp(codec_name, "mp332")) {
st->codecpar->codec_id = AV_CODEC_ID_MP3;
@@ -230,10 +228,8 @@ static int aa_read_header(AVFormatContext *s)
avio_skip(pb, 4 + chapter_size);
if (!avpriv_new_chapter(s, chapter_idx, st->time_base,
chapter_pos * TIMEPREC,
- (chapter_pos + chapter_size) * TIMEPREC, NULL)) {
- av_freep(&c->tea_ctx);
+ (chapter_pos + chapter_size) * TIMEPREC, NULL))
return AVERROR(ENOMEM);
- }
}
st->duration = (largest_size - CHAPTER_HEADER_SIZE * s->nb_chapters) * TIMEPREC;
@@ -418,4 +414,5 @@ const AVInputFormat ff_aa_demuxer = {
.read_seek = aa_read_seek,
.read_close = aa_read_close,
.flags = AVFMT_NO_BYTE_SEEK | AVFMT_NOGENSEARCH,
+ .flags_internal = FF_FMT_INIT_CLEANUP,
};