aboutsummaryrefslogtreecommitdiffhomepage
path: root/demux
diff options
context:
space:
mode:
authorGravatar Aman Gupta <aman@tmm1.net>2018-04-15 18:39:45 -0700
committerGravatar Jan Ekström <jeebjp@gmail.com>2018-04-17 01:01:50 +0300
commitb8de7d6ff3749e1edc66b8c675c2cce41ef866d6 (patch)
tree1c15cfd9afffc62b6aa329ef265382debef74367 /demux
parentc2a24323bca735e68b002622c1083157f4efdf0c (diff)
demux, player: mark dependent tracks
ffmpeg marks audio tracks which are not meant to be played standalone as DEPENDENT. these are typically used in DVB broadcasts for audio descriptions, and are meant to be mixed into the main audio track during playback.
Diffstat (limited to 'demux')
-rw-r--r--demux/demux_lavf.c2
-rw-r--r--demux/stheader.h1
2 files changed, 3 insertions, 0 deletions
diff --git a/demux/demux_lavf.c b/demux/demux_lavf.c
index a8f631d142..0b74c84471 100644
--- a/demux/demux_lavf.c
+++ b/demux/demux_lavf.c
@@ -724,6 +724,8 @@ static void handle_new_stream(demuxer_t *demuxer, int i)
sh->title = talloc_asprintf(sh, "visual impaired");
if (!sh->title && st->disposition & AV_DISPOSITION_HEARING_IMPAIRED)
sh->title = talloc_asprintf(sh, "hearing impaired");
+ if (st->disposition & AV_DISPOSITION_DEPENDENT)
+ sh->dependent_track = true;
AVDictionaryEntry *lang = av_dict_get(st->metadata, "language", NULL, 0);
if (lang && lang->value)
sh->lang = talloc_strdup(sh, lang->value);
diff --git a/demux/stheader.h b/demux/stheader.h
index 467d0e09a0..700ded89fa 100644
--- a/demux/stheader.h
+++ b/demux/stheader.h
@@ -45,6 +45,7 @@ struct sh_stream {
char *lang; // language code
bool default_track; // container default track flag
bool forced_track; // container forced track flag
+ bool dependent_track; // container dependent track flag
int hls_bitrate;
struct mp_tags *tags;