summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demux_mkv.c
diff options
context:
space:
mode:
authormosu <mosu@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-08-24 21:37:41 +0000
committermosu <mosu@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-08-24 21:37:41 +0000
commit51fe7e4a6a26119d975b3a84b6e8e5f4e9d636bd (patch)
treeb519e3561d6336a9d394b51468da2955e1fb9e99 /libmpdemux/demux_mkv.c
parent36f2212fe22eef76852133ba3ed65235b97f8d3f (diff)
downloadmpv-51fe7e4a6a26119d975b3a84b6e8e5f4e9d636bd.tar.bz2
mpv-51fe7e4a6a26119d975b3a84b6e8e5f4e9d636bd.tar.xz
Display the language code for subtitles from Matroska files.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@13130 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/demux_mkv.c')
-rw-r--r--libmpdemux/demux_mkv.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/libmpdemux/demux_mkv.c b/libmpdemux/demux_mkv.c
index bdadcd6e2d..611a30afff 100644
--- a/libmpdemux/demux_mkv.c
+++ b/libmpdemux/demux_mkv.c
@@ -3217,4 +3217,38 @@ demux_mkv_change_subs (demuxer_t *demuxer, int new_num)
return track->tnum;
}
+/** \brief Get the language code for a subtitle track.
+
+ Retrieves the language code for a subtitle 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 subtitle 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_sub_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_SUBTITLE)
+ num++;
+ if (num == (track_num + 1))
+ {
+ if ((track->language != NULL) &&
+ strcmp(track->language, "und"))
+ strncpy(lang, track->language, maxlen);
+ return;
+ }
+ }
+}
+
#endif /* HAVE_MATROSKA */