Homepage: <http://handbrake.fr>.\r
It may be used under the terms of the GNU General Public License. */\r
\r
-using System;\r
-using System.Collections.Generic;\r
-using System.IO;\r
-using System.Text.RegularExpressions;\r
-\r
namespace Handbrake.Parsing\r
{\r
+ using System;\r
+ using System.Collections.Generic;\r
+ using System.IO;\r
+ using System.Text.RegularExpressions;\r
+\r
/// <summary>\r
/// An object represending an AudioTrack associated with a Title, in a DVD\r
/// </summary>\r
\r
public string ISO639_2\r
{\r
- get { return m_iso639_2; }\r
+ get { return m_iso639_2; }\r
}\r
\r
/// <summary>\r
{\r
if (m_subFormat == null)\r
return string.Format("{0} {1} ({2})", m_trackNumber, m_language, m_format);\r
- \r
+\r
return string.Format("{0} {1} ({2}) ({3})", m_trackNumber, m_language, m_format, m_subFormat);\r
}\r
\r
public static AudioTrack Parse(StringReader output)\r
{\r
- String audio_track = output.ReadLine();\r
+ string audio_track = output.ReadLine();\r
Match m = Regex.Match(audio_track, @"^ \+ ([0-9]*), ([A-Za-z0-9]*) \((.*)\) \((.*)\)");\r
Match track = Regex.Match(audio_track, @"^ \+ ([0-9]*), ([A-Za-z0-9]*) \((.*)\)"); // ID and Language\r
Match iso639_2 = Regex.Match(audio_track, @"iso639-2: ([a-zA-Z]*)\)");\r
Match bitrate = Regex.Match(audio_track, @"([0-9]*)bps");\r
\r
string subformat = m.Groups[4].Value.Trim().Contains("iso639") ? null : m.Groups[4].Value;\r
+ string samplerateVal = samplerate.Success ? samplerate.Groups[0].Value.Replace("Hz", string.Empty).Trim() : "0";\r
+ string bitrateVal = bitrate.Success ? bitrate.Groups[0].Value.Replace("bps", string.Empty).Trim() : "0";\r
\r
if (track.Success)\r
{\r
var thisTrack = new AudioTrack\r
- {\r
- m_trackNumber = int.Parse(track.Groups[1].Value.Trim()),\r
- m_language = track.Groups[2].Value,\r
- m_format = m.Groups[3].Value,\r
- m_subFormat = subformat,\r
- m_frequency = int.Parse(samplerate.Groups[0].Value.Replace("Hz","").Trim()),\r
- m_bitrate = int.Parse(bitrate.Groups[0].Value.Replace("bps","").Trim()),\r
- m_iso639_2 = iso639_2.Value.Replace("iso639-2: ", "").Replace(")", "")\r
- };\r
- return thisTrack; \r
+ {\r
+ m_trackNumber = int.Parse(track.Groups[1].Value.Trim()), \r
+ m_language = track.Groups[2].Value, \r
+ m_format = m.Groups[3].Value, \r
+ m_subFormat = subformat, \r
+ m_frequency = int.Parse(samplerateVal), \r
+ m_bitrate = int.Parse(bitrateVal), \r
+ m_iso639_2 =\r
+ iso639_2.Value.Replace("iso639-2: ", string.Empty).Replace(")", string.Empty)\r
+ };\r
+ return thisTrack;\r
}\r
- \r
+\r
return null;\r
}\r
\r