Browse Source

Correct ringbuffer use

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@2579 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/1.90
sletz 17 years ago
parent
commit
3c9ec2d7a6
2 changed files with 12 additions and 12 deletions
  1. +6
    -6
      common/JackNetIOAdapter.cpp
  2. +6
    -6
      windows/JackPortAudioIOAdapter.cpp

+ 6
- 6
common/JackNetIOAdapter.cpp View File

@@ -39,26 +39,26 @@ int JackNetIOAdapter::Process(jack_nframes_t frames, void* arg)
for (i = 0; i < adapter->fCaptureChannels; i++) {
buffer = static_cast<char*>(jack_port_get_buffer(adapter->fCapturePortList[i], frames));
size_t len = jack_ringbuffer_write_space(adapter->fCaptureRingBuffer);
size_t len = jack_ringbuffer_read_space(adapter->fCaptureRingBuffer);
if (len < frames * sizeof(float)) {
jack_error("JackNetIOAdapter::Process : consumer too slow, skip frames...");
jack_ringbuffer_write(adapter->fCaptureRingBuffer, buffer, len);
jack_ringbuffer_read(adapter->fCaptureRingBuffer, buffer, len);
} else {
jack_ringbuffer_write(adapter->fCaptureRingBuffer, buffer, frames * sizeof(float));
jack_ringbuffer_read(adapter->fCaptureRingBuffer, buffer, frames * sizeof(float));
}
}
for (i = 0; i < adapter->fPlaybackChannels; i++) {
buffer = static_cast<char*>(jack_port_get_buffer(adapter->fPlaybackPortList[i], frames));
size_t len = jack_ringbuffer_read_space(adapter->fPlaybackRingBuffer);
size_t len = jack_ringbuffer_write_space(adapter->fPlaybackRingBuffer);
if (len < frames * sizeof(float)) {
jack_error("JackNetIOAdapter::Process : producer too slow, missing frames...");
jack_ringbuffer_read(adapter->fPlaybackRingBuffer, buffer, len);
jack_ringbuffer_write(adapter->fPlaybackRingBuffer, buffer, len);
} else {
jack_ringbuffer_read(adapter->fPlaybackRingBuffer, buffer, frames * sizeof(float));
jack_ringbuffer_write(adapter->fPlaybackRingBuffer, buffer, frames * sizeof(float));
}
}


+ 6
- 6
windows/JackPortAudioIOAdapter.cpp View File

@@ -40,13 +40,13 @@ int JackPortAudioIOAdapter::Render(const void* inputBuffer, void* outputBuffer,
for (int i = 0; i < adapter->fCaptureChannels; i++) {
buffer = (char*)paBuffer[i];
size_t len = jack_ringbuffer_read_space(adapter->fCaptureRingBuffer);
size_t len = jack_ringbuffer_write_space(adapter->fCaptureRingBuffer);
if (len < framesPerBuffer * sizeof(float)) {
jack_error("JackPortAudioIOAdapter::Process : producer too slow, skip frames...");
jack_ringbuffer_read(adapter->fCaptureRingBuffer, buffer, len);
jack_ringbuffer_write(adapter->fCaptureRingBuffer, buffer, len);
} else {
jack_ringbuffer_read(adapter->fCaptureRingBuffer, buffer, framesPerBuffer * sizeof(float));
jack_ringbuffer_write(adapter->fCaptureRingBuffer, buffer, framesPerBuffer * sizeof(float));
}
}
@@ -54,13 +54,13 @@ int JackPortAudioIOAdapter::Render(const void* inputBuffer, void* outputBuffer,
for (int i = 0; i < adapter->fPlaybackChannels; i++) {
buffer = (char*)paBuffer[i];
size_t len = jack_ringbuffer_write_space(adapter->fPlaybackRingBuffer);
size_t len = jack_ringbuffer_read_space(adapter->fPlaybackRingBuffer);
if (len < framesPerBuffer * sizeof(float)) {
jack_error("JackPortAudioIOAdapter::Process : consumer too slow, skip frames...");
jack_ringbuffer_write(adapter->fPlaybackRingBuffer, buffer, len);
jack_ringbuffer_read(adapter->fPlaybackRingBuffer, buffer, len);
} else {
jack_ringbuffer_write(adapter->fPlaybackRingBuffer, buffer, framesPerBuffer * sizeof(float));
jack_ringbuffer_read(adapter->fPlaybackRingBuffer, buffer, framesPerBuffer * sizeof(float));
}
}


Loading…
Cancel
Save