Samsung Galaxy Tab 3

Discuss media renderers like Xbox 360, TVs, smartphones, etc.
Post Reply
mfulgo
Posts: 10
Joined: Sat Dec 13, 2014 2:59 pm

Samsung Galaxy Tab 3

Post by mfulgo »

Trying to troubleshoot why my Samsung Galaxy Tab 3 thinks there's no content on my UMS.

I am using fresh build of commit 08f96d1a90bdbdcfeb7d409e4ae3711fc0a343a8 and the built-in "Video" player on the device. It's able to see the UMS server (under "Nearby Devices"), but when I select it, it gives me the message
Contents location is not available. Check network status and connected device.
I've taken a look at the traffic coming from and going to the device and it goes through the following sequence:

Code: Select all

GET /description/fetch
GET /UPnP_AV_ContentDirectory_1.0.xml
GET /UPnP_AV_ConnectionManager_1.0.xml
SUBSCRIBE /upnp/event/content_directory
SUBSCRIBE /upnp/event/connection_manager
POST /upnp/control/content_directory (ContentDirectory:1#GetSearchCapabilities)
UMS seems to reply correctly to each request (and sends NOTIFYs in response to the SUBSCRIBEs). However, the tablet never sends a POST for ContentDirectory:1#Browse. I'm guessing it thinks there's no content because SearchCaps comes back empty, but again, that's my guess.
mfulgo
Posts: 10
Joined: Sat Dec 13, 2014 2:59 pm

Re: Samsung Galaxy Tab 3

Post by mfulgo »

I compared the traffic with what is sent by my Rygel server. (The tablet is able to browse content on it.)

After tweaking UMS to send back the below SearchCaps, the error message went away, but UMS doesn't return any results to the tablet. (Unsurprising.)

Code: Select all

<SearchCaps>@id,@parentID,@refID,upnp:class,dc:title,upnp:artist,upnp:album,dc:creator,upnp:createClass,@childCount,upnp:objectUpdateID,upnp:containerUpdateID</SearchCaps>
With the above hack, the tablet actually sends an additional POST to /upnp/control/content_directory

Code: Select all

<?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:Search xmlns:u="urn:schemas-upnp-org:service:ContentDirectory:1">
      <ContainerID>0</ContainerID>
      <SearchCriteria>upnp:class derivedfrom "object.item.videoItem" and @refID exists false</SearchCriteria>
      <Filter>*</Filter>
      <StartingIndex>0</StartingIndex>
      <RequestedCount>50</RequestedCount>
      <SortCriteria>
      </SortCriteria>
    </u:Search>
  </s:Body>
</s:Envelope>
To which UMS responds with

Code: Select all

<?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:SearchResponse xmlns:u="urn:schemas-upnp-org:service:ContentDirectory:1">
<Result><DIDL-Lite xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/"></DIDL-Lite></Result>
<NumberReturned>0</NumberReturned>
<TotalMatches>0</TotalMatches>
<UpdateID>1</UpdateID>
</u:SearchResponse>
</s:Body>
</s:Envelope>
So, unfortunately, it seems that supporting the built-in player would require some basic form of search support. Not completely impractical, but probably out of scope of the current system.
Post Reply