Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int AudioSink::CopyData(const BYTE* Data, const int NumFramesAvailable)
- {
- // Data is the ppData returned pointer from IAudioCaptureClient::GetBuffer
- std::lock_guard<std::mutex> lock(m_mutex);
- AudioChunk chunk;
- if (Data == NULL)
- {
- chunk.size = 0;
- m_queue.push(chunk);
- return 0;
- }
- // ***** WHAT'S GOING ON HERE *******
- chunk.size = NumFramesAvailable * 2;
- chunk.chunk = new int16[chunk.size];
- int multiplier = sizeof(int16) / sizeof(unsigned char);
- std::memcpy(chunk.chunk, Data, chunk.size * multiplier);
- bool nonZero = false;
- for (int i = 0; i < chunk.size; i++)
- {
- if (chunk.chunk[i] == -1 || chunk.chunk[i] == 1)
- {
- chunk.chunk[i] = 0;
- }
- if (chunk.chunk[i] != 0)
- {
- nonZero = true;
- UE_LOG(LogTemp, Log, TEXT("NumFramesAvailable: %d, Sample number %d, Sample value %hi"), NumFramesAvailable, i, chunk.chunk[i]);
- }
- }
- if (nonZero)
- {
- m_queue.push(chunk);
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment