提交 885c4e54 authored 作者: Anthony Minessale's avatar Anthony Minessale

testing beware

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@8294 d0543943-73ff-0310-b7d9-9358b9ac24b2
上级 79433a61
...@@ -552,7 +552,7 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch ...@@ -552,7 +552,7 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch
globals.read_frame.datalen = samples * 2; globals.read_frame.datalen = samples * 2;
globals.read_frame.samples = samples; globals.read_frame.samples = samples;
switch_core_timer_check(&globals.timer, SWITCH_TRUE); //switch_core_timer_check(&globals.timer, SWITCH_TRUE);
*frame = &globals.read_frame; *frame = &globals.read_frame;
if (!switch_test_flag((&globals), GFLAG_MOUTH)) { if (!switch_test_flag((&globals), GFLAG_MOUTH)) {
......
...@@ -145,20 +145,36 @@ long ReadAudioStream(PABLIO_Stream * aStream, void *data, long numFrames, switch ...@@ -145,20 +145,36 @@ long ReadAudioStream(PABLIO_Stream * aStream, void *data, long numFrames, switch
{ {
long bytesRead; long bytesRead;
char *p = (char *) data; char *p = (char *) data;
long numBytes = aStream->bytesPerFrame * numFrames; long avail, readBytes = 0, numBytes = aStream->bytesPerFrame * numFrames;
while (numBytes > 0) { while (numBytes > 0) {
bytesRead = PaUtil_ReadRingBuffer(&aStream->inFIFO, p, numBytes); avail = PaUtil_GetRingBufferReadAvailable(&aStream->inFIFO);
numBytes -= bytesRead;
if (avail >= numBytes * 10) {
PaUtil_FlushRingBuffer(&aStream->inFIFO);
avail = 0;
}
if (avail >= numBytes) {
bytesRead = PaUtil_ReadRingBuffer(&aStream->inFIFO, p, numBytes);
numBytes -= bytesRead;
readBytes += bytesRead;
}
if (numBytes > 0) { if (numBytes > 0) {
if (switch_core_timer_check(timer, SWITCH_TRUE) == SWITCH_STATUS_SUCCESS) { if (switch_core_timer_check(timer, SWITCH_TRUE) == SWITCH_STATUS_SUCCESS) {
PaUtil_FlushRingBuffer(&aStream->inFIFO); break;
return 0;
} }
switch_yield(1000); switch_yield(1000);
p += bytesRead;
} }
} }
return numFrames;
if (readBytes) {
switch_core_timer_sync(timer);
}
return readBytes / aStream->bytesPerFrame;
} }
/************************************************************ /************************************************************
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论