GoSoC 2009 UPnP Proposal -draft 2

Bart Cerneels bart.cerneels at kde.org
Sun Mar 15 23:08:25 UTC 2009


On Mon, Mar 9, 2009 at 3:13 AM, Jeff Balinsky <jebsky at gmail.com> wrote:
> Hello again
>
> First I must thank those who have given me feedback
>
> I have rewritten my project proposal using said feedback.
>
> It is not done. But this one feels a lot better than the first one.
>
> 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).

I see you took my advice to incorporate DLNA into the description,
good. I've got some things to mention that you might want to
incorporate. It's not of major importance though, feel free to do with
it what you wish.

>
> UPnP is a standard maintained by the DLNA (digital living network alliance).
I'm not sure this is exactly correct. DLNA is more like a "user" of
UPnP, which is a much wider standard. It is however certainly correct
that DLNA maintains the UPnP AV archtecture, or at least supervises
the implementations of a lot of commercial companies.

> The standard has several types of devices. Most notable for amarok and this
> Project are:

Since you are mentioning DLNA it's best to use their terminalogy for
the device classes:
Digital Media Server (DLNA-DMS): Holds the content (or a least the
urls of the content) that can be browsed or searched for.

Digital Media Render (DLNA-DMR): the playback device that can be
controlled via UPnP

Digital Media Controller (DLNA-DMC). Which is a device that can browse
media on a DMR and play them back on a DMR.

One other class that should be mentioned is the Digital Media Player.
This playback device includes DMS browsing functionality but is not
controllable over the network. The most basic implementation described
in this proposal would make Amarok a DLNA-DMP.

>
> UPnP MediaServer ControlPoint – this is the client device class. It can
> auto-detect servers on the network in order to browse and stream content. -
> this is the goal of this project
>
> UPnP MediaServer DCP- this is the server device class that shares and
> streams media. - this is a secondary goal of this project.
>
> Rendering devices (UPnP MediaRenderer DCP, UPnP RenderingControl DCP) – this
> functionality would likely only be useful to a relatively small niche and
> most probably is beyond the scope of this project
>
> Goals
>
> The primary goal of this project is to add the functionality of an UPnP
> MediaServer ControlPoint to amarok. Thus allowing the playing of media off
> of servers on the network. This would make amarok much more useful and
> robust especially on systems which contain no local media(notebooks,
> netbooks, workstations, etc). The goal is for full DLNA compliance*.
I will try to find a way to get the (massive!) DLNA guidelines to you,
hopefully via the DLNA website. Some parts of the standard we might
not be able to comply with for either technical or policy reasons
(like DRM).

>
> The secondary goal of this project is to add the functionality of an UPnP
> MediaServer DCP which would allow amarok to share its local collection over
> the network. This would be very useful to users wishing to play their music
> on their home theater systems via their Xbox, Playstaion or other compatible
> device. Also this will allow the sharing to other installations of amarok.

A goal of this part should be to update the statistics in the Amarok
database when a track is being played remotely.

>
> Anything I manage to accomplish past this is to be considered icing on the
> cake.

I wouldn't exclude DMR controlling so fast though. It will probably be
simpler to implement then the DMS part and this use case is becoming
more and more prevalent (because of WMP 11 in vista and windows 7).
More and more networked devices are implementing DMR. It's an
excellent to liberate the music from the PC while still remaining full
control through a rich and familiar interface. And believe me, we can
do a lot better then the Windows 7 implementation!

>
> 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 DMS browsing I will need to write a new Collection and Media class*.
>
> I will implement the DMS I will write a script. This allows it to be
> optional for the end user and also allows it to be upgraded fairly easily.
>
> Fuzzy Work Timeline
>
> GoSoC Has two evaluation deadlines midterm in early July and final in late
> August thus I will probably split this in two parts
>
> (to attempt to do this at this point I feel is slightly premature)
>
> But so far from what I have looked into I will probably (in the beginning)
> go through chronologically through the steps in the UPnP protocol:
>
> Discovery
>
> Description
>
> Control
>
> Event Notification
>
> Presentation
>
> 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.
>
> The asterisks * denote somewhere where I need to do research to elaborate
>
> my current to do list for this proposal finishing this proposal is:
>
> -get myself where I can view/edit/compile the amarok code (any and all help
> welcome)
>
> -find the specifications for DLNA compliance
>
> All feedback welcome/helpful. You are not going to hurt my feelings.
>
> -Jeff
>
> _______________________________________________
> Amarok mailing list
> Amarok at kde.org
> https://mail.kde.org/mailman/listinfo/amarok
>
>



More information about the Amarok mailing list