Comment 17 for bug 491543

Revision history for this message
William Good (bkgood) wrote :

I've linked my features_flac branch, which decodes flac using libFLAC in a SoundSourceFLAC. Metadata isn't yet implemented but should be by the end of the weekend and likely sooner. It plays every FLAC file I've thrown at it, including one encoded myself, "I Can't Make You Love Me" (attached to this bug), and one of the breakcore files mentioned in comment 10 (the commented said that they all didn't work, so I figured trying one meant they'd probably all work, and I've been staring at this monitor for quite a while now :)).

It currently is enabled by defines, so anyone interested it trying it out will need to build with `scons flac=1`. It doesn't add any dependencies to Mixxx that weren't already there, as mixxx depends on sndfile which depends on libflac (at least it links on my system) for flac support.

I believe the class to be stable, it's a fairly simple pair of files really; the source file is something like 300 lines long.

@Hal -- the bug regarding song durations being reset to 0:00 on play is being addressed at https://bugs.launchpad.net/mixxx/+bug/598641 (it's a bug for all formats but mp3). Otherwise, hopefully my branch (if adopted) will solve the rest of your problems. :)

One thing I will mention -- I don't know that I can [easily or at all] make this class support ID3v2 tags in FLAC files. Frankly, as Erik said, they don't belong in a true FLAC file (I'm grateful libflac will even decode them truthfully, I probably wouldn't be as nice of a decoder-library maintainer :)) and make the file inherently corrupt just being there. Luckily, from what I've seen, tagging programs which add ID3v2 tags seem to also be adding flac tags.