GoSoC 2009 UPnP Proposal -draft 3

Ian Monroe ian.monroe at gmail.com
Thu Mar 19 03:25:46 UTC 2009


2009/3/18 Jeff Balinsky <jebsky at gmail.com>:
> My third draft. Thanks for the input again. Did amarok get accepted by
> google for GoSoC?

KDE did, which is the umbrella Amarok is under for GSoC.

> I think I am on top of things now.
>
> Amarok UPnP support
>
> Jeff Balinsky
>
> Summary
>
> Many modern home entertainment devices (most notably the Xbox 360 and PS3)
> have the ability to play content of of UPnP shares. In the public domain

The correct term is 'open source'. Technically things aren't in the
public domain until the copyright expires, which takes like a century.

> there are several backends allowing a user to set up a mediaserver on their
> linux pc (coherence, ushare) and others allowing the browsing of and
> rendering of those shares(coherence, djmount).
>
> UPnP is a standard maintained by the DLNA (digital living network alliance).
> The standard has several types of devices. Most notable for amarok and this
> project are:
>
> DMS (DLNA Digital Media Server) - These devices store content and make it
> available to networked digital media players (DMP) and digital media
> renderers (DMR).
>
> DMP (DLNA Digital Media Player) - These devices find content on digital
> media servers (DMS) and provide playback and rendering capabilities.
>
> DMC (DLNA Digital Media Controller) - These devices find content on digital
> media servers (DMS) and play it on digital media renderers (DMR).
>
> -I do not believe DMR would be that useful to amarok or its users
>
> DMR (DLNA Digital Media Renderer) - These devices play content received from
> a digital media controller (DMC), which will find content from a digital
> media server (DMS).

Its good to define all this stuff since many mentors reading the app
won't know much about upnp.

> Goals – I now understand the DLNA classes better so this is much more
> concise
>
> [http://www.dlna.org/digital_living/devices/]
>
> DLNA – DMP
>
> The most useful for amarok and its user base would to be able to play
> content off of networked DMS. This is also probably the least complicated.
> This is the primary goal of this project.
>
> DLNA – DMS
>
> Also useful would be the ability to share the content of the amarok library
> as a DMS allowing other DMPs and DMRs to play the content. The secondary
> goal of this project will be DMS functionality. An amarok goal for this part
> would be to update the amarok library on a remote play.
>
> DLNA – DMC
>
> Useful to some users would be DMC functionality (those that have both a DMS
> and DMR on the network). A tertiary goal of this project will be DMC
> functionality.
>
> DLNA – DMR
>
> This is not ruled out for this project. This is only of use to people that
> have a DMS and a DMC on the network and want to use amarok to render content
> remotely.
>
> Details/Implementation
>
> Coherence (http://coherence.beebits.net/) is to be used as a backend for the
> implementation of this project. It has “an emerging DBus API”. It is to be
> used by kdelibs for a KIO slave and is multiplatform. I am told that I will
> need to work with the coherence developers in progressing their API.
>
> For the DMP functionality I will write a new Collection and Media class.

By Media I think you mean Meta.

> Allowing files on a DMS to be inserted in the playlist.
>
> I plan implement the DMS as a script. This allows it to be optional for the
> end user and also allows it to be upgraded fairly easily.
>
> Possibilities for DMC functionality include the writing of a custom
> plasmoid. This plasmoid could be the external DMRs playlist. You would drag
> from the new DMS browsing collection and media class(that I will write for
> DMP functionality) into the custom plasmoid.
>
> DMR functionality could be implemented so for the user it is similar to
> playing a radio stream. Just drag to the playlist and select
>
> Fuzzy Work Timeline
>
> GoSoC Has two evaluation deadlines midterm in early July (~6 weeks in) and
> final in late August thus I will probably split this in two parts. It is
> around 13 weeks long.
>
> Start May 23rd
>
> ~1-2 weeks make sure I am set up. Investigate Coherence, Collection and
> Media Classes and DLNA compliance specifications
>
> ~1 week write DMS Browser Collection and media class.
>
> ~1 week raise to DLNA DMP full compliance specifications
>
> ~1-2 weeks Investigate Scripting in amarok possibly more into Coherence
> (Qtscript whatever I need)
>
> - Midterm evaluation?
>
> ~1-2 week write DMS script
>
> ~1 week raise to DLNA DMS full compliance
>
> ~1 week Investigate Plasma more Coherence
>
> ~1-2 weeks write DMC plasmoid
>
> Qualifications
>
> In the fall of '09 I will be a senior CS major at Hood College
> (http://cs.hood.edu). I have been programming for about 5 years through high
> school and college. I am currently using Qt and C++ and am comfortable with
> both. The idea of using kdelibs doesn't particularly bother me. I consider
> myself functionally knowledgeable in networking and data com theory. I want
> to do more network type programming.
>
> Other
>
> I spent some time with the amarok svn last week. I had never used svn
> before. Got it to compile and run eventually. Got to say I really liked the
> last.fm stuff. And the idea of a more customizable playlist.
>

More details about the current state of Coherence, and what needs to
be done there. You should probably also look over the code for
something like the DAAP collection or the iPod, to see what it takes
to implement a collection. Its actually not trivial at all. :)



More information about the Amarok mailing list