display user list, client side mute

This commit is contained in:
ouwou
2022-09-29 21:46:15 -04:00
parent a96d96b3aa
commit dc127d15fb
11 changed files with 140 additions and 8 deletions

View File

@@ -1,5 +1,6 @@
#ifdef WITH_VOICE
// clang-format off
// clang-format off
#ifdef _WIN32
#include <winsock2.h>
#endif
@@ -138,6 +139,10 @@ void AudioManager::SetOpusBuffer(uint8_t *ptr) {
void AudioManager::FeedMeOpus(uint32_t ssrc, const std::vector<uint8_t> &data) {
if (!m_should_playback) return;
{
std::lock_guard<std::mutex> _(m_muted_ssrc_mutex);
if (m_muted_ssrcs.find(ssrc) != m_muted_ssrcs.end()) return;
}
size_t payload_size = 0;
const auto *opus_encoded = StripRTPExtensionHeader(data.data(), static_cast<int>(data.size()), payload_size);
@@ -162,6 +167,15 @@ void AudioManager::SetPlayback(bool playback) {
m_should_playback = playback;
}
void AudioManager::SetMuteSSRC(uint32_t ssrc, bool mute) {
std::lock_guard<std::mutex> _(m_muted_ssrc_mutex);
if (mute) {
m_muted_ssrcs.insert(ssrc);
} else {
m_muted_ssrcs.erase(ssrc);
}
}
void AudioManager::OnCapturedPCM(const int16_t *pcm, ma_uint32 frames) {
if (m_opus_buffer == nullptr || !m_should_capture) return;