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);