Player betoltes hiba javitva
authorelgekko <vasary@elgekko.net>
Tue, 13 Jun 2023 20:04:29 +0000 (22:04 +0200)
committerelgekko <vasary@elgekko.net>
Tue, 13 Jun 2023 20:04:29 +0000 (22:04 +0200)
client/DxPlay/Controls/PlayerControls.Designer.cs
client/DxPlay/Controls/PlayerControls.cs
client/DxPlay/FilterGraphTools.cs
client/DxPlay/PlayerForm.cs
client/DxPlay/PlayerGraph.cs

index e75b17a289539eca3b490b649592d5657e72011f..033027f9004b3aa356d44bbead8da4abac5e0d01 100644 (file)
@@ -53,8 +53,6 @@ namespace DxPlay.Controls
             this.btnStop = new MaestroShared.Controls.NoFocusCueButton();\r
             this.btnStepForward = new MaestroShared.Controls.NoFocusCueButton();\r
             this.btnForward = new MaestroShared.Controls.NoFocusCueButton();\r
-            this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();\r
-            this.audioLabel = new System.Windows.Forms.Label();\r
             this.audioTracks = new System.Windows.Forms.ComboBox();\r
             this.mainPanel.SuspendLayout();\r
             this.timecodePanel.SuspendLayout();\r
@@ -62,7 +60,6 @@ namespace DxPlay.Controls
             this.tableLayoutPanel2.SuspendLayout();\r
             ((System.ComponentModel.ISupportInitialize)(this.playSpeed)).BeginInit();\r
             this.buttonsPanel.SuspendLayout();\r
-            this.tableLayoutPanel1.SuspendLayout();\r
             this.SuspendLayout();\r
             // \r
             // mainPanel\r
@@ -80,7 +77,7 @@ namespace DxPlay.Controls
             this.mainPanel.RowStyles.Add(new System.Windows.Forms.RowStyle());\r
             this.mainPanel.RowStyles.Add(new System.Windows.Forms.RowStyle());\r
             this.mainPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 65F));\r
-            this.mainPanel.Size = new System.Drawing.Size(835, 165);\r
+            this.mainPanel.Size = new System.Drawing.Size(835, 156);\r
             this.mainPanel.TabIndex = 0;\r
             // \r
             // trackBar\r
@@ -214,17 +211,17 @@ namespace DxPlay.Controls
             this.controlsPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 400F));\r
             this.controlsPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));\r
             this.controlsPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 200F));\r
+            this.controlsPanel.Controls.Add(this.audioTracks, 0, 1);\r
             this.controlsPanel.Controls.Add(this.tableLayoutPanel2, 0, 0);\r
             this.controlsPanel.Controls.Add(this.logoPanel, 2, 0);\r
             this.controlsPanel.Controls.Add(this.buttonsPanel, 0, 0);\r
-            this.controlsPanel.Controls.Add(this.tableLayoutPanel1, 0, 1);\r
             this.controlsPanel.Dock = System.Windows.Forms.DockStyle.Fill;\r
             this.controlsPanel.Location = new System.Drawing.Point(3, 59);\r
             this.controlsPanel.Name = "controlsPanel";\r
             this.controlsPanel.RowCount = 2;\r
             this.controlsPanel.RowStyles.Add(new System.Windows.Forms.RowStyle());\r
             this.controlsPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 50F));\r
-            this.controlsPanel.Size = new System.Drawing.Size(829, 103);\r
+            this.controlsPanel.Size = new System.Drawing.Size(829, 94);\r
             this.controlsPanel.TabIndex = 21;\r
             // \r
             // tableLayoutPanel2\r
@@ -395,34 +392,6 @@ namespace DxPlay.Controls
             this.btnForward.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;\r
             this.btnForward.UseVisualStyleBackColor = false;\r
             // \r
