3
我正在使用iPhone SDK 3.1 Developer \ Extras \ CoreAudio \ PublicUtility中的CARingBuffer,但對其某些方法有點困惑。首先,這對所有使用這個類的人都是有意義的核心音頻 - CARIngBuffer
例如,GetTimebounds,SetTimeBounds,ClipTimeBounds函數實際上是在做什麼?
而且使用時,我得到引起例如該方法在主要取方法崩潰
- > ZeroABL(ABL,0,destStartOffset * mBytesPerFrame);
CARingBufferError CARingBuffer::Fetch(AudioBufferList *abl, UInt32 nFrames, SampleTime startRead)
{
SampleTime endRead = startRead + nFrames;
SampleTime startRead0 = startRead;
SampleTime endRead0 = endRead;
SampleTime size;
CARingBufferError err = ClipTimeBounds(startRead, endRead);
if (err) return err;
size = endRead - startRead;
SInt32 destStartOffset = startRead - startRead0;
if (destStartOffset > 0) {
ZeroABL(abl, 0, destStartOffset * mBytesPerFrame);
}
這裏destStartOffset已經變得比ABL Bufferlist的大小,所以當一個memset的完成它超過了ABL Bufferlist的邊界導致崩潰較大。爲什麼這個班沒有接受檢查以防止這種情況發生?
我最近有同樣的問題,我正在使用QA1665更新。 – sbooth 2011-05-30 13:55:28