summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul B Mahol <onemda@gmail.com>2013-06-03 22:16:02 +0000
committerPaul B Mahol <onemda@gmail.com>2013-06-03 23:10:57 +0000
commitd19d679e4b589b9c6b154674a8d2ebfd804be125 (patch)
treefd3783cd181869a6b15b9dda3708e966175bcf82
parent55121f3fa92901a1917f035df534e8caa82e4f71 (diff)
lavf/aacdec: add support for reading ape tags
Closes #2634. Signed-off-by: Paul B Mahol <onemda@gmail.com>
-rw-r--r--libavformat/Makefile2
-rw-r--r--libavformat/aacdec.c8
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);