Rockbox mail archiveSubject: Re: Gapless Playback Engine
From: Björn Stenberg (bjorn_at_haxx.se)
Spam Me wrote:
Loading from disk does not need a separate process. It's better if the decoder simply fills up its' own input buffer when it runs out. The only reason to use two processes would be if we are short on cpu time, which we do not expect to be.
Also, rendering transitions after decoding/buffering would be very expensive, since it involves moving large amounts of data around in memory. It is better to make the renderings immediately in the output buffer, as the data comes in from the decoder. That way no data has to be moved.
> - While still decoding i.e. song 3, new songs have to be loaded from
Yes, we have a working single-buffer system today. We just need to add a second buffer.
> PROCESS 2: Decode/Play-process
Actually the decode process is not real-time critical at all. As long as it gets enough cpu time in total to decode data faster than it is played, it doesn't matter when it executes.
A few words on Rockbox design: KISS (Keep It Simple, Stupid) is a very highly regarded design principle in Rockbox. We don't make solutions any more complex than they have to be to get the job done. We actively resist "designing for the future" or making elegant abstractions. Instead we design and write code to do exactly what we want right now. Nothing more. While this might sound like it would result in bad design and sloppy code, in reality it results in simple designs and readable code that is easily modified and expanded as the needs arise.
-- Björn _______________________________________________ http://cool.haxx.se/mailman/listinfo/rockbox
Page was last modified "Jan 10 2012" The Rockbox Crew