]> Repos - portaudio/commitdiff
fixed bug in coreaudio host api: suggested latency of zero with fixed user buffer...
authorrossb <rossb@0f58301d-fd10-0410-b4af-bbb618454e57>
Wed, 11 Jan 2012 13:22:50 +0000 (13:22 +0000)
committerrossb <rossb@0f58301d-fd10-0410-b4af-bbb618454e57>
Wed, 11 Jan 2012 13:22:50 +0000 (13:22 +0000)
src/hostapi/coreaudio/pa_mac_core.c

index 7b0d424f6f1d801186414352ee48d1ebb33d10c2..339e2afa3388ae50c7c5a15c7378f7b484d808ca 100644 (file)
@@ -1628,12 +1628,19 @@ static UInt32 CalculateOptimalBufferSize( PaMacAUHAL *auhalHostApi,
         resultBufferSizeFrames = MAX( resultBufferSizeFrames, (UInt32) variableLatencyFrames );
     }
     
+    // can't have zero frames. code to round up to next user buffer requires non-zero
+    resultBufferSizeFrames = MAX( resultBufferSizeFrames, 1 );
+    
     if( requestedFramesPerBuffer != paFramesPerBufferUnspecified )
     {
         // make host buffer the next highest integer multiple of user frames per buffer
         UInt32 n = (resultBufferSizeFrames + requestedFramesPerBuffer - 1) / requestedFramesPerBuffer;
         resultBufferSizeFrames = n * requestedFramesPerBuffer;
 
+        
+        // FIXME: really we should be searching for a multiple of requestedFramesPerBuffer
+        // that is >= suggested latency and also fits within device buffer min/max
+        
     }else{
        VDBUG( ("Block Size unspecified. Based on Latency, the user wants a Block Size near: %ld.\n",
             resultBufferSizeFrames ) );