Open demuxers for external audio files. Update the SelectionStream. Adapt all relevant places where m_pDemuxer is used; in particular ReadPacket(...) and add ReadExternalAudioPacket(...)
Adapt DVDFileInfo so that it reads infos also from external audio files (e.g. language and channels).
Only apply Seek and SetSpeed to the actually active external demuxer to speed things up.
Fix seeking chapters while having an ext. audio track selected.
(External) audio tracks don't have chapters, so we have to use SeekTime().
Set the external audio stream language from its filename if the language isn't set already.
Adapt DVDFileInfo so that it reads the language from external subtitles files.
Add VideoPlayer.AudioLanguage infolabel that returns full language name of current audio track, "unknown" localized string or empty string if no audio track is available or video isn't playing currently.
Add language recognition for external audio files to DVDFileInfo.
Set the stream name of dvd audio tracks properly/consistent with other audio streams.
To achieve this make use of dvdnav_audio_stream_channels(...) and dvdnav_audio_stream_format(...).
Set the stream language of dvd audio tracks properly/consistent with other audio streams, i.e. set it to a three char code.
Don't set the language as the stream name.
Properly set the number of channels of a dvd audio stream.
Set the stream name of dvd subtitle tracks properly/consistent with other streams; in particular don't use the language for the name.
Set the stream language of dvd subtitles properly/consistent with other streams, i.e. set it to a three char code.
Don't return "unknown" if a audio/subtitle stream has no name set, return an empty string instead.
Bring CDVDPlayer::GetSubtitleLanguage(...) in line with CDVDPlayer::GetAudioStreamLanguage(...), i.e., return a three char code if possible.
Add logic to GUIDialogAudioSubtitleSettings in order to show the language of audio tracks.
Adapt the representation of subtitles.
Use a three char codes. These are also used for the subtitle priority evaluation, cf. PredicateSubtitlePriority(...) at DVDPlayer.cpp.
The name of a stream should not be set to its language.