#44 Add ability to change root multimedia container

open-accepted
5
2011-06-25
2011-06-20
No

This option may be useful for those who want to show up only one multimedia container to UPnP clients. Supported containers: "Music", "Video", "Pictures" and "Browse Directory".

It's more generic implementation of feature from my previous patch: https://sourceforge.net/tracker/?func=detail&aid=3246932&group_id=243163&atid=1121518 . May be this version will go to upstream =).

Discussion

  • Justin Maggard

    Justin Maggard - 2011-06-22

    Thanks for your patch. :) Sorry for the lack of response on this so far. I wasn't ignoring the old patch, it's just that it breaks one of our most popular platforms, the PS3. It also breaks DLNA compliance in general, but it seem most clients are able to handle this. I'll try and see if we can make the PS3 happy with this patch, without bloating the code too much with hacks. But this feature and the strict DLNA feature should probably be mutually exclusive.

     
  • Justin Maggard

    Justin Maggard - 2011-06-22
    • labels: --> Enhancements
    • assigned_to: nobody --> jmaggard
     
  • Ivan Mironov

    Ivan Mironov - 2011-06-22

    > Thanks for your patch. :) Sorry for the lack of response on this so far.
    > I wasn't ignoring the old patch, it's just that it breaks one of our most
    > popular platforms, the PS3. It also breaks DLNA compliance in general, but
    > it seem most clients are able to handle this. I'll try and see if we can
    > make the PS3 happy with this patch, without bloating the code too much with
    > hacks.

    I recently downloaded the specs and try to understand them. At the moment I found only this: when a client requests an object with a zero ID (root), minidlna with my patch gives him an object with a nonzero ID and parentID = "0", which is wrong. I will try to fix it.

    What else is brоken?

    > But this feature and the strict DLNA feature should probably be
    > mutually exclusive.

    I added check for DLNA_STRICT_MASK in new version.

     
  • Justin Maggard

    Justin Maggard - 2011-06-23

    There are a couple things that the original patch breaks.
    1) BrowseMetadata on the root object returns non-root data. That appears to be what breaks the PS3.
    2) BrowseDirectChildren on root returns results with a non-root parentID. Browsing on some clients will be a little odd, because they'll show a parent folder which will just take them to the same listing.

    The new patch I just attached should take care of both of these issues, and not break DLNA compliance. Can you give it a look and try it out?

     
  • Ivan Mironov

    Ivan Mironov - 2011-06-24

    That's great! It seems everything is working properly. I tried the patch with the following clients:
    * Totem + Grilo plugin
    * XBMC 10.1
    * Windows Media Player 12
    * iconBIT HD40NMT
    * WD TV Live

    Just one small thing. Option parsing code should look like this:
    >case ROOT_CONTAINER:
    > switch( ary_options[i].value[0] )
    > {
    > case '.':
    > runtime_vars.root_container = NULL;
    > break;
    > case 'B':
    to handle config files like this:
    > root_container=m
    > root_container=b
    and this:
    > root_container=m
    > root_container=.
    in the same way.

     
  • Justin Maggard

    Justin Maggard - 2011-06-25
    • status: open --> open-accepted
     
  • Justin Maggard

    Justin Maggard - 2011-06-25

    All right, it's check in now. :) Thanks again for the patch!

     

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks