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


Attachment: 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

Reply via email to