05-21-2018 02:55 PM
static const int FRONT_LEFT = 0;
static const int OVR_BUFFER_SIZE = 8192;
float *ovrInBuffer;
float *ovrOutBuffer;
void setupOVRAudio() {
ovrAudioContextConfiguration config = {};
config.acc_Size = sizeof(config);
config.acc_SampleRate = 44100;
config.acc_BufferLength = OVR_BUFFER_SIZE;
config.acc_MaxNumSources = 4;
if (ovrAudio_CreateContext(&audioContext, &config) != ovrSuccess) {
DLOG("Could not create OVRAudio context!\n");
return;
}
ovrInBuffer = ovrAudio_AllocSamples(OVR_BUFFER_SIZE);
ovrOutBuffer = ovrAudio_AllocSamples(OVR_BUFFER_SIZE * 2); // Output is stereo
// Setup source
ovrAudio_SetAudioSourcePos(audioContext, FRONT_LEFT, -5.0f, 0.0f, -10.0f);
ovrAudio_SetAudioSourceAttenuationMode(audioContext, FRONT_LEFT, ovrAudioSourceAttenuationMode_None, 1.0f);
ovrAudio_SetAudioSourceRange(audioContext, FRONT_LEFT, 0.0f, 100.0f);
ovrAudio_SetAudioSourceRadius(audioContext, FRONT_LEFT, 0.0f);
}
...
void processOVRAudio(const int16_t *in, int16_t *out, size_t sample_count) {
uint32_t status = 0;
// Deinterleave input and convert to float in ovrInBuffer
for (int i = 0; i < sample_count; i++) {
ovrInBuffer = (float)in[i * 2] / 32768.0f;
}
// Spatialize
ovrAudio_SpatializeMonoSourceInterleaved(audioContext,
FRONT_LEFT,
&status,
ovrOutBuffer, // <-- Gets filled with 0.00
ovrInBuffer);
// Mixdown spatialized, interleaved output to int16_t
for (int i = 0; i < sample_count; i++) {
out = (int16_t)(ovrOutBuffer * 32768);
}
}
05-22-2018 11:49 AM
08-01-2019 01:24 PM
08-01-2019 01:47 PM
09-01-2019 12:01 AM
09-07-2019 03:07 PM
alonalbert said:
Do you have a link to the bug?