summaryrefslogtreecommitdiff
path: root/src/audio
diff options
context:
space:
mode:
Diffstat (limited to 'src/audio')
-rw-r--r--src/audio/miniaudioManager.cpp (renamed from src/audio/manager.cpp)0
-rw-r--r--src/audio/portaudioManager.cpp25
2 files changed, 14 insertions, 11 deletions
diff --git a/src/audio/manager.cpp b/src/audio/miniaudioManager.cpp
index 3a155fc..3a155fc 100644
--- a/src/audio/manager.cpp
+++ b/src/audio/miniaudioManager.cpp
diff --git a/src/audio/portaudioManager.cpp b/src/audio/portaudioManager.cpp
index fda0988..bcd1254 100644
--- a/src/audio/portaudioManager.cpp
+++ b/src/audio/portaudioManager.cpp
@@ -1,3 +1,4 @@
+#ifdef WITH_VOICE
#ifdef USE_PORTAUDIO
#include "manager.hpp"
@@ -16,14 +17,15 @@ int playCallback(const void *pInput, void *pOutput,
void *userData ) {
AudioManager *mgr = reinterpret_cast<AudioManager *>(userData);
if (mgr == nullptr) {printf("NULL\n");return paContinue;};
- printf("PlayCallback(): %d\n", frameCount);
std::lock_guard<std::mutex> _(mgr->m_mutex);
- auto *pOutputF32 = static_cast<float *>(pOutput);
-
- for(int i = 0; i<frameCount; i++)
- pOutputF32[i] = 0.0f;
+ auto *pOutputF32 = static_cast<int16_t *>(pOutput);
+ /* clear the output buffer */
+ for(int i = 0; i<frameCount * 2; i++)
+ pOutputF32[i] = 0;
+
+ /* write every SSRC into the output stream */
for (auto &[ssrc, pair] : mgr->m_sources) {
double volume = 1.0;
if (const auto vol_it = mgr->m_volume_ssrc.find(ssrc); vol_it != mgr->m_volume_ssrc.end()) {
@@ -31,9 +33,9 @@ int playCallback(const void *pInput, void *pOutput,
}
auto &buf = pair.first;
const size_t n = std::min(static_cast<size_t>(buf.size()), static_cast<size_t>(frameCount * 2ULL));
- printf("Size: %d Buf%d frameCount %d\n", n, buf.size(), frameCount);
for (size_t i = 0; i < n; i++) {
- pOutputF32[i] += volume * buf[i] / 32768.F;
+ pOutputF32[i] += (int16_t) (volume * buf[i]);
+ //pOutputF32[i] += volume * buf[i] / 32768.F;
}
buf.erase(buf.begin(), buf.begin() + n);
}
@@ -46,9 +48,9 @@ int recordCallback(const void *pInput, void *pOutput,
const PaStreamCallbackTimeInfo* timeInfo,
PaStreamCallbackFlags statusFlags,
void *userData ) {
- printf("recordCallback() %d\n", frameCount);
auto *mgr = reinterpret_cast<AudioManager *>(userData);
if (mgr == nullptr) return paContinue;
+
mgr->OnCapturedPCM(static_cast<const int16_t *>(pInput), frameCount);
/*
@@ -96,13 +98,13 @@ AudioManager::AudioManager(const Glib::ustring &backends_string)
Enumerate();
/* create the configurations for capture and playback */
- m_playback_config.sampleFormat = paFloat32;
+ m_playback_config.sampleFormat = paInt16;
m_playback_config.channelCount = 2;
m_playback_config.suggestedLatency = Pa_GetDeviceInfo( m_capture_config.device )->defaultLowInputLatency;
m_playback_config.hostApiSpecificStreamInfo = NULL;
m_playback_config.device = Pa_GetDefaultOutputDevice();
- m_capture_config.sampleFormat = paFloat32;
+ m_capture_config.sampleFormat = paInt16;
m_capture_config.channelCount = 2;
m_capture_config.suggestedLatency = Pa_GetDeviceInfo( m_capture_config.device )->defaultLowInputLatency;
m_capture_config.hostApiSpecificStreamInfo = NULL;
@@ -175,7 +177,7 @@ void AudioManager::SetOpusBuffer(uint8_t *ptr) {
}
void AudioManager::FeedMeOpus(uint32_t ssrc, const std::vector<uint8_t> &data) {
- if (!m_should_playback || Pa_IsStreamActive(&pa_playback_device) != 1) return;
+ if (!m_should_playback || Pa_IsStreamActive(pa_playback_device) != 1) return;
std::lock_guard<std::mutex> _(m_mutex);
if (m_muted_ssrcs.find(ssrc) != m_muted_ssrcs.end()) return;
@@ -596,3 +598,4 @@ AudioManager::type_signal_opus_packet AudioManager::signal_opus_packet() {
}
#endif /* USE_PORTAUDIO */
+#endif /* WITH_VOICE */