update probing

This commit is contained in:
Luke Pulverenti
2016-12-03 15:00:41 -05:00
parent 232da3f17b
commit f5467021b0
3 changed files with 41 additions and 32 deletions

View File

@@ -202,36 +202,44 @@ namespace MediaBrowser.MediaEncoding.Probing
{
using (var streamReader = new StreamReader(stream))
{
// Use XmlReader for best performance
using (var reader = XmlReader.Create(streamReader))
try
{
reader.MoveToContent();
reader.Read();
// Loop through each element
while (!reader.EOF)
// Use XmlReader for best performance
using (var reader = XmlReader.Create(streamReader))
{
if (reader.NodeType == XmlNodeType.Element)
reader.MoveToContent();
reader.Read();
// Loop through each element
while (!reader.EOF)
{
switch (reader.Name)
if (reader.NodeType == XmlNodeType.Element)
{
case "dict":
using (var subtree = reader.ReadSubtree())
{
ReadFromDictNode(subtree, info);
}
break;
default:
reader.Skip();
break;
switch (reader.Name)
{
case "dict":
using (var subtree = reader.ReadSubtree())
{
ReadFromDictNode(subtree, info);
}
break;
default:
reader.Skip();
break;
}
}
else
{
reader.Read();
}
}
else
{
reader.Read();
}
}
}
catch (XmlException)
{
// I've seen probe examples where the iTunMOVI value is just "<"
// So we should not allow this to fail the entire probing operation
}
}
}
}