summaryrefslogtreecommitdiffstats
path: root/command.c
diff options
context:
space:
mode:
authoreugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>2008-02-29 17:25:39 +0000
committereugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>2008-02-29 17:25:39 +0000
commita2fad60c7f92299aa3cf51c85e0491167287c517 (patch)
tree2c54b256ed6a2e29a8ada1795cdede036d071416 /command.c
parent18fea2aa498664c20a603d9b4fb07ffbae2056c5 (diff)
downloadmpv-a2fad60c7f92299aa3cf51c85e0491167287c517.tar.bz2
mpv-a2fad60c7f92299aa3cf51c85e0491167287c517.tar.xz
Fill sh_sub_t.lang in lavf, mkv and ogg demuxers. Use it for printing subtitle
track language. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26116 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'command.c')
-rw-r--r--command.c28
1 files changed, 7 insertions, 21 deletions
diff --git a/command.c b/command.c
index 0157f971b3..ba23b7e005 100644
--- a/command.c
+++ b/command.c
@@ -1296,8 +1296,6 @@ static int mp_property_sub_pos(m_option_t * prop, int action, void *arg,
}
}
-char *demux_lavf_sub_lang(demuxer_t *demuxer, int track_num);
-
/// Selected subtitles (RW)
static int mp_property_sub(m_option_t * prop, int action, void *arg,
MPContext * mpctx)
@@ -1352,28 +1350,16 @@ static int mp_property_sub(m_option_t * prop, int action, void *arg,
}
#endif
-#ifdef USE_LIBAVFORMAT
- if (mpctx->demuxer->type == DEMUXER_TYPE_LAVF && dvdsub_id >= 0) {
- char *lang = demux_lavf_sub_lang(mpctx->demuxer, dvdsub_id);
- snprintf(*(char **) arg, 63, "(%d) %s", dvdsub_id, lang);
- return M_PROPERTY_OK;
- }
-#endif
- if (mpctx->demuxer->type == DEMUXER_TYPE_MATROSKA && dvdsub_id >= 0) {
- char lang[40] = MSGTR_Unknown;
- demux_mkv_get_sub_lang(mpctx->demuxer, dvdsub_id, lang, 9);
+ if ((mpctx->demuxer->type == DEMUXER_TYPE_MATROSKA
+ || mpctx->demuxer->type == DEMUXER_TYPE_LAVF
+ || mpctx->demuxer->type == DEMUXER_TYPE_OGG)
+ && d_sub && d_sub->sh && dvdsub_id >= 0) {
+ const char* lang = ((sh_sub_t*)d_sub->sh)->lang;
+ if (!lang) lang = MSGTR_Unknown;
snprintf(*(char **) arg, 63, "(%d) %s", dvdsub_id, lang);
return M_PROPERTY_OK;
}
-#ifdef HAVE_OGGVORBIS
- if (mpctx->demuxer->type == DEMUXER_TYPE_OGG && d_sub && dvdsub_id >= 0) {
- const char *lang = demux_ogg_sub_lang(mpctx->demuxer, dvdsub_id);
- if (!lang)
- lang = MSGTR_Unknown;
- snprintf(*(char **) arg, 63, "(%d) %s", dvdsub_id, lang);
- return M_PROPERTY_OK;
- }
-#endif
+
if (vo_vobsub && vobsub_id >= 0) {
const char *language = MSGTR_Unknown;
language = vobsub_get_id(vo_vobsub, (unsigned int) vobsub_id);