Beispiel #1
0
        /// <summary>
        /// Checks if the fileName has a video or not
        /// </summary>
        /// <param name="fileName">Filename to check</param>
        /// <returns>true, when file or stream has a video</returns>
        public bool HasFileOrStreamVideo(String fileName)
        {
            bool isVideo = false;

            if (fileName.StartsWith("dvd://"))
            {
                isVideo = true;
            }
            else if (fileName.StartsWith("dvdnav://"))
            {
                isVideo = true;
            }
            else if (fileName.StartsWith("vcd://"))
            {
                isVideo = true;
            }
            else if (fileName.StartsWith("svcd://"))
            {
                isVideo = true;
            }
            else if (fileName.StartsWith("cue://") ||
                     fileName.StartsWith("ftp://") ||
                     fileName.StartsWith("http://") ||
                     fileName.StartsWith("http_proxy://") ||
                     fileName.StartsWith("mms://") ||
                     fileName.StartsWith("mmst://") ||
                     fileName.StartsWith("mpst://") ||
                     fileName.StartsWith("rtp://") ||
                     fileName.StartsWith("rtsp://") ||
                     fileName.StartsWith("sdp://") ||
                     fileName.StartsWith("udp://") ||
                     fileName.StartsWith("unsv://"))
            {
                if (_extensionSettings.ContainsKey(System.IO.Path.GetExtension(fileName)))
                {
                    isVideo = _extensionSettings[System.IO.Path.GetExtension(fileName)].PlayMode == PlayMode.Video;
                }
                else
                {
                    isVideo = true;
                }
            }
            else if (fileName.EndsWith(".cda"))
            {
            }
            else
            {
                ExtensionSettings extSettings = _extensionSettings[System.IO.Path.GetExtension(fileName).Trim().ToLower()];
                isVideo = (extSettings.PlayMode == PlayMode.Video);
            }
            return(isVideo);
        }
