From f5467021b0e8a86bf17d13404e8a6cff1d87d587 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sat, 3 Dec 2016 15:00:41 -0500 Subject: update probing --- .../Probing/ProbeResultNormalizer.cs | 52 +++++++++++++--------- 1 file changed, 30 insertions(+), 22 deletions(-) (limited to 'MediaBrowser.MediaEncoding/Probing/ProbeResultNormalizer.cs') diff --git a/MediaBrowser.MediaEncoding/Probing/ProbeResultNormalizer.cs b/MediaBrowser.MediaEncoding/Probing/ProbeResultNormalizer.cs index b4f6768b6..9804bc1db 100644 --- a/MediaBrowser.MediaEncoding/Probing/ProbeResultNormalizer.cs +++ b/MediaBrowser.MediaEncoding/Probing/ProbeResultNormalizer.cs @@ -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 + } } } } -- cgit v1.2.3