From d19d679e4b589b9c6b154674a8d2ebfd804be125 Mon Sep 17 00:00:00 2001 From: Paul B Mahol Date: Mon, 3 Jun 2013 22:16:02 +0000 Subject: [PATCH] lavf/aacdec: add support for reading ape tags Closes #2634. Signed-off-by: Paul B Mahol --- libavformat/Makefile | 2 +- libavformat/aacdec.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/libavformat/Makefile b/libavformat/Makefile index 69ab63b714..ee592a8e7f 100644 --- a/libavformat/Makefile +++ b/libavformat/Makefile @@ -50,7 +50,7 @@ OBJS-$(CONFIG_SHARED) += log2_tab.o # muxers/demuxers OBJS-$(CONFIG_A64_MUXER) += a64.o rawenc.o -OBJS-$(CONFIG_AAC_DEMUXER) += aacdec.o rawdec.o +OBJS-$(CONFIG_AAC_DEMUXER) += aacdec.o apetag.o rawdec.o OBJS-$(CONFIG_AC3_DEMUXER) += ac3dec.o rawdec.o OBJS-$(CONFIG_AC3_MUXER) += rawenc.o OBJS-$(CONFIG_ACT_DEMUXER) += act.o diff --git a/libavformat/aacdec.c b/libavformat/aacdec.c index 9d7c6d711f..d93e75ec52 100644 --- a/libavformat/aacdec.c +++ b/libavformat/aacdec.c @@ -25,7 +25,7 @@ #include "internal.h" #include "rawdec.h" #include "id3v1.h" - +#include "apetag.h" static int adts_aac_probe(AVProbeData *p) { @@ -75,6 +75,12 @@ static int adts_aac_read_header(AVFormatContext *s) st->need_parsing = AVSTREAM_PARSE_FULL_RAW; ff_id3v1_read(s); + if (s->pb->seekable && + !av_dict_get(s->metadata, "", NULL, AV_DICT_IGNORE_SUFFIX)) { + int64_t cur = avio_tell(s->pb); + ff_ape_parse_tag(s); + avio_seek(s->pb, cur, SEEK_SET); + } //LCM of all possible ADTS sample rates avpriv_set_pts_info(st, 64, 1, 28224000);