Mercurial > mplayer.hg
diff libmpdemux/demux_mkv.cpp @ 10167:531b00ad6f2d
Support for selecting the audio track in Matroska files via -alang.
author | mosu |
---|---|
date | Fri, 23 May 2003 15:01:25 +0000 |
parents | bb1d5c054148 |
children | 02c2c05b7da6 |
line wrap: on
line diff
--- a/libmpdemux/demux_mkv.cpp Fri May 23 14:38:59 2003 +0000 +++ b/libmpdemux/demux_mkv.cpp Fri May 23 15:01:25 2003 +0000 @@ -55,6 +55,7 @@ // for e.g. "-slang ger" extern char *dvdsub_lang; +extern char *audio_lang; // default values for Matroska elements #define MKVD_TIMECODESCALE 1000000 // 1000000 = 1ms @@ -1503,13 +1504,19 @@ track = NULL; if (demuxer->audio->id == -1) { // Automatically select an audio track. - // Search for an audio track that has the 'default' flag set. - for (i = 0; i < mkv_d->num_tracks; i++) - if ((mkv_d->tracks[i]->type == 'a') && mkv_d->tracks[i]->ok && - mkv_d->tracks[i]->default_track) { - track = mkv_d->tracks[i]; - break; - } + // check if the user specified an audio language + if (audio_lang != NULL) { + track = find_track_by_language(mkv_d, audio_lang, NULL, 'a'); + } + if (track == NULL) + // no audio language specified, or language not found + // Search for an audio track that has the 'default' flag set. + for (i = 0; i < mkv_d->num_tracks; i++) + if ((mkv_d->tracks[i]->type == 'a') && mkv_d->tracks[i]->ok && + mkv_d->tracks[i]->default_track) { + track = mkv_d->tracks[i]; + break; + } if (track == NULL) // No track has the 'default' flag set - let's take the first audio