64 bit beaTunes on Windows 7/8
For years now, beaTunes has used Apple's QuickTime SDK for Windows to decode and play audio files (on OS X, beaTunes uses CoreAudio and QTKit). Unfortunately, QuickTime for Windows is 32 bit only and has been all but abandoned by Apple a couple of years ago. In the OS X world it has been first replaced by QTKit and more recently by AVFoundation—and both are available in 64 bit, but not on Windows.
Truth be told, the QuickTime SDK is covered with quite a bit of patina. But to my knowledge it is the only commercially available, comprehensive cross-platform multimedia API. The only other library that comes close is the open source project FFmpeg (…which does not take care of licensing issues).
Why am I telling you all this?
Without some sort of inter process communication (a trick used by the QuickTime X player), any program that wants to use a 32 bit library, has to be a 32 bit process as well. And 32 bit means 4 GB of addressable memory per process—a boundary beaTunes with a big library and lots of parallel analysis tasks can bump against. As a consequence, to allow beaTunes to run as 64 bit process, I have to get rid of QuickTime and replace it with something else. This something else will be a mixture of different SampledSP-libraries—FFSampledSP for free codecs like FLAC and OGG and MFSampledSP for commercial formats like AAC, MP3 and WMA. For a complete list of available MFSampledSP decoders, please see this Microsoft Media Foundation article.
The switch away from QuickTime is planned for beaTunes 4, not due for at least a couple of months. But since most of the code for 64 bit audio decoding is already written and available, I'm making a special 64 bit Windows 7/8 build of beaTunes 3.5.15 available for you today. This should be interesting to folks with memory problems on Windows. In the 64 bit version they can increase the maximum heap size to a much larger value than the typical 1200 MB. If you want to try this, please keep in mind, that you need at least Windows 7—this will not work properly on Vista or XP! Obviously, you also need a 64 bit operating system and 64 bit hardware.
You can get the 64 bit version here: beaTunes-3-5-15-x86_64-win.exe
This build contains MFSampledSP, but not FFSampledSP. So working with most commercial codecs should be fine. Free or Apple specific codecs (e.g. Apple Lossless) on the other hand might be problematic.
Of course I'm putting this out there for your benefit, but also for mine. Please let me know, if you run into any kind of problems! I need your feedback to solve issues.
Thank you.
Labels: 64bit, FFmpeg, MediaFoundation, QuickTime, Release