--- Harry Sack <[EMAIL PROTECTED]> wrote: > 2007/9/8, Josh Coalson <[EMAIL PROTECTED]>: > > > > it actually is complicated. the libFLAC api is not suited to a > > multithreaded design because the i/o is stream-based, not file- > > based. flac(.exe) is the file-based wrapper around libFLAC that > > allows it to work on files. the way libFLAC buffers data is also > > impossible to parallelize without significantly changing the api. > > why was this approach used?
because the tradeoffs I described required for arbitrarily parallel encoding significantly complicate the api and implementation. libFLAC was not design for multicode file encoding on PCs, it is a reference design that is also being used in embedded devices running <100MHz, low memory, all kinds of different OSes, etc. > The API design seems to me not very smart > because it's not flexible and you're stuck in the future (like now > for multiple core support) > > I don't see any reason why you wouldn't make it all based on files > and not on streams :s It's just a major disavantage in my opinion an api cannot be all things to everyone. you keep making this assertion but if you actually tried to implement it (and I hope you will) the problems we are all bringing up will quickly become obvious. your own lame-mt example is not an incremental improvement but a significant rewrite of lame (and also does not have nearly the performance advantage of process-level parallelism, see http://www.hydrogenaudio.org/forums/index.php?showtopic=50862) > > it would take a specialty file-based encoder using an independent > > frame encoder to do and even that is not trivial. > > so we can assume that those API changes will never come and the flac > encoder will never have multiple core support? you can assume libFLAC will probably not have it. if you can modify libFLAC to make a multithreaded encoder like flac-mt that would be neat and probably useful to some people. until that time there is not much point repeating the same assertions which are just going to aggravate people. Josh ____________________________________________________________________________________ Building a website is a piece of cake. Yahoo! Small Business gives you all the tools to get online. http://smallbusiness.yahoo.com/webhosting _______________________________________________ Flac-dev mailing list Flacemail@example.com http://lists.xiph.org/mailman/listinfo/flac-dev