8#include <SDL3/SDL_audio.h>
22 std::vector<std::uint8_t>
opus;
25 bool init(std::string_view recordingDeviceName = {});
31 [[nodiscard]] std::vector<EncodedFrame>
poll();
Thin RAII wrappers around the Opus encoder and decoder used by voice chat.
Definition VoiceCapture.hpp:16
std::string recordingDeviceName_
Definition VoiceCapture.hpp:41
std::vector< EncodedFrame > poll()
Definition VoiceCapture.cpp:100
SDL_AudioStream * captureStream_
Definition VoiceCapture.hpp:39
bool transmitting() const noexcept
Definition VoiceCapture.hpp:30
bool transmitting_
Definition VoiceCapture.hpp:45
void setPushToTalk(bool active)
Definition VoiceCapture.cpp:86
static constexpr std::size_t kMaxAccumulatedSamples
Definition VoiceCapture.hpp:35
std::vector< float > capturePcm_
Definition VoiceCapture.hpp:42
bool init(std::string_view recordingDeviceName={})
Definition VoiceCapture.cpp:37
void quit()
Definition VoiceCapture.cpp:62
bool ready() const noexcept
Definition VoiceCapture.hpp:29
std::uint16_t nextSequence_
Definition VoiceCapture.hpp:44
VoiceEncoder encoder_
Definition VoiceCapture.hpp:40
std::size_t captureReadOffset_
Definition VoiceCapture.hpp:43
bool framePassesNoiseGate(std::span< const float > frame) const noexcept
Definition VoiceCapture.cpp:150
static constexpr int kFrameSamples
Definition VoiceCapture.hpp:34
void setRecordingDeviceName(std::string_view name)
Definition VoiceCapture.cpp:74
Definition VoiceCodec.hpp:17
constexpr std::uint8_t k_frameMs
Definition VoiceProtocol.hpp:18
constexpr int k_sampleRate
Definition VoiceProtocol.hpp:16
Definition VoiceCapture.hpp:19
std::uint8_t frameMs
Definition VoiceCapture.hpp:21
std::vector< std::uint8_t > opus
Definition VoiceCapture.hpp:22
std::uint16_t sequence
Definition VoiceCapture.hpp:20