Browse Source

Corect JackAlsaIOAdapter::Execute

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@2648 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/1.90
sletz 17 years ago
parent
commit
9215d1e82c
1 changed files with 12 additions and 4 deletions
  1. +12
    -4
      linux/alsa/JackAlsaIOAdapter.cpp

+ 12
- 4
linux/alsa/JackAlsaIOAdapter.cpp View File

@@ -55,17 +55,20 @@ bool JackAlsaIOAdapter::Execute()
if (fAudioInterface.read() < 0)
return false;

bool failure = false;
jack_nframes_t time1, time2;
ResampleFactor(time1, time2);
for (int i = 0; i < fCaptureChannels; i++) {
fCaptureRingBuffer[i]->SetRatio(time1, time2);
fCaptureRingBuffer[i]->WriteResample(fAudioInterface.fInputSoftChannels[i], fBufferSize);
}
if (fCaptureRingBuffer[i]->WriteResample(fAudioInterface.fInputSoftChannels[i], fBufferSize) < fBufferSize)
failure = true;
}
for (int i = 0; i < fPlaybackChannels; i++) {
fPlaybackRingBuffer[i]->SetRatio(time2, time1);
fPlaybackRingBuffer[i]->ReadResample(fAudioInterface.fOutputSoftChannels[i], fBufferSize);
if (fPlaybackRingBuffer[i]->ReadResample(fAudioInterface.fOutputSoftChannels[i], fBufferSize) < fBufferSize)
failure = true;
}

#ifdef DEBUG
@@ -75,7 +78,12 @@ bool JackAlsaIOAdapter::Execute()
if (fAudioInterface.write() < 0)
return false;
// Reset all ringbuffers in case of failure
if (failure) {
jack_error("JackAlsaIOAdapter::Execute ringbuffer failure... reset");
adapter->ResetRingBuffers();
}
return true;
}



Loading…
Cancel
Save