diff options
author | Aman Gupta <aman@tmm1.net> | 2018-04-15 18:39:45 -0700 |
---|---|---|
committer | Jan Ekström <jeebjp@gmail.com> | 2018-04-17 01:01:50 +0300 |
commit | b8de7d6ff3749e1edc66b8c675c2cce41ef866d6 (patch) | |
tree | 1c15cfd9afffc62b6aa329ef265382debef74367 | |
parent | c2a24323bca735e68b002622c1083157f4efdf0c (diff) | |
download | mpv-b8de7d6ff3749e1edc66b8c675c2cce41ef866d6.tar.bz2 mpv-b8de7d6ff3749e1edc66b8c675c2cce41ef866d6.tar.xz |
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.
-rw-r--r-- | demux/demux_lavf.c | 2 | ||||
-rw-r--r-- | demux/stheader.h | 1 | ||||
-rw-r--r-- | player/command.c | 1 | ||||
-rw-r--r-- | player/core.h | 2 |
4 files changed, 5 insertions, 1 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; diff --git a/player/command.c b/player/command.c index 70a0f824a8..7a144e597b 100644 --- a/player/command.c +++ b/player/command.c @@ -2242,6 +2242,7 @@ static int get_track_entry(int item, int action, void *arg, void *ctx) {"albumart", SUB_PROP_FLAG(track->attached_picture)}, {"default", SUB_PROP_FLAG(track->default_track)}, {"forced", SUB_PROP_FLAG(track->forced_track)}, + {"dependent", SUB_PROP_FLAG(track->dependent_track)}, {"external", SUB_PROP_FLAG(track->is_external)}, {"selected", SUB_PROP_FLAG(track->selected)}, {"external-filename", SUB_PROP_STR(track->external_filename), diff --git a/player/core.h b/player/core.h index 0eca484dc2..ff4719926d 100644 --- a/player/core.h +++ b/player/core.h @@ -134,7 +134,7 @@ struct track { int ff_index; // same as stream->ff_index, or 0. char *title; - bool default_track, forced_track; + bool default_track, forced_track, dependent_track; bool attached_picture; char *lang; |