diff options
author | eugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2008-02-29 17:25:39 +0000 |
---|---|---|
committer | eugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2008-02-29 17:25:39 +0000 |
commit | a2fad60c7f92299aa3cf51c85e0491167287c517 (patch) | |
tree | 2c54b256ed6a2e29a8ada1795cdede036d071416 /command.c | |
parent | 18fea2aa498664c20a603d9b4fb07ffbae2056c5 (diff) | |
download | mpv-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.c | 28 |
1 files changed, 7 insertions, 21 deletions
@@ -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); |