GoSoC 2009 UPnP Proposal -draft 3

Bart Cerneels bart.cerneels at kde.org
Fri Mar 20 08:40:36 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?
>
> 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
> 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).

I think you are a bit confused about what a DMR is, the DLNS website
explains it wrong (or perhaps oversimplified for a lay audience) in my
opinion:
- A DMR is a device that can be controlled remotely by a DMR using
UPnP. It communicates with a DMS, but only for getting the contents.
UPnP does not specify what form this out-of-band takes. This means
it's not part of, or using, UPnP protocols. DLNA does specify that it
must support "http-get" and optionally supports "rtsp-rtp-udp". In
general UPnP also considered other transport methods, like the RCA
cable between VCR and TV or more modern: the HDMI cable between PS3
and HDTV.

Adding DMR to Amarok (i.e. turning amarok in a DMR) will make it
controllable using UPnP via the network. /me thinks there are a lot of
people who would like that very much.
You are wrong in assuming there are not a lot of DMC's BTW. All Nokia
S60 smartphones are. So that is roughly 500 million devices already.
Then there is a brand of Phillips universal remotes that also
implement it. I'm currently working on a project adding DMC
functionality to a residential gateway, ...

You shouldn't put your personal opinion in the situation explanation
part of your proposal BTW, but I assume you won't put it in the final
version anyway.


>
> 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.

This would be very easy to implement in a script. In fact, I might
attempt that as a small project to learn QtScript + the details of the
Coherence DBUS-API myself. The other tasks are way more important and
the DMP use-case needs to be top notch.


I'm perfectly
>
> 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.
> 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.
Draging to plasmoids (that are in the context area) is not possible
ATM because it's obscured by the PopUpDropper. This a design decision.
So this specific implementation needs to be discussed.

>
> DMR functionality could be implemented so for the user it is similar to
> playing a radio stream. Just drag to the playlist and select
I think you mean DMC functionality here? Playing something remotely on
a DMR? At least the rest of the explanation talks about the DLNA
device classes as being implemented by Amarok.

Like I said DMR is just a way to control Amarok remotely. This can be
implemented as a script or by bridging
MPRIS (the DBUS API for mediaplayers) to UPnP (providing all required
info is available).

>
> 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.
>
> _______________________________________________
> Amarok mailing list
> Amarok at kde.org
> https://mail.kde.org/mailman/listinfo/amarok
>
>



More information about the Amarok mailing list