Mercurial > mplayer.hg
diff command.c @ 26084:ec5749eb6f5f
Fill sh_sub_t.lang in lavf, mkv and ogg demuxers. Use it for printing subtitle
track language.
author | eugeni |
---|---|
date | Fri, 29 Feb 2008 17:25:39 +0000 |
parents | 19fa7a56ed04 |
children | 7470a625bbdd |
line wrap: on
line diff
--- a/command.c Fri Feb 29 17:25:37 2008 +0000 +++ b/command.c Fri Feb 29 17:25:39 2008 +0000 @@ -1296,8 +1296,6 @@ } } -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 @@ } #endif -#ifdef USE_LIBAVFORMAT - if (mpctx->demuxer->type == DEMUXER_TYPE_LAVF && dvdsub_id >= 0) { - char *lang = demux_lavf_sub_lang(mpctx->demuxer, dvdsub_id); + 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; } -#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); - 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);