mirror of
https://github.com/cjcliffe/CubicSDR.git
synced 2025-07-31 04:42:25 -04:00
Attempting to fix OSX portaudio jitter..
This commit is contained in:
parent
6624ec11a3
commit
054ac3f840
@ -16,14 +16,22 @@ AudioThread::~AudioThread() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int patestCallback(const void *inputBuffer, void *outputBuffer, unsigned long framesPerBuffer, const PaStreamCallbackTimeInfo* timeInfo,
|
static int audioCallback(const void *inputBuffer, void *outputBuffer, unsigned long framesPerBuffer, const PaStreamCallbackTimeInfo* timeInfo,
|
||||||
PaStreamCallbackFlags statusFlags, void *userData) {
|
PaStreamCallbackFlags statusFlags, void *userData) {
|
||||||
|
|
||||||
AudioThread *src = (AudioThread *) userData;
|
AudioThread *src = (AudioThread *) userData;
|
||||||
|
|
||||||
float *out = (float*) outputBuffer;
|
float *out = (float*) outputBuffer;
|
||||||
|
|
||||||
if (!src->audio_queue.size()) {
|
if (statusFlags & paOutputOverflow) {
|
||||||
|
std::cout << "Audio buffer overflow.." << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (statusFlags & paOutputUnderflow) {
|
||||||
|
std::cout << "Audio buffer underflow.." << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((statusFlags & paPrimingOutput) || (statusFlags & paOutputOverflow) || !src->audio_queue.size()) {
|
||||||
for (int i = 0; i < framesPerBuffer * 2; i++) {
|
for (int i = 0; i < framesPerBuffer * 2; i++) {
|
||||||
out[i] = 0;
|
out[i] = 0;
|
||||||
}
|
}
|
||||||
@ -91,7 +99,7 @@ wxThread::ExitCode AudioThread::Entry() {
|
|||||||
|
|
||||||
stream = NULL;
|
stream = NULL;
|
||||||
|
|
||||||
err = Pa_OpenStream(&stream, NULL, &outputParameters, AUDIO_FREQUENCY, 1024, paClipOff, &patestCallback, this);
|
err = Pa_OpenStream(&stream, NULL, &outputParameters, AUDIO_FREQUENCY, paFramesPerBufferUnspecified, paPrimeOutputBuffersUsingStreamCallback|paClipOff, &audioCallback, this);
|
||||||
|
|
||||||
err = Pa_StartStream(stream);
|
err = Pa_StartStream(stream);
|
||||||
if (err != paNoError) {
|
if (err != paNoError) {
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
#include "pa_debugprint.h"
|
#include "pa_debugprint.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static int patestCallback(const void *inputBuffer, void *outputBuffer, unsigned long framesPerBuffer, const PaStreamCallbackTimeInfo* timeInfo,
|
static int audioCallback(const void *inputBuffer, void *outputBuffer, unsigned long framesPerBuffer, const PaStreamCallbackTimeInfo* timeInfo,
|
||||||
PaStreamCallbackFlags statusFlags, void *userData);
|
PaStreamCallbackFlags statusFlags, void *userData);
|
||||||
|
|
||||||
class AudioThread: public wxThread {
|
class AudioThread: public wxThread {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user