Revision: 116836 https://trac.macports.org/changeset/116836 Author: hum@macports.org Date: 2014-02-08 04:34:59 -0800 (Sat, 08 Feb 2014) Log Message: ----------- portaudio: update to 19.20140130. Modified Paths: -------------- trunk/dports/audio/portaudio/Portfile trunk/dports/audio/portaudio/files/patch-configure trunk/dports/audio/portaudio/files/patch-src__hostapi__coreaudio__pa_mac_core.c Removed Paths: ------------- trunk/dports/audio/portaudio/files/patch-IOerror.diff trunk/dports/audio/portaudio/files/patch-clang.diff trunk/dports/audio/portaudio/files/patch-include__pa_mac_core.h.diff Modified: trunk/dports/audio/portaudio/Portfile =================================================================== --- trunk/dports/audio/portaudio/Portfile 2014-02-08 12:19:02 UTC (rev 116835) +++ trunk/dports/audio/portaudio/Portfile 2014-02-08 12:34:59 UTC (rev 116836) @@ -4,8 +4,7 @@ PortSystem 1.0 name portaudio -version 19.20111121 -revision 5 +version 19.20140130 categories audio devel platforms darwin macosx maintainers hum openmaintainer @@ -27,8 +26,8 @@ distname pa_stable_v[strsed ${version} {g/\./_/}] extract.suffix .tgz -checksums rmd160 cd6a38824eb6ece1aae24494b6d05451c42dc319 \ - sha256 9c26d1330d506496789edafe55b0386f20d83c4aa2c0e3f81fbeb0f114ab1b99 +checksums rmd160 0a290cea8a102a45b2df9b72046b3eed0ab35b4f \ + sha256 8fe024a5f0681e112c6979808f684c3516061cc51d3acc0b726af98fc96c8d57 worksrcdir ${name} @@ -41,19 +40,12 @@ # patch-configure removes -Werror, and adds -DNDEBUG. patchfiles patch-configure \ patch-ltmain.sh.diff \ - patch-src__common__pa_types.h \ - patch-clang.diff + patch-src__common__pa_types.h platform darwin { - # patch-IOerror.diff is a fix for "Input overflowed" IOError; see #39150. - patchfiles-append patch-IOerror.diff if {${os.major} >= 10} { patchfiles-append patch-src__hostapi__coreaudio__pa_mac_core.c } - if {${os.major} >= 11} { - # patch-include__pa_mac_core.h.diff is for Lion (10.7); see #30251. - patchfiles-append patch-include__pa_mac_core.h.diff - } } use_parallel_build no Deleted: trunk/dports/audio/portaudio/files/patch-IOerror.diff =================================================================== --- trunk/dports/audio/portaudio/files/patch-IOerror.diff 2014-02-08 12:19:02 UTC (rev 116835) +++ trunk/dports/audio/portaudio/files/patch-IOerror.diff 2014-02-08 12:34:59 UTC (rev 116836) @@ -1,239 +0,0 @@ -Index: src/hostapi/coreaudio/pa_mac_core_blocking.c -=================================================================== ---- src/hostapi/coreaudio/pa_mac_core_blocking.c (Revision 1843) -+++ src/hostapi/coreaudio/pa_mac_core_blocking.c (Revision 1844) -@@ -359,8 +359,9 @@ - - /* check for underflow */ - if( avail < frameCount * blio->inputSampleSizeActual * blio->inChan ) -+ { - OSAtomicOr32( paInputOverflow, &blio->statusFlags ); -- -+ } - toRead = MIN( avail, frameCount * blio->inputSampleSizeActual * blio->inChan ); - - /* copy the data */ -Index: src/hostapi/coreaudio/pa_mac_core.c -=================================================================== ---- src/hostapi/coreaudio/pa_mac_core.c (Revision 1843) -+++ src/hostapi/coreaudio/pa_mac_core.c (Revision 1844) -@@ -1774,25 +1774,16 @@ - do is initialize everything so that if we fail, we know what hasn't - been touched. - */ -- -- stream->inputAudioBufferList.mBuffers[0].mData = NULL; -- stream->inputRingBuffer.buffer = NULL; -- bzero( &stream->blio, sizeof( PaMacBlio ) ); --/* -+ bzero( stream, sizeof( PaMacCoreStream ) ); -+ -+ /* - stream->blio.inputRingBuffer.buffer = NULL; - stream->blio.outputRingBuffer.buffer = NULL; - stream->blio.inputSampleFormat = inputParameters?inputParameters->sampleFormat:0; - stream->blio.inputSampleSize = computeSampleSizeFromFormat(stream->blio.inputSampleFormat); - stream->blio.outputSampleFormat=outputParameters?outputParameters->sampleFormat:0; - stream->blio.outputSampleSize = computeSampleSizeFromFormat(stream->blio.outputSampleFormat); --*/ -- stream->inputSRConverter = NULL; -- stream->inputUnit = NULL; -- stream->outputUnit = NULL; -- stream->inputFramesPerBuffer = 0; -- stream->outputFramesPerBuffer = 0; -- stream->bufferProcessorIsInitialized = FALSE; -- stream->timingInformationMutexIsInitialized = 0; -+ */ - - /* assert( streamCallback ) ; */ /* only callback mode is implemented */ - if( streamCallback ) -@@ -2145,11 +2136,11 @@ - const bool isRender = inBusNumber == OUTPUT_ELEMENT; - int callbackResult = paContinue ; - double hostTimeStampInPaTime = HOST_TIME_TO_PA_TIME(inTimeStamp->mHostTime); -- -+ - VVDBUG(("AudioIOProc()\n")); - - PaUtil_BeginCpuLoadMeasurement( &stream->cpuLoadMeasurer ); -- -+ - /* -----------------------------------------------------------------*\ - This output may be useful for debugging, - But printing durring the callback is a bad enough idea that -@@ -2250,7 +2241,8 @@ - * - */ - OSStatus err = 0; -- unsigned long frames; -+ unsigned long frames; -+ long bytesPerFrame = sizeof( float ) * ioData->mBuffers[0].mNumberChannels; - - /* -- start processing -- */ - PaUtil_BeginBufferProcessing( &(stream->bufferProcessor), -@@ -2261,8 +2253,8 @@ - /* -- compute frames. do some checks -- */ - assert( ioData->mNumberBuffers == 1 ); - assert( ioData->mBuffers[0].mNumberChannels == stream->userOutChan ); -- frames = ioData->mBuffers[0].mDataByteSize; -- frames /= sizeof( float ) * ioData->mBuffers[0].mNumberChannels; -+ -+ frames = ioData->mBuffers[0].mDataByteSize / bytesPerFrame; - /* -- copy and process input data -- */ - err= AudioUnitRender(stream->inputUnit, - ioActionFlags, -@@ -2300,7 +2292,8 @@ - * and into the PA buffer processor. If sample rate conversion - * is required on input, that is done here as well. - */ -- unsigned long frames; -+ unsigned long frames; -+ long bytesPerFrame = sizeof( float ) * ioData->mBuffers[0].mNumberChannels; - - /* Sometimes, when stopping a duplex stream we get erroneous - xrun flags, so if this is our last run, clear the flags. */ -@@ -2322,8 +2315,7 @@ - - /* -- Copy and process output data -- */ - assert( ioData->mNumberBuffers == 1 ); -- frames = ioData->mBuffers[0].mDataByteSize; -- frames /= sizeof( float ) * ioData->mBuffers[0].mNumberChannels; -+ frames = ioData->mBuffers[0].mDataByteSize / bytesPerFrame; - assert( ioData->mBuffers[0].mNumberChannels == stream->userOutChan ); - PaUtil_SetOutputFrameCount( &(stream->bufferProcessor), frames ); - PaUtil_SetInterleavedOutputChannels( &(stream->bufferProcessor), -@@ -2337,6 +2329,8 @@ - /* Here, we read the data out of the ring buffer, through the - audio converter. */ - int inChan = stream->inputAudioBufferList.mBuffers[0].mNumberChannels; -+ long bytesPerFrame = flsz * inChan; -+ - if( stream->inputSRConverter ) - { - OSStatus err; -@@ -2353,7 +2347,12 @@ - { /*the ring buffer callback underflowed */ - err = 0; - bzero( ((char *)data) + size, sizeof(data)-size ); -- stream->xrunFlags |= paInputUnderflow; -+ /* The ring buffer can underflow normally when the stream is stopping. -+ * So only report an error if the stream is active. */ -+ if( stream->state == ACTIVE ) -+ { -+ stream->xrunFlags |= paInputUnderflow; -+ } - } - ERR( err ); - assert( !err ); -@@ -2374,7 +2373,7 @@ - AudioConverter would otherwise handle for us. */ - void *data1, *data2; - ring_buffer_size_t size1, size2; -- PaUtil_GetRingBufferReadRegions( &stream->inputRingBuffer, -+ ring_buffer_size_t framesReadable = PaUtil_GetRingBufferReadRegions( &stream->inputRingBuffer, - frames, - &data1, &size1, - &data2, &size2 ); -@@ -2389,14 +2388,21 @@ - PaUtil_EndBufferProcessing( &(stream->bufferProcessor), - &callbackResult ); - PaUtil_AdvanceRingBufferReadIndex(&stream->inputRingBuffer, size1 ); -- } else if( size1 + size2 < frames ) { -+ } else if( framesReadable < frames ) { -+ -+ long sizeBytes1 = size1 * bytesPerFrame; -+ long sizeBytes2 = size2 * bytesPerFrame; - /*we underflowed. take what data we can, zero the rest.*/ -- unsigned char data[frames*inChan*flsz]; -- if( size1 ) -- memcpy( data, data1, size1 ); -- if( size2 ) -- memcpy( data+size1, data2, size2 ); -- bzero( data+size1+size2, frames*flsz*inChan - size1 - size2 ); -+ unsigned char data[ frames * bytesPerFrame ]; -+ if( size1 > 0 ) -+ { -+ memcpy( data, data1, sizeBytes1 ); -+ } -+ if( size2 > 0 ) -+ { -+ memcpy( data+sizeBytes1, data2, sizeBytes2 ); -+ } -+ bzero( data+sizeBytes1+sizeBytes2, (frames*bytesPerFrame) - sizeBytes1 - sizeBytes2 ); - - PaUtil_SetInputFrameCount( &(stream->bufferProcessor), frames ); - PaUtil_SetInterleavedInputChannels( &(stream->bufferProcessor), -@@ -2407,7 +2413,7 @@ - PaUtil_EndBufferProcessing( &(stream->bufferProcessor), - &callbackResult ); - PaUtil_AdvanceRingBufferReadIndex( &stream->inputRingBuffer, -- size1+size2 ); -+ framesReadable ); - /* flag underflow */ - stream->xrunFlags |= paInputUnderflow; - } else { -@@ -2425,7 +2431,7 @@ - framesProcessed = - PaUtil_EndBufferProcessing( &(stream->bufferProcessor), - &callbackResult ); -- PaUtil_AdvanceRingBufferReadIndex(&stream->inputRingBuffer, size1+size2 ); -+ PaUtil_AdvanceRingBufferReadIndex(&stream->inputRingBuffer, framesReadable ); - } - } - } else { -@@ -2463,13 +2469,13 @@ - { - /* If this is duplex or we use a converter, put the data - into the ring buffer. */ -- long bytesIn, bytesOut; -- bytesIn = sizeof( float ) * inNumberFrames * chan; -- bytesOut = PaUtil_WriteRingBuffer( &stream->inputRingBuffer, -+ ring_buffer_size_t framesWritten = PaUtil_WriteRingBuffer( &stream->inputRingBuffer, - stream->inputAudioBufferList.mBuffers[0].mData, - inNumberFrames ); -- if( bytesIn != bytesOut ) -- stream->xrunFlags |= paInputOverflow ; -+ if( framesWritten != inNumberFrames ) -+ { -+ stream->xrunFlags |= paInputOverflow ; -+ } - } - else - { -Index: qa/loopback/src/paqa.c -=================================================================== ---- qa/loopback/src/paqa.c (Revision 1843) -+++ qa/loopback/src/paqa.c (Revision 1844) -@@ -989,8 +989,8 @@ - int framesPerBuffers[] = { 0, 16, 32, 40, 64, 100, 128, 256, 512, 1024 }; - int numBufferSizes = (sizeof(framesPerBuffers)/sizeof(int)); - -- PaSampleFormat sampleFormats[] = { paUInt8, paInt8, paInt16, paInt32 }; -- const char *sampleFormatNames[] = { "paUInt8", "paInt8", "paInt16", "paInt32" }; -+ PaSampleFormat sampleFormats[] = { paFloat32, paUInt8, paInt8, paInt16, paInt32 }; -+ const char *sampleFormatNames[] = { "paFloat32", "paUInt8", "paInt8", "paInt16", "paInt32" }; - int numSampleFormats = (sizeof(sampleFormats)/sizeof(PaSampleFormat)); - - printf( "=============== Analysing Loopback %d to %d =====================\n", outputDevice, inputDevice ); -Index: qa/loopback/src/audio_analyzer.c -=================================================================== ---- qa/loopback/src/audio_analyzer.c (Revision 1843) -+++ qa/loopback/src/audio_analyzer.c (Revision 1844) -@@ -514,9 +514,15 @@ - - assert( startFrame >= 0 ); - assert( count > 0 ); -- -- for( is=0; is<count; is++ ) -+ -+ /* Zero out initial part of the recording. */ -+ for( is=0; is<startFrame; is++ ) - { -+ recording->buffer[ is ] = 0.0f; -+ } -+ /* Fade in where signal begins. */ -+ for( is=0; is<count; is++ ) -+ { - double c = cos( phase ); - double w = c * c; - float x = recording->buffer[ is + startFrame ]; Deleted: trunk/dports/audio/portaudio/files/patch-clang.diff =================================================================== --- trunk/dports/audio/portaudio/files/patch-clang.diff 2014-02-08 12:19:02 UTC (rev 116835) +++ trunk/dports/audio/portaudio/files/patch-clang.diff 2014-02-08 12:34:59 UTC (rev 116836) @@ -1,20 +0,0 @@ ---- src/hostapi/coreaudio/pa_mac_core.c.orig 2011-10-20 18:40:12.000000000 +0900 -+++ src/hostapi/coreaudio/pa_mac_core.c 2012-01-06 18:52:44.000000000 +0900 -@@ -629,7 +629,7 @@ - - VVDBUG(("InitializeDeviceInfo(): macCoreDeviceId=%ld\n", macCoreDeviceId)); - -- memset(deviceInfo, 0, sizeof(deviceInfo)); -+ memset(deviceInfo, 0, sizeof(*deviceInfo)); - - deviceInfo->structVersion = 2; - deviceInfo->hostApi = hostApiIndex; ---- test/patest_mono.c.orig 2006-08-26 17:27:53.000000000 +0900 -+++ test/patest_mono.c 2012-01-06 20:21:35.000000000 +0900 -@@ -152,4 +152,4 @@ - fprintf( stderr, "Error number: %d\n", err ); - fprintf( stderr, "Error message: %s\n", Pa_GetErrorText( err ) ); - return err; --} -\ No newline at end of file -+} Modified: trunk/dports/audio/portaudio/files/patch-configure =================================================================== --- trunk/dports/audio/portaudio/files/patch-configure 2014-02-08 12:19:02 UTC (rev 116835) +++ trunk/dports/audio/portaudio/files/patch-configure 2014-02-08 12:34:59 UTC (rev 116836) @@ -1,6 +1,6 @@ ---- configure.orig 2011-11-12 03:27:15.000000000 +0900 -+++ configure 2012-01-07 20:21:31.000000000 +0900 -@@ -15654,7 +15654,6 @@ +--- configure.orig 2014-01-17 02:49:33.000000000 +0900 ++++ configure 2014-02-01 13:00:46.000000000 +0900 +@@ -15676,7 +15676,6 @@ cat >>confdefs.h <<_ACEOF @@ -8,7 +8,7 @@ _ACEOF -@@ -15765,7 +15764,7 @@ +@@ -15787,7 +15786,7 @@ $as_echo "#define PA_USE_COREAUDIO 1" >>confdefs.h Deleted: trunk/dports/audio/portaudio/files/patch-include__pa_mac_core.h.diff =================================================================== --- trunk/dports/audio/portaudio/files/patch-include__pa_mac_core.h.diff 2014-02-08 12:19:02 UTC (rev 116835) +++ trunk/dports/audio/portaudio/files/patch-include__pa_mac_core.h.diff 2014-02-08 12:34:59 UTC (rev 116836) @@ -1,11 +0,0 @@ ---- include/pa_mac_core.h.orig 2011-07-10 00:01:52.000000000 +0900 -+++ include/pa_mac_core.h 2012-01-07 20:24:12.000000000 +0900 -@@ -46,7 +46,7 @@ - #include "portaudio.h" - - #include <AudioUnit/AudioUnit.h> --//#include <AudioToolbox/AudioToolbox.h> -+#include <AudioToolbox/AudioToolbox.h> - - #ifdef __cplusplus - extern "C" { Modified: trunk/dports/audio/portaudio/files/patch-src__hostapi__coreaudio__pa_mac_core.c =================================================================== --- trunk/dports/audio/portaudio/files/patch-src__hostapi__coreaudio__pa_mac_core.c 2014-02-08 12:19:02 UTC (rev 116835) +++ trunk/dports/audio/portaudio/files/patch-src__hostapi__coreaudio__pa_mac_core.c 2014-02-08 12:34:59 UTC (rev 116836) @@ -1,6 +1,6 @@ ---- src/hostapi/coreaudio/pa_mac_core.c.orig 2011-10-20 18:40:12.000000000 +0900 -+++ src/hostapi/coreaudio/pa_mac_core.c 2012-01-07 20:30:48.000000000 +0900 -@@ -1128,8 +1128,8 @@ +--- src/hostapi/coreaudio/pa_mac_core.c.orig 2013-08-29 09:36:56.000000000 +0900 ++++ src/hostapi/coreaudio/pa_mac_core.c 2014-02-01 13:00:46.000000000 +0900 +@@ -1158,8 +1158,8 @@ const double sampleRate, void *refCon ) { @@ -11,7 +11,7 @@ /*An Apple TN suggests using CAStreamBasicDescription, but that is C++*/ AudioStreamBasicDescription desiredFormat; OSStatus result = noErr; -@@ -1200,7 +1200,7 @@ +@@ -1230,7 +1230,7 @@ desc.componentFlags = 0; desc.componentFlagsMask = 0; /* -- find the component -- */ @@ -20,7 +20,7 @@ if( !comp ) { DBUG( ( "AUHAL component not found." ) ); -@@ -1209,7 +1209,7 @@ +@@ -1239,7 +1239,7 @@ return paUnanticipatedHostError; } /* -- open it -- */ @@ -29,7 +29,7 @@ if( result ) { DBUG( ( "Failed to open AUHAL component." ) ); -@@ -1562,7 +1562,7 @@ +@@ -1592,7 +1592,7 @@ #undef ERR_WRAP error: @@ -38,7 +38,7 @@ *audioUnit = NULL; if( result ) return PaMacCore_SetError( result, line, 1 ); -@@ -2575,13 +2575,13 @@ +@@ -2613,13 +2613,13 @@ } if( stream->outputUnit && stream->outputUnit != stream->inputUnit ) { AudioUnitUninitialize( stream->outputUnit ); @@ -54,7 +54,7 @@ stream->inputUnit = NULL; } if( stream->inputRingBuffer.buffer ) -@@ -2641,12 +2641,12 @@ +@@ -2679,12 +2679,12 @@ // it's not clear from appl's docs that this really waits // until all data is flushed.