mirror of
https://github.com/AlexandreRouma/SDRPlusPlus.git
synced 2025-01-23 16:34:43 +01:00
Mooooore performance
This commit is contained in:
parent
24892c854e
commit
8f4942bbe9
@ -361,10 +361,7 @@ private:
|
||||
HackRFSourceModule* _this = (HackRFSourceModule*)transfer->rx_ctx;
|
||||
int count = transfer->valid_length / 2;
|
||||
int8_t* buffer = (int8_t*)transfer->buffer;
|
||||
for (int i = 0; i < count; i++) {
|
||||
_this->stream.writeBuf[i].re = (float)buffer[i * 2] / 128.0f;
|
||||
_this->stream.writeBuf[i].im = (float)buffer[(i * 2) + 1] / 128.0f;
|
||||
}
|
||||
volk_8i_s32f_convert_32f((float*)_this->stream.writeBuf, buffer, 128.0f, count*2);
|
||||
if (!_this->stream.swap(count)) { return -1; }
|
||||
return 0;
|
||||
}
|
||||
|
@ -235,6 +235,9 @@ private:
|
||||
_this->stream.writeBuf[i].re = (float)buf[i * 2] / 32768.0f;
|
||||
_this->stream.writeBuf[i].im = (float)buf[(i * 2) + 1] / 32768.0f;
|
||||
}
|
||||
|
||||
volk_16i_s32f_convert_32f((float*)_this->stream.writeBuf, buf, 32768.0f, blockSize*2);
|
||||
|
||||
if (!_this->stream.swap(blockSize)) { break; };
|
||||
}
|
||||
|
||||
|
@ -313,20 +313,14 @@ private:
|
||||
|
||||
static void _audioHandler(dsp::stereo_t *data, int count, void *ctx) {
|
||||
RecorderModule* _this = (RecorderModule*)ctx;
|
||||
for (int i = 0; i < count; i++) {
|
||||
_this->wavSampleBuf[(2*i)] = std::clamp<int>(data[i].l * 32767.0f, -32768, 32767);
|
||||
_this->wavSampleBuf[(2*i) + 1] = std::clamp<int>(data[i].r * 32767.0f, -32768, 32767);
|
||||
}
|
||||
volk_32f_s32f_convert_16i(_this->wavSampleBuf, (float*)data, 32767.0f, count*2);
|
||||
_this->audioWriter->writeSamples(_this->wavSampleBuf, count * 2 * sizeof(int16_t));
|
||||
_this->samplesWritten += count;
|
||||
}
|
||||
|
||||
static void _basebandHandler(dsp::complex_t *data, int count, void *ctx) {
|
||||
RecorderModule* _this = (RecorderModule*)ctx;
|
||||
for (int i = 0; i < count; i++) {
|
||||
_this->wavSampleBuf[(2*i)] = data[i].re * 32767.0f;
|
||||
_this->wavSampleBuf[(2*i) + 1] = data[i].im * 32767.0f;
|
||||
}
|
||||
volk_32f_s32f_convert_16i(_this->wavSampleBuf, (float*)data, 32767.0f, count*2);
|
||||
_this->basebandWriter->writeSamples(_this->wavSampleBuf, count * 2 * sizeof(int16_t));
|
||||
_this->samplesWritten += count;
|
||||
}
|
||||
|
@ -913,6 +913,7 @@ private:
|
||||
static void streamCB(short *xi, short *xq, sdrplay_api_StreamCbParamsT *params,
|
||||
unsigned int numSamples, unsigned int reset, void *cbContext) {
|
||||
SDRPlaySourceModule* _this = (SDRPlaySourceModule*)cbContext;
|
||||
// TODO: Optimise using volk and math
|
||||
if (!_this->running) { return; }
|
||||
for (int i = 0; i < numSamples; i++) {
|
||||
int id = _this->bufferIndex++;
|
||||
|
Loading…
x
Reference in New Issue
Block a user