diff options
author | wm4 <wm4@nowhere> | 2012-08-08 21:45:37 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2012-08-08 21:45:37 +0200 |
commit | b4dd2194d5c2540583becf6c021d8eb0f52cddc0 (patch) | |
tree | a28779bbb2862813e74e84bc2683f7408df58ab4 | |
parent | 7fd43b0bcd5abdcda0a6fe99abb46651f81ec84d (diff) | |
download | mpv-b4dd2194d5c2540583becf6c021d8eb0f52cddc0.tar.bz2 mpv-b4dd2194d5c2540583becf6c021d8eb0f52cddc0.tar.xz |
command: fix subtitle selection display
Commit 9c02ae7e9510897 set the sh variable (see diff) to the struct of
type sh_sub instead the one of sh_stream. Unfortunately this didn't
crash, and merely made the OSD show "unknown" for the language.
Commit 804bf91570a24b9 accidentally removed the display of the track
title. Add it back.
-rw-r--r-- | command.c | 10 | ||||
-rw-r--r-- | libmpdemux/demuxer.h | 2 |
2 files changed, 8 insertions, 4 deletions
@@ -1576,12 +1576,16 @@ static int mp_property_sub(m_option_t *prop, int action, void *arg, return M_PROPERTY_OK; } if (opts->sub_id >= 0 && mpctx->d_sub && mpctx->d_sub->sh) { - struct sh_stream *sh = mpctx->d_sub->sh; + struct sh_stream *sh = ((struct sh_sub *)mpctx->d_sub->sh)->gsh; char *lang = demuxer_stream_lang(mpctx->demuxer, sh); if (!lang) lang = talloc_strdup(NULL, mp_gtext("unknown")); - *(char **) arg = talloc_asprintf(NULL, "(%d) %s", opts->sub_id, - lang); + if (sh->title) + *(char **)arg = talloc_asprintf(NULL, "(%d) %s (\"%s\")", + opts->sub_id, lang, sh->title); + else + *(char **) arg = talloc_asprintf(NULL, "(%d) %s", opts->sub_id, + lang); talloc_free(lang); return M_PROPERTY_OK; } diff --git a/libmpdemux/demuxer.h b/libmpdemux/demuxer.h index 9b63eb63ac..5f31057cb3 100644 --- a/libmpdemux/demuxer.h +++ b/libmpdemux/demuxer.h @@ -136,7 +136,7 @@ typedef struct demux_stream { // ---- mov ----- unsigned int ss_mul, ss_div; // ---- stream header ---- - void *sh; + void *sh; // points to sh_audio or sh_video } demux_stream_t; typedef struct demuxer_info { |