kdemm backends & Helix
Allan Sandfeld Jensen
kde at carewolf.com
Tue Sep 14 23:12:12 BST 2004
Hi Ryan
On Tuesday 14 September 2004 20:25, Ryan Gammon wrote:
> I was poking around kdelibs/kdemm on make_it_cool, looking at some of
> the neat stuff you're doing with multimedia.
>
> A couple of quick questions:
> 1. Is anyone interested in a helix-based implementation of these
> interfaces? (helixcommunity.org, helix client is the open-source media
> engine that powers the RealPlayer).
I don't think we would object to an implementation, but neither do I think
anyone here is willing to write it themselves.
> 2. I'm a little confused by channels -- if there's something someone can
> point me at that talks a bit about what this is, it'd be much appreciated.
Unfortunately no. It is one of the things still under debate and heavy change,
For instance I am currently changing a few designs while writing the shared
state mixer.
The basic idea is to group types of playback into logically groups that the
user can interact with seperately (using a mixer or equalizer for instance).
Groups such as; music, events and video are being proposed as a minimum.
When an applications plays multimedia, it will have to specify which channel
it wants to use. More advanced features such as being able to apply effects
to channels are left as an option for the backends.
We are still waiting for the basic implementations of various backends before
seeing what exactly will be the best way to provide these options.
> 3. If one wanted to provide access to extended media engine
> functionality with these interfaces, how would they go about doing it?
>
> For example, we developed a simplifed gtk widget around the Helix Player
> for our Helix Player 1.0 / RealPlayer 10 for linux project. There's a
> lot of media engine functionality that we didn't want to add to the gtk
> api -- we wanted to keep it simple -- so we added a mechanism to get at
> the underlying engine.
>
> Let's say I wanted to make playback statistics (packet loss, etc)
> available to an app, but that statistics was not something that was
> standardized enough across backends that it made sense for kdemm.
>
> Would I implement those methods on a hypothetical HelixVideoPlayer
> class, and cast from a VideoPlayer up to a HelixVideoPlayer in my app?
If you want to use specialized interfaces you should use the Backend class
directly and not through the factory. The factory would in this case only be
used to get a pointer to the backend, and only the backend casted if
necessary. Remember that return types can be changed in virtually inherited
functions. So the HelixBackend::createVideoPlayer can return a
HelixVideoPlayer* directly as long as HelixVideoPlayer derives from
VideoPlayer.
Please remember however, that this is work in progress and under continued
discussion. Started only a few weeks ago and with a deadline 15 months from
now, nothing much is really certain, and good ideas are still very much
appreciated.
`Allan
More information about the kde-multimedia
mailing list