diff -uNr libao-0.8.5/configure libao-0.8.5-new/configure --- libao-0.8.5/configure Fri Mar 19 09:49:41 2004 +++ libao-0.8.5-new/configure Fri Nov 12 16:01:29 2004 @@ -5873,7 +5873,7 @@ allow_undefined_flag='-undefined suppress' ;; *) # Darwin 1.3 on - allow_undefined_flag='-flat_namespace -undefined suppress' + allow_undefined_flag='-undefined dynamic_lookup' ;; esac # FIXME: Relying on posixy $() will cause problems for @@ -8081,9 +8081,10 @@ PROFILE="-pg -g -O20 -D__NO_MATH_INLINES -fsigned-char -mv8" ;; *-darwin*) PLUGIN_LDFLAGS="-module -avoid-version" - DEBUG="-g -Wall -D__NO_MATH_INLINES -fsigned-char -Ddlsym=dlsym_auto_underscore" - CFLAGS="-D__NO_MATH_INLINES -fsigned-char -Ddlsym=dlsym_auto_underscore" - PROFILE="-g -pg -D__NO_MATH_INLINES -fsigned-char -Ddlsym=dlsym_auto_underscore" ;; + DEBUG="-g -Wall -D__NO_MATH_INLINES -fsigned-char" + CFLAGS="-D__NO_MATH_INLINES -fsigned-char" + LIBS="-Wl,-framework -Wl,CoreAudio" + PROFILE="-g -pg -D__NO_MATH_INLINES -fsigned-char" ;; *) PLUGIN_LDFLAGS="-export-dynamic -avoid-version" DEBUG="-g -Wall -D__NO_MATH_INLINES -fsigned-char" @@ -8184,7 +8185,7 @@ DLOPEN_FLAG='(RTLD_LAZY)' SHARED_LIB_EXT='.sl' ;; - *openbsd* | *netbsd* | *solaris2.7) + *darwin* | *openbsd* | *netbsd* | *solaris2.7) DLOPEN_FLAG='(RTLD_LAZY)' SHARED_LIB_EXT='.so' ;; diff -uNr libao-0.8.5/src/plugins/macosx/ao_macosx.c libao-0.8.5-new/src/plugins/macosx/ao_macosx.c --- libao-0.8.5/src/plugins/macosx/ao_macosx.c Tue Jun 24 07:15:00 2003 +++ libao-0.8.5-new/src/plugins/macosx/ao_macosx.c Fri Nov 12 16:08:25 2004 @@ -173,6 +173,27 @@ return 0; } + if (internal->outputStreamBasicDescription.mChannelsPerFrame != format->channels) + { + internal->outputStreamBasicDescription.mChannelsPerFrame = format->channels; + internal->outputStreamBasicDescription.mBytesPerFrame = + internal->outputStreamBasicDescription.mChannelsPerFrame * sizeof (float); + internal->outputStreamBasicDescription.mBytesPerPacket = + internal->outputStreamBasicDescription.mBytesPerFrame * + internal->outputStreamBasicDescription.mFramesPerPacket; + status = AudioDeviceSetProperty(internal->outputDeviceID, 0, 0, 0, + kAudioDevicePropertyStreamFormat, + sizeof (internal->outputStreamBasicDescription), + &internal->outputStreamBasicDescription); + if (status != noErr) + { + fprintf(stderr, "ao_macosx_open: AudioDeviceSetProperty returned %.*s when setting kAudioDevicePropertyStreamFormat\n", + (int) sizeof (status), (char *) &status); + return 0; + } + } + + fprintf(stderr, "hardware format...\n"); fprintf(stderr, "%f mSampleRate\n", internal->outputStreamBasicDescription.mSampleRate); fprintf(stderr, "%c%c%c%c mFormatID\n", (int)(internal->outputStreamBasicDescription.mFormatID & 0xff000000) >> 24,