[Freeswitch-svn] [commit] r12668 - freeswitch/trunk/patches

FreeSWITCH SVN anthm at freeswitch.org
Thu Mar 19 09:20:43 PDT 2009


Author: anthm
Date: Thu Mar 19 11:20:43 2009
New Revision: 12668

Log:
update

Modified:
   freeswitch/trunk/patches/pa.diff

Modified: freeswitch/trunk/patches/pa.diff
==============================================================================
--- freeswitch/trunk/patches/pa.diff	(original)
+++ freeswitch/trunk/patches/pa.diff	Thu Mar 19 11:20:43 2009
@@ -195,60 +195,60 @@
 +	bytesWritten = PaUtil_WriteRingBuffer(&aStream->outFIFO, p, numBytes);
 +	numBytes -= bytesWritten;
 +	p += bytesWritten;
-+
++	
 +	if (numBytes > 0) {
 +		PaUtil_FlushRingBuffer(&aStream->outFIFO);
 +		return 0;
  	}
  	return numFrames;
  }
-@@ -171,32 +169,28 @@
+@@ -170,31 +168,32 @@
+ 	long bytesRead = 0;
  	char *p = (char *) data;
  	long avail, totalBytes = 0, neededBytes = aStream->bytesPerFrame * numFrames;
++	int max = 5000;
  
 -	for (;;) {
 -		avail = PaUtil_GetRingBufferReadAvailable(&aStream->inFIFO);
-+	switch_core_timer_next(timer);
-+
-+	avail = PaUtil_GetRingBufferReadAvailable(&aStream->inFIFO);
- 		
+-		
 -		if (switch_core_timer_check(timer, SWITCH_TRUE) == SWITCH_STATUS_SUCCESS) {
 -			break;
 -		}
-+	if (avail >= neededBytes * 6) {
-+		PaUtil_FlushRingBuffer(&aStream->inFIFO);
-+		avail = 0;
-+	}
++	switch_core_timer_next(timer);
  
--		if (avail >= neededBytes * 6) {
--			PaUtil_FlushRingBuffer(&aStream->inFIFO);
--			avail = 0;
++	while(totalBytes < neededBytes && --max > 0) {
++
++		avail = PaUtil_GetRingBufferReadAvailable(&aStream->inFIFO);
++		//printf("AVAILABLE BYTES %ld pass %d\n", avail, 5000 - max);
+ 		if (avail >= neededBytes * 6) {
+ 			PaUtil_FlushRingBuffer(&aStream->inFIFO);
+ 			avail = 0;
 -		}
-+	bytesRead = 0;
++		} else {
  
 -		bytesRead = 0;
--
++			bytesRead = 0;
++			
++			if (totalBytes < neededBytes && avail >= neededBytes) {
++				bytesRead = PaUtil_ReadRingBuffer(&aStream->inFIFO, p, neededBytes);
++				totalBytes += bytesRead;
++			}
+ 
 -		if (totalBytes < neededBytes && avail >= neededBytes) {
 -			bytesRead = PaUtil_ReadRingBuffer(&aStream->inFIFO, p, neededBytes);
 -			totalBytes += bytesRead;
--		}
++			if (bytesRead) {
++				p += bytesRead;
++			} else {
++				switch_cond_next();
++			}
+ 		}
 -
 -		if (bytesRead) {
 -			p += bytesRead;
 -		} else {
 -			switch_cond_next();
 -		}
-+	if (totalBytes < neededBytes && avail >= neededBytes) {
-+		bytesRead = PaUtil_ReadRingBuffer(&aStream->inFIFO, p, neededBytes);
-+		totalBytes += bytesRead;
  	}
  
-+	if (bytesRead) {
-+		p += bytesRead;
-+	} else {
-+		switch_cond_next();
-+	}
-+	
  	return totalBytes / aStream->bytesPerFrame;
- }
- 



More information about the Freeswitch-svn mailing list