From 68613bbee71c87fa321fff8827837d7ce4d02581 Mon Sep 17 00:00:00 2001 From: ptt Date: Wed, 11 Oct 2006 17:25:46 +0000 Subject: added OSD audio switching visualization git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20162 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demux_mkv.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'libmpdemux/demux_mkv.c') diff --git a/libmpdemux/demux_mkv.c b/libmpdemux/demux_mkv.c index cc25d712f3..4ebc707b1e 100644 --- a/libmpdemux/demux_mkv.c +++ b/libmpdemux/demux_mkv.c @@ -3954,6 +3954,40 @@ demux_mkv_get_sub_lang(demuxer_t *demuxer, int track_num, char *lang, } } +/** \brief Get the language code for an audio track. + + Retrieves the language code for an audio track if it is known. + If the language code is "und" then do not copy it ("und" = "undefined"). + + \param demuxer The demuxer to work on + \param track_num The n'th audio track to get the language from + \param lang Store the language here + \param maxlen The maximum number of characters to copy into lang +*/ +void +demux_mkv_get_audio_lang(demuxer_t *demuxer, int track_num, char *lang, + int maxlen) +{ + mkv_demuxer_t *mkv_d = (mkv_demuxer_t *) demuxer->priv; + mkv_track_t *track; + int i, num; + + num = 0; + for (i = 0; i < mkv_d->num_tracks; i++) + { + track = mkv_d->tracks[i]; + if (track->type == MATROSKA_TRACK_AUDIO) + num++; + if (num == (track_num + 1)) + { + if ((track->language != NULL) && + strcmp(track->language, "und")) + strlcpy(lang, track->language, maxlen); + return; + } + } +} + demuxer_desc_t demuxer_desc_matroska = { "Matroska demuxer", -- cgit v1.2.3