Re: [Rhythmbox-devel] Seamless playing

Quoting Andreas Bombe <>:

> ... is something I'm going to work on, now that I've got gstreamer 0.7.4
> working with rhythmbox 0.7, mostly.
> I haven't yet delved into the sources, but from what I gather acquiring
> data, decoding and playing to audio device is a completely self
> contained task handed to the player backend.
> If those backends don't support seamless playback of multiple audio
> files (do gstreamer or xine have provisions for this?) I'll have to
> split that into a decode to audio samples part and a samples output
> part.  Then I could handle the samples in rb independently of the
> backends, opening the next file to play ahead of time and switch to the
> new sample stream right when the first file finished decoding.
for GStreamer: 
What the person doing this wants to do most likely is create two decoding 
streams, one output stream and a mixer element. The mixer element would pull 
from decoding stream {1,2} until it gets an EOS and would continue with {2,1} 
after sending a discont / new media event.
This would allow everything from seamless playback to crossfading to whatever 
people invent.
It would require writing the element that does this, too. And you might need 
to work on getting seeking right.
And it would require working out how format changes between titles should work 
(if my first song was an 8bit mono 22.05kHz wav file and the second is a 6 
channel AAC or whatever, I don't want either of them to be down-/upmixed in 

That's just to illustrate some problems tat will show up and pointing out why 
it hasn't been done already.

> On a somewhat different topic, has anyone thought about making it work
> for playing audio with more than two channels?  AFAICS gstreamer
> vorbisdec and mad only decode one or two channels anyway, so that's the
> limitation...
It'll not be very hard to get going once we GStreamer guys have had hardware 
and software to test that.
I'm currently using my onbord soundcard to do all my tests on and I'm 
listening to my CD collection there. Both can't do more than stereo... ;)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]