#237 Regression on Samsung F series TV when upgrading to minidlna 1.1.2

v1.0 (example)
open
None
1
2014-12-24
2014-04-29
zyxeu
No

Hi Justin,

I am using the Eric Sauvageau’s asuswrt_merlin sources for the Asus router RT-AC68U, and the latest version of minidlna1.1.2 coming from Asus’ firmware 374_5047 breaks Samsung SmartTV DLNA capabiliies (e.g. Samsung TV UN32F5500 @V1117), i.e. I get the following error message on the TV when trying to browse the videos on the RT-AC68U device: "Request cannot be completed. MEDIA PLAY will be return to the main screen."

A rollback from minidlna1.1.2 to minidlna1.1.1 is working OK.

I already tried before applying your changes for Samsung devices from:

[e3a53f] Justin Maggard 2014-03-11
clients: separate Samsung BDP and TV client types again
Advertising the DCM10 vendor-specific feature to Samsung Series
C and D (at least) players causes them to always browse ContainerID
1, no matter which section is chosen from their GUI.
Treat TVs and BDPs as separate client types with unique features.
[ce1673] Justin Maggard 2014-03-07
samsung: fix root_container setting
Pretend that we don't support SamsungGetFeatureList if we have a
custom root container specified, or else the Samsung client will
jump straight to our normal A/V/P sections.

Unfortunately they did not help, so I ported your latest minidlna version from the git repository f9c37fb205933e2515100b6a71786622f5cc663b @20140428 to Eric Sauvageau’s latest asuswrt-merlin sources and tried it again, but I got again the error on the Samsung TV.

I am attaching the "filtered" logs I created with minidlna 1.1.1 and latest 1.1.2 from git.

If you diff the two files, then you can see that there seem to be differences:

- One is coming from the TV with these additional XML fields: <action><name>RegisterDevice</name><argumentList><argument><name>RegistrationReqMsg</name><direction>in</direction><relatedStateVariable>A_ARG_TYPE_RegistrationReqMsg</relatedStateVariable></argument><argument><name>RegistrationRespMsg</name><direction>out</direction><relatedStateVariable>A_ARG_TYPE_RegistrationRespMsg</relatedStateVariable></argument></argumentList></action>

- Later there is an additional "Features" entry in the HTTP communication: &lt;/Feature&gt;&lt;/Features&gt

- And finally coming from the TV, there is the following SOAPACTION one, which now tries to "#Browse" instead of "X_GetFeatureList" as before: SOAPACTION: "urn:schemas-upnp-org:service:ContentDirectory:1#Browse"

- The last "#Browse" SOAP action unfortunately gets the following error response: Returning UPnPError 402: Invalid Args . upnphttp.c debug: HTTP RESPONSE: HTTP/1.1 500 Internal Server Error

Could you please take a look at the changed behavior from 1.1.2 which results in an error only on Samsung F series TVs?

You can count on me in case you need any additional debugging or testing.

Thank you very much,
zyxeu

2 Attachments

Related

Commit: [ce1673]
Commit: [e3a53f]

Discussion

  • zyxeu
    zyxeu
    2014-04-29

    The issue is still there after upgrading to the latest Samsung F series TV firmware V1118 for UN32F5500.

    ---EDIT---:

    Nevertheless the root cause for the issue seems to be the following submit:

    [e2c73f] clients: merge samsung Series C client id
    A Samsung TV cannot be reliably detected by checking for "SEC_HHP_TV" User Agent. Only the first part can be guaranteed, eg. "SEC_HHP_" as the rest can be changed by the end user.
    

    Previously only the "Samsung Series C TV" entry got the FLAG_SAMSUNG_DCM10, but after the ID merge from [e2c73f] the "Samsung Series C" also got it, which basically broke the support for Samsung F series TVs, that previously got assigned to the "Samsung Series C".

    The flag basically controls if genRootDescSamsung() or genRootDesc() is used to generate the XML description, but for Samsung F series TVs only genRootDesc() is working OK, and so it looks like if maybe minidlna does not support correctly all DCM10 AllShare server capabilities?

    My workaround for the Samsung F series TV issue is to remove that DCM10 flag and hence prevent advertising that capability:

    diff clients.c_save clients.c
    69c69
    <     FLAG_SAMSUNG | FLAG_DLNA | FLAG_NO_RESIZE | FLAG_SAMSUNG_DCM10,
    ---
    >     FLAG_SAMSUNG | FLAG_DLNA | FLAG_NO_RESIZE /* | FLAG_SAMSUNG_DCM10 */,
    

    Please ignore my next comment as it is now obsolete.

    Thank you very much,
    zyxeu

     

    Related

    Commit: [e2c73f]


    Last edit: zyxeu 2014-04-29
  • zyxeu
    zyxeu
    2014-04-29

    Post awaiting moderation.
  • Spencer Oliver
    Spencer Oliver
    2014-06-17

    I guess this has been merged as 25f6c01f, only downside is it breaks bookmark support for E series and probably others.

     
  • bitblasters
    bitblasters
    2014-07-06

    I confirm the patch broke bookmark support for E series.
    Maybe we could add a configuration option for enable/disable DCM10 flag?
    Or we could find a way to distinguish F series other than from the user agent?