[FFmpeg-devel] [PATCH] lavf/aacdec: read ape tags

Paul B Mahol onemda at gmail.com
Tue Jun 4 00:19:38 CEST 2013


Closes #2634.

Signed-off-by: Paul B Mahol <onemda at gmail.com>
---
 libavformat/Makefile | 2 +-
 libavformat/aacdec.c | 8 +++++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/libavformat/Makefile b/libavformat/Makefile
index 7af1589..94f6074 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 9d7c6d7..d93e75e 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);
-- 
1.7.11.2



More information about the ffmpeg-devel mailing list