public void SetDefaults() { FilterList.Clear(); //FilterList[new Guid("")] = new KnownCOMObject("", "", new Guid("")); FilterList[new Guid("{171252A0-8820-4AFE-9DF8-5C92B2D66B04}")] = new KnownCOMObject("LAV Splitter", "LAV\\LAVSplitter.ax", new Guid("{171252A0-8820-4AFE-9DF8-5C92B2D66B04}")); FilterList[new Guid("{B98D13E7-55DB-4385-A33D-09FD1BA26338}")] = new KnownCOMObject("LAV Splitter Source", "LAV\\LAVSplitter.ax", new Guid("{B98D13E7-55DB-4385-A33D-09FD1BA26338}")); FilterList[new Guid("{E8E73B6B-4CB3-44A4-BE99-4F7BCB96E491}")] = new KnownCOMObject("LAV Audio Decoder", "LAV\\LAVAudio.ax", new Guid("{E8E73B6B-4CB3-44A4-BE99-4F7BCB96E491}")); FilterList[new Guid("{EE30215D-164F-4A92-A4EB-9D4C13390F9F}")] = new KnownCOMObject("LAV Video Decoder", "LAV\\LAVVideo.ax", new Guid("{EE30215D-164F-4A92-A4EB-9D4C13390F9F}")); FilterList[new Guid("{E1A8B82A-32CE-4B0D-BE0D-AA68C772E423}")] = new KnownCOMObject("madVR", "madVR\\madVR.ax", new Guid("{E1A8B82A-32CE-4B0D-BE0D-AA68C772E423}")); FilterList[new Guid("{2DFCB782-EC20-4A7C-B530-4577ADB33F21}")] = new KnownCOMObject("XySubFilter", "XySubFilter\\XySubFilter.dll", new Guid("{2DFCB782-EC20-4A7C-B530-4577ADB33F21}")); FilterList[new Guid("{5325DF1C-6F10-4292-B8FB-BE855F99F88A}")] = new KnownCOMObject("EVR Presenter (babgvant)", "babgvant\\EVRPresenter.dll", new Guid("{5325DF1C-6F10-4292-B8FB-BE855F99F88A}")); FilterList[new Guid("{EC9ED6FC-7B03-4CB6-8C01-4EABE109F26B}")] = new KnownCOMObject("MP Audio Renderer", "mpaudio\\mpaudiorenderer.ax", new Guid("{EC9ED6FC-7B03-4CB6-8C01-4EABE109F26B}")); }
public object GetObject(KnownCOMObject kf, bool comFallback) { try { return this.CreateObjectFromPath(kf.ObjectPath, kf.Clsid, true, comFallback); } catch (COMException ex) { throw ex; } catch (Exception ex) { Console.WriteLine("Could not load {0} - {1}: {2}", kf.Clsid, kf.ObjectPath, ex.Message); return null; } }
public object GetObject(KnownCOMObject kf, bool comFallback) { try { //TODO: might be better to call _mreFilterBlock.WaitOne with a small value (e.g. 1000) and surface an actionalbe result if it fails so the UI can signal a potentially long running process if (_mreFilterBlock.WaitOne(_mbtConfig.Configuration.InternalPlayerConfiguration.COMConfig.LoadWait)) { _logger.Debug("URCOMLoader is not blocking"); return this.CreateObjectFromPath(kf.ObjectPath, kf.Clsid, true, comFallback); } else { _logger.Debug("URCOMLoader is blocking, failed to load object"); return null; } } catch (COMException ex) { throw ex; } catch (Exception ex) { Console.WriteLine("Could not load {0} - {1}: {2}", kf.Clsid, kf.ObjectPath, ex.Message); return null; } }