Index: Core/Player/VideoPlayerVMR7.cs
===================================================================
--- Core/Player/VideoPlayerVMR7.cs	(revision 26243)
+++ Core/Player/VideoPlayerVMR7.cs	(working copy)
@@ -1184,7 +1184,14 @@
       // For example Haali Media Splitter returns mkv streams as: "trackname [language]",
       // where "trackname" is stream's "trackname" property muxed in the mkv.
       Regex regex = new Regex(@"\[.+\]");
+      //Audio - English, Dolby Digital, 48.0 kHz, 6 chn, 640.0 kbit/s 
+      //Audio - Dolby TrueHD, 48.0 kHz, 6 chn, 640.0 kbit/s (1100,fd,00)
+      Regex regexMPS = new Regex(@"Audio\s*-\s*(?<1>.+?),\s*.+?,\s*.+?,\s*.+?,\s*.+", RegexOptions.IgnoreCase);
+      Regex regexMPC = new Regex("([^, ]+)");
       Match result = regex.Match(streamName);
+      Match resultMPS = regexMPS.Match(streamName);
+      Match resultMPC = regexMPC.Match(streamName);
+      
       if (result.Success)
       {
         //Cut off and translate the language part
@@ -1198,6 +1205,32 @@
           streamName = language;
         }
       }
+      else if (resultMPS.Success)
+      // check for mpegsplitter response format, e.g.:  
+      // Audio - English, Dolby Digital, 48.0 kHz, 6 chn, 640.0 kbit/s 
+      {
+        string language = Util.Utils.TranslateLanguageString(resultMPS.Groups[1].Value);
+        if (language.Length > 0)
+        {
+          streamName = language;
+        }
+      }
+      else if (resultMPC.Success)
+      // check for mpc-hc audio response format, e.g.: 
+      // English, DTS-HD MA core 1536k (Audio 1) - 48000 Hz, 6 channels dts (libavcodec)
+      {
+        string language = Util.Utils.TranslateLanguageString(resultMPC.Groups[1].Value);
+        if (language.Length > 0)
+        {
+          streamName = language;
+        }
+      }
+
+      // Remove extraneous info from splitter in parenthesis at end of line, e.g.:
+      // English, DTS-HD MA core 1536k (Audio 1) - 48000 Hz, 6 channels dts (libavcodec)
+      // Audio - Dolby TrueHD, 48.0 kHz, 6 chn, 640.0 kbit/s (1100,fd,00)
+      streamName = Regex.Replace(streamName, @"\(.+?\)$", "");
+      
       return streamName;
     }
 
@@ -1213,12 +1246,56 @@
       // For example Haali Media Splitter returns mkv streams as: "trackname [language]",
       // where "trackname" is stream's "trackname" property muxed in the mkv.
       Regex regex = new Regex(@"\[.+\]");
+      //Audio - English, Dolby Digital, 48.0 kHz, 6 chn, 640.0 kbit/s 
+      //Audio - Dolby TrueHD, 48.0 kHz, 6 chn, 640.0 kbit/s (1100,fd,00)
+      Regex regexMPS = new Regex(@"Audio\s*-\s*.+?,\s*(?<1>.+?,\s*.+?,\s*.+?,\s*.+)", RegexOptions.IgnoreCase);
+      Regex regexMPSNoLang = new Regex(@"Audio\s*-\s*(?<1>.+?,\s*.+?,\s*.+?,\s*.+)", RegexOptions.IgnoreCase);
+      Regex regexMPC = new Regex(@"\S+,\s+(?<1>.+)");
       Match result = regex.Match(streamName);
+      Match resultMPS = regexMPS.Match(streamName);
+      Match resultMPSNoLang = regexMPSNoLang.Match(streamName);
+      Match resultMPC = regexMPC.Match(streamName);
       if (result.Success)
       {
         //Get the trackname part by removing the language part from the string.
         streamName = regex.Replace(streamName, "").Trim();
       }
