Review Request: UPnP Collection

Nikhil Shantanu Marathe nsm.nikhil at gmail.com
Mon Oct 25 19:02:22 CEST 2010



> On 2010-10-25 16:53:27, Ian Monroe wrote:
> > Hey so basically this just needs some CMake tweaks (needs to not abort if it can't find the library) and then it can be pushed into master. Its a plugin so we can always disable it before the next release if its not ready.
> > 
> > I could make the cmake changes and push it. Is this on git somewhere?

Its on my gitorious, http://gitorious.org/~nikhilm/amarok/nikhilms-amarok/commits/upnp-collection
I would really like reviews on the code too, I'm not sure how many developers actually have a use for the UPnP collection.
Thanks for the CMake fixes.


- Nikhil Shantanu


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/100065/#review194
-----------------------------------------------------------


On 2010-10-17 11:30:11, Nikhil Shantanu Marathe wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/100065/
> -----------------------------------------------------------
> 
> (Updated 2010-10-17 11:30:11)
> 
> 
> Review request for Amarok.
> 
> 
> Summary
> -------
> 
> Adds UPnP collection support.
> 
> 1) Depends on the Cagibi SSDP daemon for discovery and the UPnP KIO slave (http://gitorious.org/kio-upnp-ms) for browse
> 2) Each upnp device is represented as a collection.
> 3) Tries to use search based collection to reduce memory usage and push complexity to the server. Falls back to MemoryCollection and simple browse when search is not supported
> 4) BrowseCollection performs a full scan using KIO::listDir
> 5) SearchCollection uses the slave and queues up jobs as required. The slave API is documented in the slave (controlpointthread.h)
> 
> Other than code feedback, I am not sure about certain build parameters
> 1) How do I check if the upnp kio slave is installed? Right now I'm checking for hupnp, but that probably isn't the right way
> 
> What is left:
> * In certain cases, the CPU usage goes very high when running a full scan using BrowseCollection
> * Needs some profiling
> * Fix warnings
> 
> 
> This addresses bug 145683.
>     https://bugs.kde.org/show_bug.cgi?id=145683
> 
> 
> Diffs
> -----
> 
>   CMakeLists.txt baacef5 
>   cmake/modules/FindHUpnp.cmake PRE-CREATION 
>   src/core-impl/collections/CMakeLists.txt 1e29df7 
>   src/core-impl/collections/upnp/CMakeLists.txt 441cd04 
>   src/core-impl/collections/upnp/amarok_collection-upnpcollection.desktop 061b661 
>   src/core-impl/collections/upnpcollection/CMakeLists.txt PRE-CREATION 
>   src/core-impl/collections/upnpcollection/UpnpBrowseCollection.h PRE-CREATION 
>   src/core-impl/collections/upnpcollection/UpnpBrowseCollection.cpp PRE-CREATION 
>   src/core-impl/collections/upnpcollection/UpnpCache.h PRE-CREATION 
>   src/core-impl/collections/upnpcollection/UpnpCache.cpp PRE-CREATION 
>   src/core-impl/collections/upnpcollection/UpnpCollectionBase.h PRE-CREATION 
>   src/core-impl/collections/upnpcollection/UpnpCollectionBase.cpp PRE-CREATION 
>   src/core-impl/collections/upnpcollection/UpnpCollectionFactory.h PRE-CREATION 
>   src/core-impl/collections/upnpcollection/UpnpCollectionFactory.cpp PRE-CREATION 
>   src/core-impl/collections/upnpcollection/UpnpMemoryQueryMaker.h PRE-CREATION 
>   src/core-impl/collections/upnpcollection/UpnpMemoryQueryMaker.cpp PRE-CREATION 
>   src/core-impl/collections/upnpcollection/UpnpMeta.h PRE-CREATION 
>   src/core-impl/collections/upnpcollection/UpnpMeta.cpp PRE-CREATION 
>   src/core-impl/collections/upnpcollection/UpnpQuery.h PRE-CREATION 
>   src/core-impl/collections/upnpcollection/UpnpQuery.cpp PRE-CREATION 
>   src/core-impl/collections/upnpcollection/UpnpQueryMaker.h PRE-CREATION 
>   src/core-impl/collections/upnpcollection/UpnpQueryMaker.cpp PRE-CREATION 
>   src/core-impl/collections/upnpcollection/UpnpQueryMakerInternal.h PRE-CREATION 
>   src/core-impl/collections/upnpcollection/UpnpQueryMakerInternal.cpp PRE-CREATION 
>   src/core-impl/collections/upnpcollection/UpnpSearchCollection.h PRE-CREATION 
>   src/core-impl/collections/upnpcollection/UpnpSearchCollection.cpp PRE-CREATION 
>   src/core-impl/collections/upnpcollection/amarok_collection-upnpcollection.desktop PRE-CREATION 
>   src/core-impl/collections/upnpcollection/dbuscodec.h PRE-CREATION 
>   src/core-impl/collections/upnpcollection/dbuscodec.cpp PRE-CREATION 
>   src/core-impl/collections/upnpcollection/deviceinfo.h PRE-CREATION 
> 
> Diff: http://git.reviewboard.kde.org/r/100065/diff
> 
> 
> Testing
> -------
> 
> Tested with:
> 
> MediaTomb - browse based
> Fuppes - search based
> miniDLNA - search based (high quality)
> 
> There are issues with Windows Media Player's inbuilt upnp server. Some don't get accessed, and some don't stream their music at all. This may or may not be an upstream bug, or perhaps WMP's upnp is not standards compliant. Either way it requires investigation.
> 
> 
> Thanks,
> 
> Nikhil Shantanu
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/amarok-devel/attachments/20101025/e9315bc0/attachment-0001.htm 


More information about the Amarok-devel mailing list