added debug prints to look at injected ring buffers

This commit is contained in:
wangyix 2014-06-23 10:22:16 -07:00
parent 6b72b161d3
commit 7196814ec3
3 changed files with 9 additions and 5 deletions

View file

@ -90,6 +90,7 @@ int AudioMixerClientData::parseData(const QByteArray& packet) {
// we don't have a matching injected audio ring buffer, so add it
matchingInjectedRingBuffer = new InjectedAudioRingBuffer(streamIdentifier);
_ringBuffers.push_back(matchingInjectedRingBuffer);
printf("created InjectedRingBuffer %p\n", (void*)matchingInjectedRingBuffer);
}
matchingInjectedRingBuffer->parseData(packet);
@ -132,6 +133,7 @@ void AudioMixerClientData::pushBuffersAfterFrameSend() {
&& audioBuffer->hasStarted() && audioBuffer->isStarved()) {
// this is an empty audio buffer that has starved, safe to delete
delete audioBuffer;
printf("deleted injector %p\n", (void*)audioBuffer);
i = _ringBuffers.erase(i);
continue;
}

View file

@ -125,16 +125,19 @@ qint64 AudioRingBuffer::writeData(const char* data, qint64 maxSize) {
std::less<int16_t*> less;
std::less_equal<int16_t*> lessEqual;
// TODO: why is less(_endOfLastWrite, _nextOutput) a condition here?
if (_hasStarted
/*
&& (less(_endOfLastWrite, _nextOutput)
&& lessEqual(_nextOutput, shiftedPositionAccomodatingWrap(_endOfLastWrite, samplesToCopy)))) {
&& lessEqual(_nextOutput, shiftedPositionAccomodatingWrap(_endOfLastWrite, samplesToCopy)))*/
&& samplesToCopy > _sampleCapacity - samplesAvailable()) {
// this read will cross the next output, so call us starved and reset the buffer
qDebug() << "Filled the ring buffer. Resetting.";
_endOfLastWrite = _buffer;
_nextOutput = _buffer;
_isStarved = true;
}
if (_endOfLastWrite + samplesToCopy <= _buffer + _sampleCapacity) {
memcpy(_endOfLastWrite, data, samplesToCopy * sizeof(int16_t));
} else {
@ -145,6 +148,7 @@ qint64 AudioRingBuffer::writeData(const char* data, qint64 maxSize) {
_endOfLastWrite = shiftedPositionAccomodatingWrap(_endOfLastWrite, samplesToCopy);
printf("%p: writeData. %d samples available\n", (void*)this, samplesAvailable());
return samplesToCopy * sizeof(int16_t);
}
@ -158,7 +162,7 @@ const int16_t& AudioRingBuffer::operator[] (const int index) const {
void AudioRingBuffer::shiftReadPosition(unsigned int numSamples) {
_nextOutput = shiftedPositionAccomodatingWrap(_nextOutput, numSamples);
//printf("\nmixed. %d samples remaining\n", samplesAvailable());
printf("%p: mixed. %d samples remaining\n", (void*)this, samplesAvailable());
}
unsigned int AudioRingBuffer::samplesAvailable() const {

View file

@ -151,8 +151,6 @@ int PositionalAudioRingBuffer::parseData(const QByteArray& packet) {
int dataBytes = writeData(packet.data() + readBytes, packet.size() - readBytes);
readBytes += dataBytes;
}
//printf("parsed packet. %d samples available\n", samplesAvailable());
return readBytes;
}