Nem mukodo graph
authorelgekko <vasary@elgekko.net>
Tue, 13 Jun 2023 19:23:16 +0000 (21:23 +0200)
committerelgekko <vasary@elgekko.net>
Tue, 13 Jun 2023 19:23:16 +0000 (21:23 +0200)
client/DxPlay/LAVInterfaces.cs
client/DxPlay/PlayerGraph.cs

index ef7e8b4f11976c8cc8fe6d47eeb39cb77a9b10ba..70a58712e922a9f4ea2d56893a132daa342da911 100644 (file)
@@ -1045,7 +1045,7 @@ namespace DxPlay {
                         Directory.SetCurrentDirectory(path);\r
 \r
                         path = Path.Combine(path, "LAVSplitter.ax");\r
-\r
+                        logger.Info("Loading splitter from " + path);\r
                         IntPtr lavVideoDll = LoadLibrary(path);\r
                         IntPtr proc = GetProcAddress(lavVideoDll, "DllGetClassObject");\r
 \r
@@ -1080,10 +1080,10 @@ namespace DxPlay {
                             if (oSettings != null) Marshal.ReleaseComObject(oSettings);\r
                             throw new Exception("Could not QueryInterface for the ILAVSplitterSettings interface");\r
                         }\r
-\r
                     }\r
-                    catch\r
+                    catch (Exception e)\r
                     {\r
+                        logger.Error(e.Message);\r
                         // if somehting bad happens give back the path since we will rethrow the exception ater cleanup\r
                         Directory.SetCurrentDirectory(currentDir);\r
 \r
@@ -1107,7 +1107,7 @@ namespace DxPlay {
                     }\r
                 }\r
                 else {\r
-                    logger.Debug("Path does not exists: "+path);\r
+                    logger.Info("Path does not exists: "+path);\r
                 }\r
                     \r
                 return filter;\r
index 8fad9c5a7c759d13e92722e7c8b5d9fd5f4510a1..b6e612b739fd0a3e6af72870bb9910f34c4d57db 100644 (file)
@@ -38,6 +38,9 @@ namespace DxPlay {
 #endif\r
                 logger.Debug("Add SourceFilter to graph");\r
                 DsError.ThrowExceptionForHR(graphBuilder.AddSourceFilter(fileName, fileName, out IBaseFilter sourceFilter));\r
+                if (sourceFilter == null) {\r
+                    throw new Exception("Source filter is null");\r
+                }\r
 \r
                 Splitter = AddSplitter(graphBuilder, sourceFilter);\r
                 bool audioOnly = true;\r
@@ -242,9 +245,6 @@ namespace DxPlay {
         {\r
             logger.Debug("Add LAVSplitter to graph");\r
             IBaseFilter splitter = LoadSplitter(graphBuilder);\r
-            if (splitter == null) {\r
-                throw new Exception("Can not load Splitter!");\r
-            }\r
             logger.Debug("Connect SourceFilter -> LAVSplitter");\r
             FilterGraphTools.ConnectFilters(graphBuilder, sourceFilter, "Output", splitter, "Input", true);\r
             return splitter;\r
@@ -281,9 +281,8 @@ namespace DxPlay {
 \r
         private IBaseFilter LoadVideoDecoder(IGraphBuilder graphBuilder)\r
         {\r
-            IBaseFilter videoDecoder = null;\r
             ILAVVideoSettings lavVideoSettings;\r
-            videoDecoder = FilterProvider.GetVideoFilter(out lavVideoSettings);\r
+            IBaseFilter videoDecoder = FilterProvider.GetVideoFilter(out lavVideoSettings);\r
             if (videoDecoder == null)\r
                 videoDecoder = FilterGraphTools.AddFilterByName(graphBuilder, FilterCategory.LegacyAmFilterCategory, "LAV Video Decoder");\r
             //if (videoDecoder != null)\r
@@ -293,10 +292,9 @@ namespace DxPlay {
 \r
         private IBaseFilter LoadAudioDecoder(IGraphBuilder graphBuilder)\r
         {\r
-            IBaseFilter audioDecoder = null;\r
             ILAVAudioSettings lavAudioSettings;\r
             ILAVAudioStatus lavAudioStatus;\r
-            audioDecoder = FilterProvider.GetAudioFilter(out lavAudioSettings, out lavAudioStatus);\r
+            IBaseFilter audioDecoder = FilterProvider.GetAudioFilter(out lavAudioSettings, out lavAudioStatus);\r
             if (audioDecoder == null)\r
                 audioDecoder = FilterGraphTools.AddFilterByName(graphBuilder, FilterCategory.LegacyAmFilterCategory, "LAV Audio Decoder");\r
             //if (audioDecoder != null)\r
@@ -310,14 +308,18 @@ namespace DxPlay {
 \r
         private IBaseFilter LoadSplitter(IGraphBuilder graphBuilder)\r
         {\r
-            IBaseFilter splitter = null;\r
             ILAVSplitterSettings lavSplitterSettings;\r
-            splitter = FilterProvider.GetSplitter(out lavSplitterSettings);\r
-            if (splitter == null) \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
+            }\r
+\r
+            if (splitter == null) {\r
+                throw new Exception("A splitter betöltése sikertelen!");\r
+            }\r
 \r
-            //if (Splitter != null)\r
-            //    graphBuilder.AddFilter(Splitter, "LAV Splitter");\r
+            //graphBuilder.AddFilter(splitter, "LAV Splitter");\r
             return splitter;\r
         }\r
 \r