From 43832ef5034e9712a9d3bf943bf962df55cbe639 Mon Sep 17 00:00:00 2001
From: gressermdm <Dmitrij.Gresserman@loewe.de>
Date: Thu, 20 Sep 2018 16:32:03 +0200
Subject: [PATCH] Access to the reference track (dolby vision) of a stream
---
libavformat/avformat.h | 7 +++++++
libavformat/mov.c | 14 ++++++++++++++
2 files changed, 21 insertions(+)
@@ -1220,6 +1220,13 @@ typedef struct AVStream {
* Must not be accessed in any way by callers.
*/
AVStreamInternal *internal;
+
+ /**
+ * A reference to another dolby track.
+ * 0 indicates that no reference track is available.
+ * Only used for decoding.
+ */
+ int reference_track_dolby;
} AVStream;
#if FF_API_FORMAT_GET_SET
@@ -6658,6 +6658,19 @@ static int mov_read_dops(MOVContext *c, AVIOContext *pb, MOVAtom atom)
return 0;
}
+static int mov_read_vdep(MOVContext *c, AVIOContext *pb, MOVAtom atom)
+{
+ int track_id;
+ AVStream *st;
+
+ track_id = (int)avio_rb32(pb);
+
+ st = c->fc->streams[c->fc->nb_streams-1];
+ st->reference_track_dolby = track_id;
+
+ return 0;
+}
+
static const MOVParseTableEntry mov_default_parse_table[] = {
{ MKTAG('A','C','L','R'), mov_read_aclr },
{ MKTAG('A','P','R','G'), mov_read_avid },
@@ -6751,6 +6764,7 @@ static const MOVParseTableEntry mov_default_parse_table[] = {
{ MKTAG('v','p','c','C'), mov_read_vpcc },
{ MKTAG('m','d','c','v'), mov_read_mdcv },
{ MKTAG('c','l','l','i'), mov_read_clli },
+{ MKTAG('v','d','e','p'), mov_read_vdep },
{ 0, NULL }
};
--
2.7.4