aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Dlna/PlayTo/Device.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Dlna/PlayTo/Device.cs')
-rw-r--r--MediaBrowser.Dlna/PlayTo/Device.cs18
1 files changed, 14 insertions, 4 deletions
diff --git a/MediaBrowser.Dlna/PlayTo/Device.cs b/MediaBrowser.Dlna/PlayTo/Device.cs
index c41aa73a9..222a52736 100644
--- a/MediaBrowser.Dlna/PlayTo/Device.cs
+++ b/MediaBrowser.Dlna/PlayTo/Device.cs
@@ -635,15 +635,25 @@ namespace MediaBrowser.Dlna.PlayTo
}
XElement uPnpResponse;
-
+
+ // Handle different variations sent back by devices
try
{
uPnpResponse = XElement.Parse(trackString);
}
- catch (Exception ex)
+ catch (Exception)
{
- _logger.ErrorException("Unable to parse xml {0}", ex, trackString);
- return new Tuple<bool, uBaseObject>(true, null);
+ // first try to add a root node with a dlna namesapce
+ try
+ {
+ uPnpResponse = XElement.Parse("<data xmlns:dlna=\"urn:schemas-dlna-org:device-1-0\">" + trackString + "</data>");
+ uPnpResponse = uPnpResponse.Descendants().First();
+ }
+ catch (Exception ex)
+ {
+ _logger.ErrorException("Unable to parse xml {0}", ex, trackString);
+ return new Tuple<bool, uBaseObject>(true, null);
+ }
}
var e = uPnpResponse.Element(uPnpNamespaces.items);