Beispiel #2
0
        /// <summary>
        /// Loads the Plugin specific XML configuration file
        /// </summary>
        private static void LoadXMLData()
        {
            ExtensionSettings settings;
            PlayMode          mode = PlayMode.Unrecognized;
            XmlDocument       doc  = new XmlDocument();
            string            path = Config.GetFile(Config.Dir.Config, "MPlayer_ExtPlayer.xml");

            doc.Load(path);
            if (doc.DocumentElement != null)
            {
                XmlNodeList listExtensionFamilies = doc.DocumentElement.SelectNodes("/mplayer/extensions");
                if (listExtensionFamilies != null)
                {
                    foreach (XmlNode nodeFamily in listExtensionFamilies)
                    {
                        if (nodeFamily.Attributes["family"].Value.Equals("Video"))
                        {
                            mode = PlayMode.Video;
                        }
                        else if (nodeFamily.Attributes["family"].Value.Equals("Audio"))
                        {
                            mode = PlayMode.Audio;
                        }
                        XmlNodeList listExtensions = nodeFamily.SelectNodes("Extension");
                        if (listExtensions != null)
                        {
                            foreach (XmlNode nodeExtension in listExtensions)
                            {
                                settings              = new ExtensionSettings();
                                settings.Name         = nodeExtension.Attributes["name"].Value;
                                settings.Arguments    = nodeExtension.Attributes["arguments"].Value;
                                settings.ExtPlayerUse = Boolean.Parse(nodeExtension.Attributes["extPlayerUse"].Value);
                                settings.PlayMode     = mode;
                                if (!_extensionSettings.ContainsKey(settings.Name))
                                {
                                    _extensionSettings.Add(settings.Name, settings);
                                    if (settings.ExtPlayerUse)
                                    {
                                        _extensionSettingsExtPlayer.Add(settings.Name, settings);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
 /// <summary>
 /// Loads the Plugin specific XML configuration file
 /// </summary>
 private static void LoadXMLData()
 {
     ExtensionSettings settings;
       PlayMode mode = PlayMode.Unrecognized;
       XmlDocument doc = new XmlDocument();
       string path = Config.GetFile(Config.Dir.Config, "MPlayer_ExtPlayer.xml");
       doc.Load(path);
       if (doc.DocumentElement != null)
       {
     XmlNodeList listExtensionFamilies = doc.DocumentElement.SelectNodes("/mplayer/extensions");
     if (listExtensionFamilies != null)
       foreach (XmlNode nodeFamily in listExtensionFamilies)
       {
     if (nodeFamily.Attributes["family"].Value.Equals("Video"))
     {
       mode = PlayMode.Video;
     }
     else if (nodeFamily.Attributes["family"].Value.Equals("Audio"))
     {
       mode = PlayMode.Audio;
     }
     XmlNodeList listExtensions = nodeFamily.SelectNodes("Extension");
     if (listExtensions != null)
       foreach (XmlNode nodeExtension in listExtensions)
       {
         settings = new ExtensionSettings();
         settings.Name = nodeExtension.Attributes["name"].Value;
         settings.Arguments = nodeExtension.Attributes["arguments"].Value;
         settings.ExtPlayerUse = Boolean.Parse(nodeExtension.Attributes["extPlayerUse"].Value);
         settings.PlayMode = mode;
         if (!_extensionSettings.ContainsKey(settings.Name))
         {
           _extensionSettings.Add(settings.Name, settings);
           if (settings.ExtPlayerUse)
           {
             _extensionSettingsExtPlayer.Add(settings.Name, settings);
           }
         }
       }
       }
       }
 }
        /// <summary>
        /// Reads the whole configuration
        /// </summary>
        private void ReadConfig()
        {
            try
              {
            ExtensionSettings mplayerSetting = new ExtensionSettings(".mplayer", PlayMode.Unrecognized, "", true);
            _extensionSettings = new Dictionary<string, ExtensionSettings>();
            _extensionSettings.Add(mplayerSetting.Name, mplayerSetting);
            _extensionSettingsExtPlayer = new Dictionary<string, ExtensionSettings>();
            _extensionSettingsExtPlayer.Add(mplayerSetting.Name, mplayerSetting);
            ExtensionSettings settings;
            using (MediaPortal.Profile.Settings xmlreader = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml")))
            {
              _osdMode = (OSDMode)xmlreader.GetValueAsInt("mplayer", "osd", (int)OSDMode.InternalMPlayer);
              _rebuildIndex = xmlreader.GetValueAsBool("mplayer", "rebuildIndex", false);
              _priorityBoost = xmlreader.GetValueAsBool("mplayer", "priorityBoost", true);
              _framedrop = xmlreader.GetValueAsBool("mplayer", "framedrop", false);
              _doubleBuffering = xmlreader.GetValueAsBool("mplayer", "doubleBuffering", true);
              _directRendering = xmlreader.GetValueAsBool("mplayer", "directRendering", true);
              _audioNormalize = xmlreader.GetValueAsBool("mplayer", "audioNormalize", false);
              _passthroughAC3_DTS = xmlreader.GetValueAsBool("mplayer", "passthroughAC3DTS", false);
              _soundOutputDriver = (SoundOutputDriver)xmlreader.GetValueAsInt("mplayer", "soundOutputDriver", (int)SoundOutputDriver.DirectSound);
              _soundOutputDevice = xmlreader.GetValueAsInt("mplayer", "soundOutputDevice", 0);
              _deinterlace = (Deinterlace)xmlreader.GetValueAsInt("mplayer", "deinterlace", (int)Deinterlace.Adaptive);
              _aspectRatio = (AspectRatio)xmlreader.GetValueAsInt("mplayer", "aspectRatio", (int)AspectRatio.Automatic);
              _postProcessing = (PostProcessing)xmlreader.GetValueAsInt("mplayer", "postProcessing", (int)PostProcessing.Maximum);
              _audioChannels = (AudioChannels)xmlreader.GetValueAsInt("mplayer", "audioChannels", (int)AudioChannels.Default);
              _noiseDenoise = (NoiseDenoise)xmlreader.GetValueAsInt("mplayer", "noise", (int)NoiseDenoise.Nothing);
              _cacheSize = xmlreader.GetValueAsInt("mplayer", "cacheSize", 0);
              _audioDelayStep = xmlreader.GetValueAsInt("mplayer", "audioDelayStep", 100);
              _subtitleDelayStep = xmlreader.GetValueAsInt("mplayer", "subtitleDelayStep", 100);
              _subtitlePosition = xmlreader.GetValueAsInt("mplayer", "subtitlePosition", 100);
              _subtitleSize = xmlreader.GetValueAsInt("mplayer", "subtitleSize", 5);
              string subtitleFontName = xmlreader.GetValueAsString("mplayer", "subtitleFontName", "Arial");
              _subtitleFontSet = CheckSubtitleFont(subtitleFontName, out _subtitleFontFileName);
              _mplayerPath = xmlreader.GetValueAsString("mplayer", "mplayerPath", "C:\\Program Files\\MPlayer\\");
              xmlreader.GetValueAsString("mplayer", "mplayerPath", "C:\\Program Files\\MPlayer\\Mplayer.exe");
              string arguments = xmlreader.GetValueAsString("mplayer", "generalArguments", "");
              settings = new ExtensionSettings("general", PlayMode.Unrecognized, arguments, false);
              _extensionSettings.Add(settings.Name, settings);
              arguments = xmlreader.GetValueAsString("mplayer", "dvdArguments", String.Empty);
              settings = new ExtensionSettings("dvd://", PlayMode.Video, arguments, false);
              _extensionSettings.Add(settings.Name, settings);
              arguments = xmlreader.GetValueAsString("mplayer", "vcdArguments", String.Empty);
              settings = new ExtensionSettings("vcd://", PlayMode.Video, arguments, false);
              _extensionSettings.Add(settings.Name, settings);
              arguments = xmlreader.GetValueAsString("mplayer", "svcdArguments", String.Empty);
              settings = new ExtensionSettings("svcd://", PlayMode.Video, arguments, false);
              _extensionSettings.Add(settings.Name, settings);
              arguments = xmlreader.GetValueAsString("mplayer", "cueArguments", String.Empty);
              settings = new ExtensionSettings("cue://", PlayMode.Unrecognized, arguments, false);
              _extensionSettings.Add(settings.Name, settings);
              arguments = xmlreader.GetValueAsString("mplayer", "ftpArguments", String.Empty);
              settings = new ExtensionSettings("ftp://", PlayMode.Unrecognized, arguments, false);
              _extensionSettings.Add(settings.Name, settings);
              arguments = xmlreader.GetValueAsString("mplayer", "httpArguments", String.Empty);
              settings = new ExtensionSettings("http://", PlayMode.Unrecognized, arguments, false);
              _extensionSettings.Add(settings.Name, settings);
              settings = new ExtensionSettings("http_proxy://", PlayMode.Unrecognized, arguments, false);
              _extensionSettings.Add(settings.Name, settings);
              arguments = xmlreader.GetValueAsString("mplayer", "mmsArguments", String.Empty);
              settings = new ExtensionSettings("mms://", PlayMode.Unrecognized, arguments, false);
              _extensionSettings.Add(settings.Name, settings);
              settings = new ExtensionSettings("mmst://", PlayMode.Unrecognized, arguments, false);
              _extensionSettings.Add(settings.Name, settings);
              arguments = xmlreader.GetValueAsString("mplayer", "mpstArguments", String.Empty);
              settings = new ExtensionSettings("mpst://", PlayMode.Unrecognized, arguments, false);
              _extensionSettings.Add(settings.Name, settings);
              arguments = xmlreader.GetValueAsString("mplayer", "rtspArguments", String.Empty);
              settings = new ExtensionSettings("rtsp://", PlayMode.Unrecognized, arguments, false);
              _extensionSettings.Add(settings.Name, settings);
              settings = new ExtensionSettings("rtp://", PlayMode.Unrecognized, arguments, false);
              _extensionSettings.Add(settings.Name, settings);
              arguments = xmlreader.GetValueAsString("mplayer", "sdpArguments", String.Empty);
              settings = new ExtensionSettings("sdp://", PlayMode.Unrecognized, arguments, false);
              _extensionSettings.Add(settings.Name, settings);
              arguments = xmlreader.GetValueAsString("mplayer", "udpArguments", String.Empty);
              settings = new ExtensionSettings("udp://", PlayMode.Unrecognized, arguments, false);
              _extensionSettings.Add(settings.Name, settings);
              arguments = xmlreader.GetValueAsString("mplayer", "unsvArguments", String.Empty);
              settings = new ExtensionSettings("unsv://", PlayMode.Unrecognized, arguments, false);
              _extensionSettings.Add(settings.Name, settings);
              _enableSubtitles = xmlreader.GetValueAsBool("mplayer", "enableSubtitles", false);
              _videoOutputDriver = (VideoOutputDriver)xmlreader.GetValueAsInt("mplayer", "videoOutputDriver", (int)VideoOutputDriver.DirectX);
              string timeout = (xmlreader.GetValueAsString("movieplayer", "skipsteptimeout", "1500"));

              if (timeout == string.Empty)
            _seekStepTimeout = 1500;
              else
            _seekStepTimeout = Convert.ToInt16(timeout);

              String m_strLanguage = xmlreader.GetValueAsString("skin", "language", "English");
              LocalizeStrings.Load(m_strLanguage);
            }
            LoadXMLData();
              }
              catch (Exception e)
              {
            Log.Error(e);
              }
              _supportedExtensions = new String[_extensionSettingsExtPlayer.Count];
              _extensionSettingsExtPlayer.Keys.CopyTo(_supportedExtensions, 0);
        }
Beispiel #5
0
        /// <summary>
        /// Creates a process object and sets the starting _arguments
        /// </summary>
        /// <param name="fileName">FileName that should be started</param>
        /// <param name="handle">Handle of inner panel</param>
        /// <returns>UpdateGUI object</returns>
        public Process CreateProcessForFileName(String fileName, IntPtr handle)
        {
            Process mplayerProcess = new Process();

            mplayerProcess.StartInfo.UseShellExecute        = false;
            mplayerProcess.StartInfo.RedirectStandardInput  = true;
            mplayerProcess.StartInfo.RedirectStandardOutput = true;
            mplayerProcess.StartInfo.WorkingDirectory       = System.IO.Path.GetDirectoryName(_mplayerPath);
            mplayerProcess.StartInfo.FileName = _mplayerPath;
            StringBuilder arguments = GetGeneralArguments(handle, fileName.StartsWith("dvdnav://"));

            if (fileName.StartsWith("dvd://"))
            {
                String file = fileName.Substring(6);
                arguments.Append(_extensionSettings["dvd://"].Arguments);
                arguments.Append(" -dvd-device \"");
                arguments.Append(file);
                arguments.Append("\"");
                arguments.Append(" -alang ");
                arguments.Append(CultureInfo.CurrentCulture.TwoLetterISOLanguageName);
                arguments.Append(" -slang ");
                arguments.Append(CultureInfo.CurrentCulture.TwoLetterISOLanguageName);
                arguments.Append(" dvd://");
            }
            else if (fileName.StartsWith("dvdnav://"))
            {
                String file = fileName.Substring(9);
                arguments.Append(_extensionSettings["dvd://"].Arguments);
                arguments.Append(" -dvd-device \"");
                arguments.Append(file);
                arguments.Append("\"");
                arguments.Append(" -alang ");
                arguments.Append(CultureInfo.CurrentCulture.TwoLetterISOLanguageName);
                arguments.Append(" -slang ");
                arguments.Append(CultureInfo.CurrentCulture.TwoLetterISOLanguageName);
                arguments.Append(" dvdnav://");
            }
            else if (fileName.StartsWith("vcd://"))
            {
                String file = fileName.Substring(6);
                arguments.Append(_extensionSettings["vcd://"].Arguments);
                arguments.Append(" \"vcd://");
                arguments.Append(file);
                arguments.Append("\" ");
            }
            else if (fileName.StartsWith("svcd://"))
            {
                String file = fileName.Substring(7);
                arguments.Append(_extensionSettings["svcd://"].Arguments);
                arguments.Append(" \"vcd://");
                arguments.Append(file);
                arguments.Append("\" ");
            }
            else if (fileName.StartsWith("cue://") ||
                     fileName.StartsWith("ftp://") ||
                     fileName.StartsWith("http://") ||
                     fileName.StartsWith("http_proxy://") ||
                     fileName.StartsWith("mms://") ||
                     fileName.StartsWith("mmst://") ||
                     fileName.StartsWith("mpst://") ||
                     fileName.StartsWith("rtp://") ||
                     fileName.StartsWith("rtsp://") ||
                     fileName.StartsWith("sdp://") ||
                     fileName.StartsWith("udp://") ||
                     fileName.StartsWith("unsv://"))
            {
                int    index    = fileName.IndexOf("://");
                String file     = fileName.Substring(index + 3);
                String protocol = fileName.Substring(0, index + +3).ToLower();
                Log.Info("MPlayer: StreamProtocol: " + protocol);
                Log.Info("MPlayer: StremFilename: " + file);
                arguments.Append(_extensionSettings[protocol].Arguments);
                if (_extensionSettings.ContainsKey(System.IO.Path.GetExtension(fileName)))
                {
                    arguments.Append(_extensionSettings[System.IO.Path.GetExtension(fileName)].Arguments);
                }
                arguments.Append(" \"");
                arguments.Append(protocol);
                arguments.Append(file);
                arguments.Append("\" ");
            }
            else if (fileName.EndsWith(".cda"))
            {
                String drive = System.IO.Path.GetDirectoryName(fileName);
                if (drive.EndsWith("\\"))
                {
                    drive = drive.Substring(0, drive.Length - 1);
                }
                String trackNumber = System.IO.Path.GetFileNameWithoutExtension(fileName).Substring(5);
                arguments.Append(_extensionSettings[".cda"].Arguments);
                arguments.Append(" cdda://");
                arguments.Append(trackNumber);
                arguments.Append(" -cdrom-device ");
                arguments.Append(drive);
                arguments.Append(" ");
            }
            else
            {
                ExtensionSettings extSettings = _extensionSettings[System.IO.Path.GetExtension(fileName).Trim().ToLower()];
                arguments.Append(extSettings.Arguments);
                arguments.Append(" \"");
                arguments.Append(fileName);
                arguments.Append("\" ");
            }
            arguments.Append(GetScreenArguments());
            Log.Info("MPlayer: All Arguments: " + arguments);
            mplayerProcess.StartInfo.Arguments      = arguments.ToString();
            mplayerProcess.StartInfo.CreateNoWindow = true;
            mplayerProcess.EnableRaisingEvents      = true;
            return(mplayerProcess);
        }
Beispiel #6
0
        /// <summary>
        /// Reads the whole configuration
        /// </summary>
        private void ReadConfig()
        {
            try
            {
                ExtensionSettings mplayerSetting = new ExtensionSettings(".mplayer", PlayMode.Unrecognized, "", true);
                _extensionSettings = new Dictionary <string, ExtensionSettings>();
                _extensionSettings.Add(mplayerSetting.Name, mplayerSetting);
                _extensionSettingsExtPlayer = new Dictionary <string, ExtensionSettings>();
                _extensionSettingsExtPlayer.Add(mplayerSetting.Name, mplayerSetting);
                ExtensionSettings settings;
                using (MediaPortal.Profile.Settings xmlreader = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml")))
                {
                    _osdMode            = (OSDMode)xmlreader.GetValueAsInt("mplayer", "osd", (int)OSDMode.InternalMPlayer);
                    _rebuildIndex       = xmlreader.GetValueAsBool("mplayer", "rebuildIndex", false);
                    _priorityBoost      = xmlreader.GetValueAsBool("mplayer", "priorityBoost", true);
                    _framedrop          = xmlreader.GetValueAsBool("mplayer", "framedrop", false);
                    _doubleBuffering    = xmlreader.GetValueAsBool("mplayer", "doubleBuffering", true);
                    _directRendering    = xmlreader.GetValueAsBool("mplayer", "directRendering", true);
                    _audioNormalize     = xmlreader.GetValueAsBool("mplayer", "audioNormalize", false);
                    _passthroughAC3_DTS = xmlreader.GetValueAsBool("mplayer", "passthroughAC3DTS", false);
                    _soundOutputDriver  = (SoundOutputDriver)xmlreader.GetValueAsInt("mplayer", "soundOutputDriver", (int)SoundOutputDriver.DirectSound);
                    _soundOutputDevice  = xmlreader.GetValueAsInt("mplayer", "soundOutputDevice", 0);
                    _deinterlace        = (Deinterlace)xmlreader.GetValueAsInt("mplayer", "deinterlace", (int)Deinterlace.Adaptive);
                    _aspectRatio        = (AspectRatio)xmlreader.GetValueAsInt("mplayer", "aspectRatio", (int)AspectRatio.Automatic);
                    _postProcessing     = (PostProcessing)xmlreader.GetValueAsInt("mplayer", "postProcessing", (int)PostProcessing.Maximum);
                    _audioChannels      = (AudioChannels)xmlreader.GetValueAsInt("mplayer", "audioChannels", (int)AudioChannels.Default);
                    _noiseDenoise       = (NoiseDenoise)xmlreader.GetValueAsInt("mplayer", "noise", (int)NoiseDenoise.Nothing);
                    _cacheSize          = xmlreader.GetValueAsInt("mplayer", "cacheSize", 0);
                    _audioDelayStep     = xmlreader.GetValueAsInt("mplayer", "audioDelayStep", 100);
                    _subtitleDelayStep  = xmlreader.GetValueAsInt("mplayer", "subtitleDelayStep", 100);
                    _subtitlePosition   = xmlreader.GetValueAsInt("mplayer", "subtitlePosition", 100);
                    _subtitleSize       = xmlreader.GetValueAsInt("mplayer", "subtitleSize", 5);
                    string subtitleFontName = xmlreader.GetValueAsString("mplayer", "subtitleFontName", "Arial");
                    _subtitleFontSet = CheckSubtitleFont(subtitleFontName, out _subtitleFontFileName);
                    _mplayerPath     = xmlreader.GetValueAsString("mplayer", "mplayerPath", "C:\\Program Files\\MPlayer\\");
                    xmlreader.GetValueAsString("mplayer", "mplayerPath", "C:\\Program Files\\MPlayer\\Mplayer.exe");
                    string arguments = xmlreader.GetValueAsString("mplayer", "generalArguments", "");
                    settings = new ExtensionSettings("general", PlayMode.Unrecognized, arguments, false);
                    _extensionSettings.Add(settings.Name, settings);
                    arguments = xmlreader.GetValueAsString("mplayer", "dvdArguments", String.Empty);
                    settings  = new ExtensionSettings("dvd://", PlayMode.Video, arguments, false);
                    _extensionSettings.Add(settings.Name, settings);
                    arguments = xmlreader.GetValueAsString("mplayer", "vcdArguments", String.Empty);
                    settings  = new ExtensionSettings("vcd://", PlayMode.Video, arguments, false);
                    _extensionSettings.Add(settings.Name, settings);
                    arguments = xmlreader.GetValueAsString("mplayer", "svcdArguments", String.Empty);
                    settings  = new ExtensionSettings("svcd://", PlayMode.Video, arguments, false);
                    _extensionSettings.Add(settings.Name, settings);
                    arguments = xmlreader.GetValueAsString("mplayer", "cueArguments", String.Empty);
                    settings  = new ExtensionSettings("cue://", PlayMode.Unrecognized, arguments, false);
                    _extensionSettings.Add(settings.Name, settings);
                    arguments = xmlreader.GetValueAsString("mplayer", "ftpArguments", String.Empty);
                    settings  = new ExtensionSettings("ftp://", PlayMode.Unrecognized, arguments, false);
                    _extensionSettings.Add(settings.Name, settings);
                    arguments = xmlreader.GetValueAsString("mplayer", "httpArguments", String.Empty);
                    settings  = new ExtensionSettings("http://", PlayMode.Unrecognized, arguments, false);
                    _extensionSettings.Add(settings.Name, settings);
                    settings = new ExtensionSettings("http_proxy://", PlayMode.Unrecognized, arguments, false);
                    _extensionSettings.Add(settings.Name, settings);
                    arguments = xmlreader.GetValueAsString("mplayer", "mmsArguments", String.Empty);
                    settings  = new ExtensionSettings("mms://", PlayMode.Unrecognized, arguments, false);
                    _extensionSettings.Add(settings.Name, settings);
                    settings = new ExtensionSettings("mmst://", PlayMode.Unrecognized, arguments, false);
                    _extensionSettings.Add(settings.Name, settings);
                    arguments = xmlreader.GetValueAsString("mplayer", "mpstArguments", String.Empty);
                    settings  = new ExtensionSettings("mpst://", PlayMode.Unrecognized, arguments, false);
                    _extensionSettings.Add(settings.Name, settings);
                    arguments = xmlreader.GetValueAsString("mplayer", "rtspArguments", String.Empty);
                    settings  = new ExtensionSettings("rtsp://", PlayMode.Unrecognized, arguments, false);
                    _extensionSettings.Add(settings.Name, settings);
                    settings = new ExtensionSettings("rtp://", PlayMode.Unrecognized, arguments, false);
                    _extensionSettings.Add(settings.Name, settings);
                    arguments = xmlreader.GetValueAsString("mplayer", "sdpArguments", String.Empty);
                    settings  = new ExtensionSettings("sdp://", PlayMode.Unrecognized, arguments, false);
                    _extensionSettings.Add(settings.Name, settings);
                    arguments = xmlreader.GetValueAsString("mplayer", "udpArguments", String.Empty);
                    settings  = new ExtensionSettings("udp://", PlayMode.Unrecognized, arguments, false);
                    _extensionSettings.Add(settings.Name, settings);
                    arguments = xmlreader.GetValueAsString("mplayer", "unsvArguments", String.Empty);
                    settings  = new ExtensionSettings("unsv://", PlayMode.Unrecognized, arguments, false);
                    _extensionSettings.Add(settings.Name, settings);
                    _enableSubtitles   = xmlreader.GetValueAsBool("mplayer", "enableSubtitles", false);
                    _videoOutputDriver = (VideoOutputDriver)xmlreader.GetValueAsInt("mplayer", "videoOutputDriver", (int)VideoOutputDriver.DirectX);
                    string timeout = (xmlreader.GetValueAsString("movieplayer", "skipsteptimeout", "1500"));

                    if (timeout == string.Empty)
                    {
                        _seekStepTimeout = 1500;
                    }
                    else
                    {
                        _seekStepTimeout = Convert.ToInt16(timeout);
                    }

                    String m_strLanguage = xmlreader.GetValueAsString("skin", "language", "English");
                    LocalizeStrings.Load(m_strLanguage);
                }
                LoadXMLData();
            }
            catch (Exception e)
            {
                Log.Error(e);
            }
            _supportedExtensions = new String[_extensionSettingsExtPlayer.Count];
            _extensionSettingsExtPlayer.Keys.CopyTo(_supportedExtensions, 0);
        }