[mythtv-users] UPnP enless query

Philipp Matthias Hahn pmhahn+mythtv at pmhahn.de
Mon May 5 07:34:29 UTC 2014


Hi,

after fixing libupnp-1.6.19 to build correct URLs VLC is now able to
issue some requests, but VLC get's stuck in an endless query:

Query 86 is:
 POST /CDS_Control HTTP/1.1
...
 SOAPACTION: "urn:schemas-upnp-org:service:ContentDirectory:1#Browse"
...
 <?xml version="1.0"?>
 <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
   <s:Body>
     <u:Browse xmlns:u="urn:schemas-upnp-org:service:ContentDirectory:1">
       <ObjectID>RecTv/4</ObjectID>
       <BrowseFlag>BrowseDirectChildren</BrowseFlag>
       <Filter>id,dc:title,res,sec:CaptionInfo,sec:CaptionInfoEx</Filter>
       <StartingIndex>0</StartingIndex>
       <RequestedCount>0</RequestedCount>
       <SortCriteria/>
     </u:Browse>
   </s:Body>
 </s:Envelope>

which is answered by 
 Server: Linux 3.13-1-amd64, UPnP/1.0, MythTV 0.27.20140103-1
...
 <?xml version="1.0" encoding="utf-8"?>
 <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
   <s:Body>
     <u:BrowseResponse xmlns:u="urn:schemas-upnp-org:service:ContentDirectory:1">
       <Result><![CDATA[
         <?xml version="1.0"?>
         <DIDL-Lite xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/">
           <container id="RecTv/4/key=1010" parentID="RecTv/4" childCount="75" restricted="1" searchable="0">
             <dc:title>22 SAT.1</dc:title>
             <upnp:class>object.container</upnp:class>
           </container>
           <container id="RecTv/4/key=12301" parentID="RecTv/4" childCount="3" restricted="1" searchable="0">
             <dc:title>1 Das Erste</dc:title>
             <upnp:class>object.container</upnp:class>
           </container>
           <container id="RecTv/4/key=13110" parentID="RecTv/4" childCount="1" restricted="1" searchable="0">
             <dc:title>2 ZDF</dc:title>
             <upnp:class>object.container</upnp:class>
           </container>
           <container id="RecTv/4/key=19502" parentID="RecTv/4" childCount="11" restricted="1" searchable="0">
             <dc:title>24 kabel eins</dc:title>
             <upnp:class>object.container</upnp:class>
           </container>
           <container id="RecTv/4/key=30006" parentID="RecTv/4" childCount="1" restricted="1" searchable="0">
             <dc:title>2 ZDF</dc:title>
             <upnp:class>object.container</upnp:class>
           </container>
           <container id="RecTv/4/key=30007" parentID="RecTv/4" childCount="3" restricted="1" searchable="0">
             <dc:title>3 3sat</dc:title>
             <upnp:class>object.container</upnp:class>
           </container>
           <container id="RecTv/4/key=30106" parentID="RecTv/4" childCount="1" restricted="1" searchable="0">
             <dc:title>1 Das Erste</dc:title>
             <upnp:class>object.container</upnp:class>
           </container>
           <container id="RecTv/4/key=30108" parentID="RecTv/4" childCount="1" restricted="1" searchable="0">
             <dc:title>31 hr-fernsehen</dc:title>
             <upnp:class>object.container</upnp:class>
           </container>
           <container id="RecTv/4/key=30721" parentID="RecTv/4" childCount="3" restricted="1" searchable="0">
             <dc:title>10 tagesschau24</dc:title>
             <upnp:class>object.container</upnp:class>
           </container>
           <container id="RecTv/4/key=30725" parentID="RecTv/4" childCount="1" restricted="1" searchable="0">
             <dc:title>5PHOENIX</dc:title>
             <upnp:class>object.container</upnp:class>
           </container>
         </DIDL-Lite>
       ]]></Result>
       <NumberReturned>10</NumberReturned>
       <TotalMatches>11</TotalMatches>
       <UpdateID>1</UpdateID>
     </u:BrowseResponse>
   </s:Body>
 </s:Envelope>


As only the first 10 entries of 11 were returned, VLC does a second
query 87:
 POST /CDS_Control HTTP/1.1
...
 SOAPACTION: "urn:schemas-upnp-org:service:ContentDirectory:1#Browse"
...
 <?xml version="1.0"?>
 <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
   <s:Body>
     <u:Browse xmlns:u="urn:schemas-upnp-org:service:ContentDirectory:1">
       <ObjectID>RecTv/4</ObjectID>
       <BrowseFlag>BrowseDirectChildren</BrowseFlag>
       <Filter>id,dc:title,res,sec:CaptionInfo,sec:CaptionInfoEx</Filter>
       <StartingIndex>10</StartingIndex>
       <RequestedCount>0</RequestedCount>
       <SortCriteria/>
     </u:Browse>
   </s:Body>
 </s:Envelope>

This is answered by
 HTTP/1.1 200 OK
...
 <?xml version="1.0" encoding="utf-8"?>
 <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
   <s:Body>
     <u:BrowseResponse xmlns:u="urn:schemas-upnp-org:service:ContentDirectory:1">
       <Result><![CDATA[
         <?xml version="1.0"?>
         <DIDL-Lite xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/"/>
       ]]></Result>
       <NumberReturned>0</NumberReturned>
       <TotalMatches>11</TotalMatches>
       <UpdateID>1</UpdateID>
     </u:BrowseResponse>
   </s:Body>
 </s:Envelope>
  

This same request is then repeated until VLC crashes.
Is this (another) bug in libupnp6 or does someon see why things don't
work?

Sincerely
Philipp
-- 
  / /  (_)__  __ ____  __ Philipp Hahn
 / /__/ / _ \/ // /\ \/ /
/____/_/_//_/\_,_/ /_/\_\ pmhahn at pmhahn.de


More information about the mythtv-users mailing list