| Hi All,
Worked through all my issues getting Mixxx to compile on Snow Leopard and took a crack at solving the problem with M4A not building. And so now I have Mixxx w/ M4A going on 10.6.
I use a Mac Ports (a BSD ports system for OSX) build environment, since upgrading from Leopard I had no success getting Mixxx built. In part this is due to Qt Frameworks not being 64-bit (I think).
The patch I've made [attached] to SConscript uses Mac Ports Qt frameworks, includes and libs... It only becomes activated in SCons if running under OSX and your QTDIR = /opt/local/libexec/qt4-mac (this being the default QTDIR on a mac ports build of Qt).
The second part of the patch gets M4A support working again, by partially converting the m4a source files in Mixxx to support mp4v2 1.9+ (<mp4v2/mp4v2.h>) in addition to mp4v2 1.6 (<mp4.h>) ... I didn't realize that M4A was broken in general on OSX (even non-mac-ports installs) until iggy mentioned it on IRC, so I guess the risk of breaking M4A with these carefully ifdef'ed changes is limited to Windows and Linux - of which I've tested this patch on neither.
M4A playback is okay, but there are a good number of debug messages that spit up about 0 overflow remains -- maybe this is something that has been fixed on a branch, I'm just playing off my trunk copy: Debug: [Main]: Load to player1: "/Users/ged/Music/iTunes/iTunes Music/Deadmau5/Random Album Title/10 Not Exactly.m4a" Debug: [Reader 1]: Decoder Config 2 44100 0 0 Debug: [Reader 1]: SSM4A: channels: 2 filelength: 42340352 Sample Rate: 44100 Debug: [Reader 1]: SSM4A::seek() 0 Debug: [Reader 1]: Reading 4096 from overflow. 0 overflow remains Debug: [AnalyserQueue 1]: Decoder Config 2 44100 0 0 Debug: [AnalyserQueue 1]: SSM4A: channels: 2 filelength: 42340352 Sample Rate: 44100 Debug: [AnalyserQueue 1]: AnalyserWaveform: f 44100 samplesPerDownsample: 110 downsamples 384912 from 42340352 Debug: [AnalyserQueue 1]: ERROR Debug: [Main]: Received waveform from track Debug: [AnalyserQueue 1]: EOF Debug: [AnalyserQueue 1]: MP4READ: total_bytes_decoded: 8192 size: 65536 Debug: [AnalyserQueue 1]: AnalyserWavesummary generation successful for "10 Not Exactly.m4a" Debug: [AnalyserQueue 1]: AnalyserWaveform :: Waveform downsampling finished. Debug: [AnalyserQueue 1]: AnalyserWaveform :: Generation took 12.2908 seconds Debug: [AnalyserQueue 1]: AnalyserBPM BPM detection successful for "10 Not Exactly.m4a" Debug: [AnalyserQueue 1]: AnalyserBPM BPM is 127.941 (raw: 127.941 ) Debug: [Reader 1]: SSM4A::seek() 16384 Debug: [Reader 1]: Reading 4096 from overflow. 0 overflow remains Debug: [Reader 1]: SSM4A::seek() 32768 Debug: [Reader 1]: Reading 4096 from overflow. 0 overflow remains Debug: [Reader 1]: SSM4A::seek() 49152 Debug: [Reader 1]: Reading 4096 from overflow. 0 overflow remains Debug: [Reader 1]: SSM4A::seek() 65536 Debug: [Reader 1]: Reading 4096 from overflow. 0 overflow remains Debug: [Reader 1]: SSM4A::seek() 81920 ..... For those wishing to trace the foot steps using mac ports on your Christmas Macs (if any of you should be so lucky :D), here is the method I used, complete with all the putzing around I did: #### Rebooting Mac Ports after the upgrade from OSX Leopard 10.5 to Snow Leopard 10.6 # info from http://trac.macports.org/wiki/Migration and http://www.foldr.org/~michaelw/log/static/computers/macosx/build_macports64 port installed > old-installed-ports.txt # go through this list and figure out what you want to install again sudo port -f uninstall installed sudo port clean --work --archive all
### Not sure if this is required or not for Mixxx... may not be since the patch I did adds mac ports to the inc, lib, and framework path. sudo sh -c 'echo "+universal" >> /opt/local/etc/macports/variants.conf' # force all builds to build both 32 and 64-bit
### Handy to have stuff # sudo port install alpine # pine mail client replacement # sudo port install meld # gtk based diff tool # sudo port install wakeonlan rdesktop rsync dwdiff sudo port install bzip2 curl dos2unix findutils gsed gzip htop mc nano ncdu unrar wget # basic tools (non-development)
### Mixxx stuff sudo port install portaudio # for mixxx sudo port install libid3tag # for mixxx sudo port install libmad # for mixxx sudo port install libsndfile # for mixxx sudo port install mp4v2 # for mixxx m4a support -- use mp4v2 (1.9.1), DO NOT use mp4v2-dev which is a newer snapshot as it removes meta.h which contains functions like MP4GetMetadataArtist which m4asoundsource currently depend on - see http://kid3.svn.sourceforge.net/viewvc/kid3/trunk/kid3/kid3/m4afile.cpp?r1=567&r2=622 for some code that reimplements those meta data calls
sudo port install gcc_select # sudo gcc_select -l sudo gcc_select gcc42 # must use Apple's GCC because of this issue to do with OSX frameworks: http://www.mail-archive.com/[email protected]/msg08332.html
sudo port install qt4-mac-devel # install Qt 4.6.0, used for OSX 10.6 installs when Qt 4.5.3 doesn't behave properly (because of 64-bit support) -- Compiling this takes like 8 to 10 hours
So that's all for now... Have a Merry Christmas to everyone celebrating.
Cheers,
-G
|
trunk-macports-mp4v2.diff
Description: Binary data
------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev
_______________________________________________
Mixxx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mixxx-devel