У меня проблемы с TPCircularBuffer.Неверные значения копируются в TPCircularBuffer
Когда я распечатываю образцы непосредственно из буфера обратного вызова, я вижу правильные значения, но как только я их скопирую в TPCircularBuffer, они неверны.
Любые идеи?
Я использовал TPCircularBuffer в тестовом приложении, и все работало отлично.
Большое вам спасибо за вашу помощь!
Этих соответствующие части коды:
// Declare and initialize TPCircularBuffer
TPCircularBuffer circularBuffer;
TPCircularBufferInit(&circularBuffer, 4096);
// Callback stores signed integers in inBuffer->mAudioData.
SInt16 * buffer = (SInt16*) inBuffer->mAudioData;
int32_t availableBytes;
// Each SInt16 is 2 bytes.
// So, this should place 512 SInt16 values from the buffer
// into the circularBuffer, right?
TPCircularBufferProduceBytes(&circularBuffer, &buffer, 1024);
SInt16 *ptr2 = TPCircularBufferTail(&circularBuffer, &availableBytes);
printf("Total byte size of buffer: %i\n", (int)availableBytes);
printf("circularBuffer[0] = %i\n", ptr2[0]);
printf("buffer[0] = %i\n", buffer[0]);
Это распечатка:
Total byte size of buffer: 1024
circularBuffer[0] = -16384
buffer[0] = 0