OSDN Git Service

WinGui:
[handbrake-jp/handbrake-jp-git.git] / win / C# / Parsing / Title.cs
index d1ccd8a..245adfc 100644 (file)
@@ -147,32 +147,39 @@ namespace Handbrake.Parsing
              * This will be converted to use Regex soon, I promise ;)\r
              * brianmario - 7/9/07\r
              */\r
-\r
-            string curLine = output.ReadLine();\r
-            thisTitle.m_titleNumber = int.Parse(curLine.Substring(curLine.Length - 2, 1));\r
-            curLine = output.ReadLine();\r
-            string[] splitter = curLine.Split(',');\r
-            //thisTitle.m_vts = int.Parse(splitter[0].Substring(8));\r
-            //thisTitle.m_ttn = int.Parse(splitter[1].Substring(5));\r
-            splitter = splitter[2].Trim().Split(' ', '(', ')');\r
-            //thisTitle.m_blockCount = int.Parse(splitter[3]);\r
-            splitter = splitter[1].Split('-', '>');\r
-            //thisTitle.m_cellRange[0] = int.Parse(splitter[0]);\r
-            //thisTitle.m_cellRange[1] = int.Parse(splitter[2]);\r
-            curLine = output.ReadLine();\r
-            splitter = curLine.Split(new string[] { "  + duration: " }, StringSplitOptions.RemoveEmptyEntries);\r
-            thisTitle.m_duration = TimeSpan.Parse(splitter[0]);\r
-            curLine = output.ReadLine();\r
-            splitter = curLine.Split(new string[] { "  + size: ", "aspect: ", ", ", " fps", "x" }, StringSplitOptions.RemoveEmptyEntries);\r
-            thisTitle.m_resolution = new Size(int.Parse(splitter[0]), int.Parse(splitter[1]));\r
-            thisTitle.m_aspectRatio = float.Parse(splitter[2].ToString());\r
-            //thisTitle.m_fps = float.Parse(splitter[3].ToString());\r
-            curLine = output.ReadLine();\r
-            splitter = curLine.Split(new string[] { "  + autocrop: ", "/" }, StringSplitOptions.RemoveEmptyEntries);\r
-            thisTitle.m_autoCrop = new int[4] { int.Parse(splitter[0]), int.Parse(splitter[1]), int.Parse(splitter[2]), int.Parse(splitter[3]) };\r
-            thisTitle.m_chapters.AddRange(Chapter.ParseList(output));\r
-            thisTitle.m_audioTracks.AddRange(AudioTrack.ParseList(output));\r
-            thisTitle.m_subtitles.AddRange(Subtitle.ParseList(output));\r
+            try\r
+            {\r
+                string curLine = output.ReadLine();\r
+                thisTitle.m_titleNumber = int.Parse(curLine.Substring(curLine.Length - 2, 1));\r
+                curLine = output.ReadLine();\r
+                string[] splitter = curLine.Split(',');\r
+                //thisTitle.m_vts = int.Parse(splitter[0].Substring(8));\r
+                //thisTitle.m_ttn = int.Parse(splitter[1].Substring(5));\r
+                splitter = splitter[2].Trim().Split(' ', '(', ')');\r
+                //thisTitle.m_blockCount = int.Parse(splitter[3]);\r
+                splitter = splitter[1].Split('-', '>');\r
+                //thisTitle.m_cellRange[0] = int.Parse(splitter[0]);\r
+                //thisTitle.m_cellRange[1] = int.Parse(splitter[2]);\r
+                curLine = output.ReadLine();\r
+                splitter = curLine.Split(new string[] { "  + duration: " }, StringSplitOptions.RemoveEmptyEntries);\r
+                thisTitle.m_duration = TimeSpan.Parse(splitter[0]);\r
+                curLine = output.ReadLine();\r
+                splitter = curLine.Split(new string[] { "  + size: ", "aspect: ", ", ", " fps", "x" }, StringSplitOptions.RemoveEmptyEntries);\r
+                thisTitle.m_resolution = new Size(int.Parse(splitter[0]), int.Parse(splitter[1]));\r
+                thisTitle.m_aspectRatio = float.Parse(splitter[2].ToString());\r
+                //thisTitle.m_fps = float.Parse(splitter[3].ToString());\r
+                curLine = output.ReadLine();\r
+                splitter = curLine.Split(new string[] { "  + autocrop: ", "/" }, StringSplitOptions.RemoveEmptyEntries);\r
+                thisTitle.m_autoCrop = new int[4] { int.Parse(splitter[0]), int.Parse(splitter[1]), int.Parse(splitter[2]), int.Parse(splitter[3]) };\r
+                thisTitle.m_chapters.AddRange(Chapter.ParseList(output));\r
+                thisTitle.m_audioTracks.AddRange(AudioTrack.ParseList(output));\r
+                thisTitle.m_subtitles.AddRange(Subtitle.ParseList(output));\r
+            }\r
+            catch (Exception)\r
+            {\r
+                // hbcli crashed caused an exception here. Just threw this in to prevent a program error.\r
+                // Can be debuged later.\r
+            }\r
 \r
             return thisTitle;\r
         }\r