+      else if (resultMPS.Success)
+      // check for mpegsplitter response format, e.g.:  
+      // Audio - English, Dolby Digital, 48.0 kHz, 6 chn, 640.0 kbit/s 
+      {
+        string audioType = Util.Utils.TranslateLanguageString(resultMPS.Groups[1].Value);
+        if (audioType.Length > 0)
+        {
+          streamName = audioType;
+        }
+      }
+      else if (resultMPSNoLang.Success)
+      // check for mpegsplitter response format, e.g.:  
+      // Audio - Dolby Digital, 48.0 kHz, 6 chn, 640.0 kbit/s 
+      {
+        string audioType = Util.Utils.TranslateLanguageString(resultMPS.Groups[1].Value);
+        if (audioType.Length > 0)
+        {
+          streamName = audioType;
+        }
+      }
+      else if (resultMPC.Success)
+      // check for mpc-hc audio response format, e.g.: 
+      // English, DTS-HD MA core 1536k (Audio 1) - 48000 Hz, 6 channels dts (libavcodec)
+      {
+        string audioType = Util.Utils.TranslateLanguageString(resultMPC.Groups[1].Value);
+        if (audioType.Length > 0)
+        {
+          streamName = audioType;
+        }
+      }
+      
+      // Remove extraneous info from splitter in parenthesis at end of line, e.g.:
+      // English, DTS-HD MA core 1536k (Audio 1) - 48000 Hz, 6 channels dts (libavcodec)
+      // Audio - Dolby TrueHD, 48.0 kHz, 6 chn, 640.0 kbit/s (1100,fd,00)
+      streamName = Regex.Replace(streamName, @"\(.+?\)$", "");
+
       return streamName;
     }
 
@@ -1256,7 +1333,20 @@
       {
         streamName = result.Groups[1].Value;
       }
-
+      else 
+      {
+        // mpeg splitter subtitle format
+        Match m = Regex.Match(streamName, @"Subtitle\s+-\s+(?<1>.+?),", RegexOptions.IgnoreCase);
+        if (m.Success)
+        {
+          string language = Util.Utils.TranslateLanguageString(m.Groups[1].Value);
+          if (language.Length > 0)
+          {
+            streamName = language;
+          }
+        }
+      }
+      
       return streamName;
     }
 
@@ -1317,6 +1407,10 @@
                 filter = foundfilterinfos.achName;
                 int cStreams = 0;
                 pStrm.Count(out cStreams);
+                if (cStreams < 2)
+                {
+                  continue;
+                }
                 //GET STREAMS
                 for (int istream = 0; istream < cStreams; istream++)
                 {
Index: WindowPlugins/GUIVideoFiles/GUIVideoFullscreen.cs
===================================================================
--- WindowPlugins/GUIVideoFiles/GUIVideoFullscreen.cs	(revision 26243)
+++ WindowPlugins/GUIVideoFiles/GUIVideoFullscreen.cs	(working copy)
@@ -716,8 +716,19 @@
               GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_LABEL_SET, GetID, 0,
                                               (int)Control.LABEL_ROW1, 0, 0, null);
               g_Player.SwitchToNextAudio();
-              msg.Label = string.Format("{0} ({1}/{2})", g_Player.AudioLanguage(g_Player.CurrentAudioStream),
-                                        g_Player.CurrentAudioStream + 1, g_Player.AudioStreams);
+
+              String language = g_Player.AudioLanguage(g_Player.CurrentAudioStream);
+              if (String.Equals(language, "Audio") || String.Equals(language, ""))
+              {
+                msg.Label = string.Format("{0} ({1}/{2})", g_Player.AudioType(g_Player.CurrentAudioStream),
+                                          g_Player.CurrentAudioStream + 1, g_Player.AudioStreams);
+              }
+              else
+              {
+                msg.Label = string.Format("{0}, {1} ({2}/{3})", language, g_Player.AudioType(g_Player.CurrentAudioStream),
+                                          g_Player.CurrentAudioStream + 1, g_Player.AudioStreams);
+              }
+              
               OnMessage(msg);
               Log.Info("GUIVideoFullscreen: switched audio to {0}", msg.Label);
             }
