Index: libs/libmythtv/NuppelVideoPlayer.cpp =================================================================== --- libs/libmythtv/NuppelVideoPlayer.cpp (revision 22885) +++ libs/libmythtv/NuppelVideoPlayer.cpp (working copy) @@ -6848,8 +6848,13 @@ QString msg = ""; if (decoder) + { msg = decoder->GetTrackDesc(type, GetTrack(type)); + if (player_ctx->buffer->isDVD()) + player_ctx->buffer->DVD()->SetTrack(type, trackNo); + } + if (osd) osd->SetSettingsText(msg, 3); } Index: libs/libmythtv/avformatdecoder.cpp =================================================================== --- libs/libmythtv/avformatdecoder.cpp (revision 22885) +++ libs/libmythtv/avformatdecoder.cpp (working copy) @@ -1562,6 +1562,7 @@ int AvFormatDecoder::ScanStreams(bool novideo) { int scanerror = 0; + int audiostreamcnt = 0; bitrate = 0; fps = 0; @@ -1936,7 +1937,15 @@ if (enc->codec_type == CODEC_TYPE_AUDIO) { - int lang = get_canonical_lang(ic->streams[i]->language); + int lang; + if (ringBuffer && ringBuffer->isDVD()) + { + lang = ringBuffer->DVD()->GetAudioLanguage(audiostreamcnt++); + } + else + { + lang = get_canonical_lang(ic->streams[i]->language); + } int lang_indx = lang_aud_cnt[lang]; lang_aud_cnt[lang]++; @@ -1973,8 +1982,6 @@ { if (tracks[kTrackTypeAudio].size() > 1) { - stable_sort(tracks[kTrackTypeAudio].begin(), - tracks[kTrackTypeAudio].end()); sinfo_vec_t::iterator it = tracks[kTrackTypeAudio].begin(); for (; it != tracks[kTrackTypeAudio].end(); ++it) { @@ -1983,8 +1990,6 @@ "Stream id #%1 ") .arg(it->stream_id)); } - stable_sort(tracks[kTrackTypeAudio].begin(), - tracks[kTrackTypeAudio].end()); int trackNo = ringBuffer->DVD()->GetTrack(kTrackTypeAudio); if (trackNo >= (int)GetTrackCount(kTrackTypeAudio)) trackNo = GetTrackCount(kTrackTypeAudio) - 1; @@ -3146,10 +3151,11 @@ for (uint i = 0; i < numStreams; i++) { if (wlang == atracks[i].language) + { selTrack = i; - - if (windx == atracks[i].language_index) - break; + if (windx == atracks[i].language_index) + break; + } } }