[Flac-dev] Re: multiple core support

Brian Willoughby brianw at sounds.wa.com
Thu Sep 6 17:39:03 PDT 2007


I really should have just said that it will require some testing to  
make sure the FLAC API can handle writing the same file from multiple  
threads.  It may not turn out to be complicated at all.

The FLAC decoder has its own code for writing PCM files already.   
Tweaking this to support multi-threaded writes would not be too  
difficult.  It's simply a matter of building the PCM file, setting  
aside the data area for the PCM samples, and then providing each  
thread with information needed to write at different offsets.  FLAC  
never needs to "check for valid PCM streams" since it is creating the  
PCM stream from scratch every time.

Recording always involves a PCM data buffer.  You're correct that  
there might be a 2 CPU split, automatically, depending upon the  
system.  However, I was simply stating that going to an arbitrary  
number of threads would not be possible when recording, since you're  
only getting one block at a time, and the block is where the division  
between CPUs would be made.

Brian W.


On Sep 6, 2007, at 17:24, Harry Sack wrote:

it's really not complicated I think: only api changes to write on any
position in the file if that's not possible already with existing
function.

I'm not sure if decoding can have multi-core support: you need an api
for writing pcm files in different parts then and this is maybe more
difficult to check if it's valid pcm data since the decoder can only
check for valid flac streams , not pcm streams i think.

you can make recording also support multi cores: just let cpu 1 fill a
pcm data buffer while cpu 2 encodes it. In this case you have a more
reliable encoding with less cpu usage of your system (it's spread
among 2 cpu's)




More information about the Flac-dev mailing list