-            // tableLayoutPanel1\r
-            // \r
-            this.tableLayoutPanel1.ColumnCount = 2;\r
-            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());\r
-            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));\r
-            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F));\r
-            this.tableLayoutPanel1.Controls.Add(this.audioLabel, 0, 0);\r
-            this.tableLayoutPanel1.Controls.Add(this.audioTracks, 1, 0);\r
-            this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;\r
-            this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 63);\r
-            this.tableLayoutPanel1.Name = "tableLayoutPanel1";\r
-            this.tableLayoutPanel1.RowCount = 1;\r
-            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));\r
-            this.tableLayoutPanel1.Size = new System.Drawing.Size(394, 44);\r
-            this.tableLayoutPanel1.TabIndex = 22;\r
-            // \r
-            // audioLabel\r
-            // \r
-            this.audioLabel.AutoSize = true;\r
-            this.audioLabel.Location = new System.Drawing.Point(2, 5);\r
-            this.audioLabel.Margin = new System.Windows.Forms.Padding(2, 5, 2, 0);\r
-            this.audioLabel.Name = "audioLabel";\r
-            this.audioLabel.Size = new System.Drawing.Size(34, 13);\r
-            this.audioLabel.TabIndex = 28;\r
-            this.audioLabel.Tag = "";\r
-            this.audioLabel.Text = "Audio";\r
-            this.audioLabel.Visible = false;\r
-            // \r
             // audioTracks\r
             // \r
             this.audioTracks.AllowDrop = true;\r
@@ -431,11 +400,11 @@ namespace DxPlay.Controls
             this.audioTracks.FormattingEnabled = true;\r
             this.audioTracks.IntegralHeight = false;\r
             this.audioTracks.ItemHeight = 13;\r
-            this.audioTracks.Location = new System.Drawing.Point(40, 2);\r
+            this.audioTracks.Location = new System.Drawing.Point(2, 62);\r
             this.audioTracks.Margin = new System.Windows.Forms.Padding(2);\r
             this.audioTracks.Name = "audioTracks";\r
-            this.audioTracks.Size = new System.Drawing.Size(352, 21);\r
-            this.audioTracks.TabIndex = 29;\r
+            this.audioTracks.Size = new System.Drawing.Size(396, 21);\r
+            this.audioTracks.TabIndex = 30;\r
             this.audioTracks.Visible = false;\r
             // \r
             // PlayerControls\r
@@ -446,7 +415,7 @@ namespace DxPlay.Controls
             this.Controls.Add(this.mainPanel);\r
             this.Margin = new System.Windows.Forms.Padding(0);\r
             this.Name = "PlayerControls";\r
-            this.Size = new System.Drawing.Size(835, 165);\r
+            this.Size = new System.Drawing.Size(835, 156);\r
             this.mainPanel.ResumeLayout(false);\r
             this.mainPanel.PerformLayout();\r
             this.timecodePanel.ResumeLayout(false);\r
@@ -457,8 +426,6 @@ namespace DxPlay.Controls
             ((System.ComponentModel.ISupportInitialize)(this.playSpeed)).EndInit();\r
             this.buttonsPanel.ResumeLayout(false);\r
             this.buttonsPanel.PerformLayout();\r
-            this.tableLayoutPanel1.ResumeLayout(false);\r
-            this.tableLayoutPanel1.PerformLayout();\r
             this.ResumeLayout(false);\r
 \r
         }        \r
@@ -486,8 +453,6 @@ namespace DxPlay.Controls
         private VideoSpeedTrackbar playSpeed;\r
         private System.Windows.Forms.Label lblPlaySpeed;\r
         private TableLayoutPanel tableLayoutPanel2;\r
-        private TableLayoutPanel tableLayoutPanel1;\r
-        private Label audioLabel;\r
         private ComboBox audioTracks;\r
     }\r
 }
\ No newline at end of file
index 1ff0bcbcd395b483865a0b4480dc5618cd58fad0..0a095dc3dff2367e91f02359bb30f908c1522cd7 100644 (file)
@@ -30,7 +30,6 @@ namespace DxPlay.Controls
         public NoFocusCueButton StepForward { get => btnStepForward; }\r
         public Label PlaySpeedLabel { get => lblPlaySpeed; }\r
         public VideoSpeedTrackbar PlaySpeed { get => playSpeed; }\r
