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-07 20:57:43 +0200 |
commit | b09b166829e5ed8c195e46580aef974ef2553ece (patch) | |
tree | 673a53c75a5433b8b524c9b9aba7c2be7a660364 | |
parent | f7fb09cb001d32e55cf280ca8434de0049146552 (diff) | |
download | ffmpeg-b09b166829e5ed8c195e46580aef974ef2553ece.tar.gz |
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>
-rw-r--r-- | libavformat/aadec.c | 9 |
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, }; |