summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavformat/Makefile2
-rw-r--r--libavformat/tta.c5
2 files changed, 6 insertions, 1 deletions
diff --git a/libavformat/Makefile b/libavformat/Makefile
index 7af1589019..69ab63b714 100644
--- a/libavformat/Makefile
+++ b/libavformat/Makefile
@@ -370,7 +370,7 @@ OBJS-$(CONFIG_MKVTIMESTAMP_V2_MUXER) += mkvtimestamp_v2.o
OBJS-$(CONFIG_TMV_DEMUXER) += tmv.o
OBJS-$(CONFIG_TRUEHD_DEMUXER) += rawdec.o
OBJS-$(CONFIG_TRUEHD_MUXER) += rawenc.o
-OBJS-$(CONFIG_TTA_DEMUXER) += tta.o
+OBJS-$(CONFIG_TTA_DEMUXER) += tta.o apetag.o
OBJS-$(CONFIG_TTY_DEMUXER) += tty.o sauce.o
OBJS-$(CONFIG_TXD_DEMUXER) += txd.o
OBJS-$(CONFIG_VC1_DEMUXER) += rawdec.o
diff --git a/libavformat/tta.c b/libavformat/tta.c
index 7db1a90a1b..f9ef5975cf 100644
--- a/libavformat/tta.c
+++ b/libavformat/tta.c
@@ -20,6 +20,7 @@
*/
#include "libavcodec/get_bits.h"
+#include "apetag.h"
#include "avformat.h"
#include "avio_internal.h"
#include "internal.h"
@@ -58,6 +59,10 @@ static int tta_read_header(AVFormatContext *s)
uint64_t framepos, start_offset;
uint32_t datalen, crc;
+ if (s->pb->seekable) {
+ ff_ape_parse_tag(s);
+ avio_seek(s->pb, 0, SEEK_SET);
+ }
if (!av_dict_get(s->metadata, "", NULL, AV_DICT_IGNORE_SUFFIX))
ff_id3v1_read(s);