-        public Label AudioLabel { get => audioLabel; }\r
         public ComboBox AudioTracks { get => audioTracks; }\r
 \r
     }\r
index 6c0ab3f602f940d44aec730804a7705b4120ac02..2d0f61cf167c3503142e721033b041e38fc663ea 100644 (file)
@@ -353,8 +353,6 @@ namespace DirectShowLib.Utils {
 \r
                 int pcFetched;\r
                 while (enumFilters.Next(filters.Length, filters, out pcFetched) == 0) {\r
-                    Guid clsid;\r
-\r
                     IFileSinkFilter fsf = filters[0] as IFileSinkFilter;\r
 \r
                     if (fsf != null) {\r
index 2dfb06da542dd5678d9e271b31b2f0f339539bfc..fdd86b664c74000b3bc82055e0771cecc40182d1 100644 (file)
@@ -216,7 +216,6 @@ namespace DxPlay {
             {\r
                 m_play.Graph.SearchAudioTracks(m_play.Graph.Splitter);\r
                 if (m_play.Graph.AudioCount > 1) { \r
-                    playerControls.AudioLabel.Visible = true;\r
                     m_play.Graph.AvailableAudioTracks = new List<string>(m_play.Graph.AudioCount);\r
                     m_play.Graph.SearchAudioTracks(m_play.Graph.Splitter);\r
                     playerControls.AudioTracks.DataSource = m_play.Graph.AvailableAudioTracks;\r
index b6e612b739fd0a3e6af72870bb9910f34c4d57db..eafa4f48a8ef9a54da2a2a26e8e8eaff7903df51 100644 (file)
@@ -24,10 +24,8 @@ namespace DxPlay {
         public List<string> AvailableAudioTracks { get; set; }\r
         public IBaseFilter Splitter { get; set; }\r
 \r
-        public PlayerGraph(string fileName, IntPtr handle, VideoRendererType rendererType)\r
-        {\r
-            try\r
-            {\r
+        public PlayerGraph(string fileName, IntPtr handle, VideoRendererType rendererType) {\r
+            try {\r
                 MediaSeeking = this as IMediaSeeking;\r
                 MediaControl = this as IMediaControl;\r
                 MediaEvent = this as IMediaEvent;\r
@@ -44,16 +42,14 @@ namespace DxPlay {
 \r
                 Splitter = AddSplitter(graphBuilder, sourceFilter);\r
                 bool audioOnly = true;\r
-                if (DsFindPin.ByName(Splitter, "Video") != null)\r
-                {\r
+                if (DsFindPin.ByName(Splitter, "Video") != null) {\r
                     audioOnly = false;\r
                     IBaseFilter videoDecoder = AddVideoDecoder(graphBuilder, Splitter);\r
                     EnableDeinterlace(videoDecoder);\r
                     IBaseFilter sampleGrabber = AddSampleGrabber(graphBuilder, videoDecoder);\r
                     SampleGrabber = (ISampleGrabber)sampleGrabber;\r
 \r
-                    switch (rendererType)\r
-                    {\r
+                    switch (rendererType) {\r
                         case VideoRendererType.VM7:\r
                             AddVM7Renderer(graphBuilder, sampleGrabber);\r
                             break;\r
@@ -71,51 +67,40 @@ namespace DxPlay {
                             break;\r
                     }\r
                     FilterGraphTools.RenderPin(graphBuilder, sampleGrabber, "Output");\r
-                    ConfigureSimpleRenderer(handle);                    \r
-                }\r
-                else\r
-                {\r
+                    ConfigureSimpleRenderer(handle);\r
+                } else {\r
                     logger.Warn("Video pin not available");\r
                 }\r
-                if (DsFindPin.ByName(Splitter, "Audio") != null)\r
-                {\r
+                if (DsFindPin.ByName(Splitter, "Audio") != null) {\r
                     IBaseFilter audioDecoder = AddAudioDecoder(graphBuilder, Splitter);\r
-                    if (audioOnly)\r
-                    {\r
+                    if (audioOnly) {\r
                         throw new Exception("Audio only file is not supported.");\r
                         //IBaseFilter sampleGrabber = AddSampleGrabber(graphBuilder, audioDecoder);\r
                         //SampleGrabber = (ISampleGrabber)sampleGrabber;\r
                         //FilterGraphTools.RenderPin(graphBuilder, sampleGrabber, "Output");\r
-                    }\r
-                    else\r
+                    } else\r
                         FilterGraphTools.RenderPin(graphBuilder, audioDecoder, "Output");\r
-                }\r
-                else\r
-                {\r
+                } else {\r
                     logger.Warn("Audio pin not available");\r
                 }\r
 \r
                 SearchAudioTracks(Splitter);\r
                 SetAudioTrack(0);\r
-            }\r
-            catch (Exception e)\r
-            {\r
+            } catch (Exception e) {\r
                 logger.Error(e.Message);\r
                 logger.Error(e.StackTrace);\r
                 throw e;\r
             }\r
         }\r
 \r
-        private void EnableDeinterlace(IBaseFilter videoDecoder)\r
-        {\r
+        private void EnableDeinterlace(IBaseFilter videoDecoder) {\r
             logger.Debug("Enable YADIF deinterlace");\r
             ILAVVideoSettings settings = (ILAVVideoSettings)videoDecoder;\r
             settings.SetSWDeintMode(LAVSWDeintModes.SWDeintMode_YADIF);\r
             settings.SetSWDeintOutput(LAVDeintOutput.DeintOutput_FramePer2Field);\r
         }\r
 \r
-        private IBaseFilter AddAudioDecoder(IGraphBuilder graphBuilder, IBaseFilter splitter)\r
-        {\r
+        private IBaseFilter AddAudioDecoder(IGraphBuilder graphBuilder, IBaseFilter splitter) {\r
             logger.Debug("Add LAVAudio to graph");\r
             IBaseFilter audioDecoder = null;\r
             audioDecoder = LoadAudioDecoder(graphBuilder);\r
@@ -127,24 +112,20 @@ namespace DxPlay {
             return audioDecoder;\r
         }\r
 \r
-        private IBaseFilter AddVM9Renderer(IGraphBuilder graphBuilder, IBaseFilter sampleGrabber)\r
-        {\r
+        private IBaseFilter AddVM9Renderer(IGraphBuilder graphBuilder, IBaseFilter sampleGrabber) {\r
             logger.Debug("Add VideoMixingRenderer9 to graph");\r
             IBaseFilter videoRenderer = (IBaseFilter)new VideoMixingRenderer9();\r
             DsError.ThrowExceptionForHR(graphBuilder.AddFilter(videoRenderer, "Video Mixing Renderer 9"));\r
             logger.Debug("Connect SampleGrabber -> VideoMixingRenderer9");\r
 \r
-            try\r
-            {\r
+            try {\r
                 //IVMRFilterConfig9 filterConfig = (IVMRFilterConfig9) videoRenderer;\r
                 //filterConfig.SetRenderingMode(VMR9Mode.Windowless);\r
                 //WindowlessControl = (IVMRWindowlessControl9) videoRenderer;\r
                 //WindowlessControl.SetVideoClippingWindow(handle);\r
                 //WindowlessControl.SetAspectRatioMode(VMR9AspectRatioMode.LetterBox);\r
                 FilterGraphTools.ConnectFilters(graphBuilder, sampleGrabber, "Output", videoRenderer, "VMR Input0", true);\r
-            }\r
-            catch (Exception e)\r
-            {\r
+            } catch (Exception e) {\r
                 logger.Error(e.StackTrace);\r
                 graphBuilder.RemoveFilter(videoRenderer);\r
                 logger.Info("Trying default VideoRenderer instead Video Mixing Renderer 9");\r
@@ -154,24 +135,20 @@ namespace DxPlay {
             return videoRenderer;\r
         }\r
 \r
-        private IBaseFilter AddVM7Renderer(IGraphBuilder graphBuilder, IBaseFilter sampleGrabber)\r
-        {\r
+        private IBaseFilter AddVM7Renderer(IGraphBuilder graphBuilder, IBaseFilter sampleGrabber) {\r
             logger.Debug("Add VideoMixingRenderer7 to graph");\r
             IBaseFilter videoRenderer = (IBaseFilter)new VideoMixingRenderer();\r
             DsError.ThrowExceptionForHR(graphBuilder.AddFilter(videoRenderer, "Video Mixing Renderer 7"));\r
             logger.Debug("Connect SampleGrabber -> VideoMixingRenderer7");\r
 \r
-            try\r
-            {\r
+            try {\r
                 //IVMRFilterConfig9 filterConfig = (IVMRFilterConfig9) videoRenderer;\r
                 //filterConfig.SetRenderingMode(VMR9Mode.Windowless);\r
                 //WindowlessControl = (IVMRWindowlessControl9) videoRenderer;\r
                 //WindowlessControl.SetVideoClippingWindow(handle);\r
                 //WindowlessControl.SetAspectRatioMode(VMR9AspectRatioMode.LetterBox);\r
                 FilterGraphTools.ConnectFilters(graphBuilder, sampleGrabber, "Output", videoRenderer, "VMR Input0", true);\r
-            }\r
-            catch (Exception e)\r
-            {\r
+            } catch (Exception e) {\r
                 logger.Error(e.StackTrace);\r
                 graphBuilder.RemoveFilter(videoRenderer);\r
                 logger.Info("Trying default VideoRenderer instead Video Mixing Renderer 7");\r
@@ -181,8 +158,7 @@ namespace DxPlay {
             return videoRenderer;\r
         }\r
 \r
-        private void ConfigureSimpleRenderer(IntPtr handle)\r
-        {\r
+        private void ConfigureSimpleRenderer(IntPtr handle) {\r
             // Set the output window\r
             int hr;\r
 \r
@@ -201,16 +177,14 @@ namespace DxPlay {
             DsError.ThrowExceptionForHR(hr);\r
         }\r
 \r
-        private IBaseFilter AddDefaultRenderer(IGraphBuilder graphBuilder, IBaseFilter sampleGrabber)\r
-        {\r
+        private IBaseFilter AddDefaultRenderer(IGraphBuilder graphBuilder, IBaseFilter sampleGrabber) {\r
             logger.Debug("Add default VideoRenderer to graph");\r
             IBaseFilter videoRenderer = (IBaseFilter)new VideoRendererDefault();\r
             DsError.ThrowExceptionForHR(graphBuilder.AddFilter(videoRenderer, "VideoRendererDefault"));\r
             //FilterGraphTools.ConnectFilters(graphBuilder, sampleGrabber, "Output", videoRenderer, "VMR Input0", true);\r
             return videoRenderer;\r
         }\r
-        private IBaseFilter AddEVRRenderer(IGraphBuilder graphBuilder, IBaseFilter sampleGrabber)\r
-        {\r
+        private IBaseFilter AddEVRRenderer(IGraphBuilder graphBuilder, IBaseFilter sampleGrabber) {\r
             logger.Debug("Add EVR VideoRenderer to graph");\r
             IBaseFilter videoRenderer = (IBaseFilter)new EnhancedVideoRenderer();\r
             DsError.ThrowExceptionForHR(graphBuilder.AddFilter(videoRenderer, "EnhancedVideoRenderer"));\r
@@ -218,8 +192,7 @@ namespace DxPlay {
             return videoRenderer;\r
         }\r
 \r
-        private IBaseFilter AddSampleGrabber(IGraphBuilder graphBuilder, IBaseFilter videoDecoder)\r
-        {\r
+        private IBaseFilter AddSampleGrabber(IGraphBuilder graphBuilder, IBaseFilter videoDecoder) {\r
             logger.Debug("Add SampleGrabber to graph");\r
             IBaseFilter grabber = (IBaseFilter)new SampleGrabber();\r
             DsError.ThrowExceptionForHR(graphBuilder.AddFilter(grabber, "Sample Grabber"));\r
@@ -228,8 +201,7 @@ namespace DxPlay {
             return grabber;\r
         }\r
 \r
-        private IBaseFilter AddVideoDecoder(IGraphBuilder graphBuilder, IBaseFilter splitter)\r
-        {\r
+        private IBaseFilter AddVideoDecoder(IGraphBuilder graphBuilder, IBaseFilter splitter) {\r
             logger.Debug("Add LAVVideo to graph");\r
             IBaseFilter videoDecoder = LoadVideoDecoder(graphBuilder);\r
 \r
@@ -241,8 +213,7 @@ namespace DxPlay {
             return videoDecoder;\r
         }\r
 \r
-        private IBaseFilter AddSplitter(IGraphBuilder graphBuilder, IBaseFilter sourceFilter)\r
-        {\r
+        private IBaseFilter AddSplitter(IGraphBuilder graphBuilder, IBaseFilter sourceFilter) {\r
             logger.Debug("Add LAVSplitter to graph");\r
             IBaseFilter splitter = LoadSplitter(graphBuilder);\r
             logger.Debug("Connect SourceFilter -> LAVSplitter");\r
@@ -250,23 +221,19 @@ namespace DxPlay {
             return splitter;\r
         }\r
 \r
-        public void SearchAudioTracks(IBaseFilter splitter)\r
-        {\r
+        public void SearchAudioTracks(IBaseFilter splitter) {\r
             IAMStreamSelect amStreamSelect = (IAMStreamSelect)splitter;\r
-            if (amStreamSelect != null)\r
-            {\r
+            if (amStreamSelect != null) {\r
                 amStreamSelect.Count(out int count);\r
                 AudioCount = 0;\r
-                for (int i = 0; i < count; i++)\r
-                {\r
-                    amStreamSelect.Info(i, out AMMediaType ppmt, out AMStreamSelectInfoFlags pdwFlags, out int plcid, out int pdwGroup, \r
+                for (int i = 0; i < count; i++) {\r
+                    amStreamSelect.Info(i, out AMMediaType ppmt, out AMStreamSelectInfoFlags pdwFlags, out int plcid, out int pdwGroup,\r
                         out string ppszName, out object ppObject, out object ppUnk);\r
-                    if (ppmt.majorType == MediaType.Audio)\r
-                    {\r
+                    if (ppmt.majorType == MediaType.Audio) {\r
                         logger.Debug("Found audio channel");\r
                         AudioCount++;\r
-                        if (AvailableAudioTracks != null && ppszName != null) { \r
-                            AvailableAudioTracks.Add(i+". "+ppszName); \r
+                        if (AvailableAudioTracks != null && ppszName != null) {\r
+                            AvailableAudioTracks.Add(i + ". " + ppszName);\r
                         }\r
                     }\r
                     DsUtils.FreeAMMediaType(ppmt);\r
@@ -279,55 +246,46 @@ namespace DxPlay {
             }\r
         }\r
 \r
-        private IBaseFilter LoadVideoDecoder(IGraphBuilder graphBuilder)\r
-        {\r
+        private IBaseFilter LoadVideoDecoder(IGraphBuilder graphBuilder) {\r
             ILAVVideoSettings lavVideoSettings;\r
             IBaseFilter videoDecoder = FilterProvider.GetVideoFilter(out lavVideoSettings);\r
-            if (videoDecoder == null)\r
+            if (videoDecoder == null) {\r
                 videoDecoder = FilterGraphTools.AddFilterByName(graphBuilder, FilterCategory.LegacyAmFilterCategory, "LAV Video Decoder");\r
-            //if (videoDecoder != null)\r
-            //    graphBuilder.AddFilter(videoDecoder, "LAV Video Decoder");\r
+            } else {\r
+                graphBuilder.AddFilter(videoDecoder, "LAV Video Decoder");\r
+            }\r
             return videoDecoder;\r
         }\r
 \r
-        private IBaseFilter LoadAudioDecoder(IGraphBuilder graphBuilder)\r
-        {\r
+        private IBaseFilter LoadAudioDecoder(IGraphBuilder graphBuilder) {\r
             ILAVAudioSettings lavAudioSettings;\r
             ILAVAudioStatus lavAudioStatus;\r
             IBaseFilter audioDecoder = FilterProvider.GetAudioFilter(out lavAudioSettings, out lavAudioStatus);\r
-            if (audioDecoder == null)\r
+            if (audioDecoder == null) {\r
                 audioDecoder = FilterGraphTools.AddFilterByName(graphBuilder, FilterCategory.LegacyAmFilterCategory, "LAV Audio Decoder");\r
-            //if (audioDecoder != null)\r
-            //    graphBuilder.AddFilter(audioDecoder, "LAV Audio Decoder");\r
-\r
-            IBaseFilter audioSwitcher = FilterGraphTools.AddFilterFromClsid(graphBuilder, new Guid("{18C16B08-6497-420E-AD14-22D21C2CEAB7}"), "Audio Switcher");\r
+            } else {\r
+                graphBuilder.AddFilter(audioDecoder, "LAV Audio Decoder");\r
+            }\r
+            //IBaseFilter audioSwitcher = FilterGraphTools.AddFilterFromClsid(graphBuilder, new Guid("{18C16B08-6497-420E-AD14-22D21C2CEAB7}"), "Audio Switcher");\r
             //graphBuilder.AddFilter(audioSwitcher, "Audio Switcher");\r
-\r
             return audioDecoder;\r
         }\r
 \r
-        private IBaseFilter LoadSplitter(IGraphBuilder graphBuilder)\r
-        {\r
+        private IBaseFilter LoadSplitter(IGraphBuilder graphBuilder) {\r
             ILAVSplitterSettings lavSplitterSettings;\r
             IBaseFilter splitter = FilterProvider.GetSplitter(out lavSplitterSettings);\r
             if (splitter == null) {\r
                 logger.Info("No splitter found in codecs dir, using installed");\r
                 splitter = FilterGraphTools.AddFilterByName(graphBuilder, FilterCategory.LegacyAmFilterCategory, "LAV Splitter");\r
+            } else {\r
+                graphBuilder.AddFilter(splitter, "LAV Splitter");\r
             }\r
-\r
-            if (splitter == null) {\r
-                throw new Exception("A splitter betöltése sikertelen!");\r
-            }\r
-\r
-            //graphBuilder.AddFilter(splitter, "LAV Splitter");\r
             return splitter;\r
         }\r
 \r
         // Shut down capture\r
-        public void Dispose()\r
-        {\r
-            lock (this)\r
-            {\r
+        public void Dispose() {\r
+            lock (this) {\r
                 if (isDisposed)\r
                     return;\r
                 logger.Debug("Dispose");\r
@@ -336,28 +294,24 @@ namespace DxPlay {
                     m_DsRot.Dispose();\r
 #endif\r
                 IMediaControl mediaCtrl = (IMediaControl)this;\r
-                if (mediaCtrl != null)\r
-                {\r
+                if (mediaCtrl != null) {\r
                     mediaCtrl.Stop();\r
                     IGraphBuilder graphBuilder = (IGraphBuilder)mediaCtrl;\r
                     FilterGraphTools.DisconnectAllPins(graphBuilder);\r
                     FilterGraphTools.RemoveAllFilters(graphBuilder);\r
                 }\r
 \r
-                if (this != null)\r
-                { \r
-                    Marshal.ReleaseComObject(this); \r
+                if (this != null) {\r
+                    Marshal.ReleaseComObject(this);\r
                 }\r
                 isDisposed = true;\r
             }\r
         }\r
 \r
-        public void SetAudioTrack(int selectedTrackIndex)\r
-        {\r
+        public void SetAudioTrack(int selectedTrackIndex) {\r
             IAMStreamSelect streamSelect = (IAMStreamSelect)Splitter;\r
-            if (streamSelect != null)\r
-            {\r
-                streamSelect.Enable(selectedTrackIndex+1, AMStreamSelectEnableFlags.Enable);\r
+            if (streamSelect != null) {\r
+                streamSelect.Enable(selectedTrackIndex + 1, AMStreamSelectEnableFlags.Enable);\r
             }\r
         }\r
     }\r