Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Build/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ android-build:
CMAKE_EXTRA+="-DCMAKE_TOOLCHAIN_FILE=$(ANDROID_NDK_HOME)/build/cmake/android.toolchain.cmake \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DANDROID_ABI=$(ANDROID_ABI) \
-DANDROID_PLATFORM=android-21 \
-DANDROID_PLATFORM=android-23 \
-DBUILD_TEAMTALK_LIBRARY_LIB=ON \
-DBUILD_TEAMTALK_LIBRARY_LIBPRO=ON \
-DBUILD_TEAMTALK_CLIENTS=OFF \
Expand Down
1 change: 1 addition & 0 deletions ChangeLog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ Default Qt Client
- Fixed bug where all servers with same name was deleted on server deletion
- Updated Qt to 6.11 on Windows and macOS
Android Client
- Minimum supported Android version is now 6.0 (Marshmallow)
- Easy log on to server using Join Code
- Fixed bug where TeamTalk would crash when entering TTS settings
- Fixed bug where the initial volume of media files did not match the settings screen
Expand Down
2 changes: 1 addition & 1 deletion Client/TeamTalkAndroid/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ android {

defaultConfig {
applicationId = 'dk.bearware.gui'
minSdk = 21
minSdk = 23
targetSdk = 36
versionCode = 150
versionName = '5.22'
Expand Down
4 changes: 3 additions & 1 deletion Library/TeamTalkLib/avstream/MediaPlayback.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@

#if defined(ENABLE_WEBRTC)
#include "avstream/WebRTCPreprocess.h"
#include <api/audio/builtin_audio_processing_builder.h>
#include <api/environment/environment_factory.h>
#endif

#include <algorithm>
Expand Down Expand Up @@ -208,7 +210,7 @@ bool MediaPlayback::SetupSpeexPreprocess(bool enableagc, const SpeexAGC& agc,
bool MediaPlayback::SetupWebRTCPreprocess(const webrtc::AudioProcessing::Config& webrtc)
{
if (!m_apm)
m_apm = webrtc::AudioProcessingBuilder().Create();
m_apm = webrtc::BuiltinAudioProcessingBuilder().Build(webrtc::CreateEnvironment());

m_apm->ApplyConfig(webrtc);
if (m_apm->Initialize() != webrtc::AudioProcessing::kNoError)
Expand Down
2 changes: 1 addition & 1 deletion Library/TeamTalkLib/avstream/MediaPlayback.h
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ class MediaPlayback : public soundsystem::StreamPlayer
std::shared_ptr<SpeexPreprocess> m_preprocess_left, m_preprocess_right;
#endif
#if defined(ENABLE_WEBRTC)
rtc::scoped_refptr<webrtc::AudioProcessing> m_apm;
webrtc::scoped_refptr<webrtc::AudioProcessing> m_apm;
#endif
bool m_last_callback = false;
ACE_Future<bool> m_drained;
Expand Down
6 changes: 4 additions & 2 deletions Library/TeamTalkLib/avstream/SoundLoopback.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@

#if defined(ENABLE_WEBRTC)
#include "avstream/WebRTCPreprocess.h"
#include <api/audio/builtin_audio_processing_builder.h>
#include <api/environment/environment_factory.h>
#endif

#include <cassert>
Expand Down Expand Up @@ -127,7 +129,7 @@ bool SoundLoopback::StartTest(int inputdevid, int outputdevid,
#if defined(ENABLE_WEBRTC)
if (IsEnabled(apm_cfg))
{
m_apm = webrtc::AudioProcessingBuilder().Create();
m_apm = webrtc::BuiltinAudioProcessingBuilder().Build(webrtc::CreateEnvironment());
if (!m_apm)
{
StopTest();
Expand Down Expand Up @@ -222,7 +224,7 @@ bool SoundLoopback::StartDuplexTest(int inputdevid, int outputdevid,
#if defined(ENABLE_WEBRTC)
if (IsEnabled(apm_cfg))
{
m_apm = webrtc::AudioProcessingBuilder().Create();
m_apm = webrtc::BuiltinAudioProcessingBuilder().Build(webrtc::CreateEnvironment());
if (!m_apm)
{
StopTest();
Expand Down
2 changes: 1 addition & 1 deletion Library/TeamTalkLib/avstream/SoundLoopback.h
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ class SoundLoopback
SpeexPreprocess m_preprocess_left, m_preprocess_right;
#endif
#if defined(ENABLE_WEBRTC)
rtc::scoped_refptr<webrtc::AudioProcessing> m_apm;
webrtc::scoped_refptr<webrtc::AudioProcessing> m_apm;
std::vector<short> m_prev_buffer;
#endif
std::vector<short> m_preprocess_buffer_left, m_preprocess_buffer_right;
Expand Down
25 changes: 6 additions & 19 deletions Library/TeamTalkLib/avstream/WebRTCPreprocess.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@
#include "codec/MediaUtil.h"
#include "myace/MyACE.h"

#include <absl/strings/string_view.h>
#include <api/audio/audio_processing.h>
#include <api/audio/audio_processing_statistics.h>
#include <ace/SString.h>
Expand All @@ -38,24 +37,6 @@

constexpr auto DEBUG_WEBRTC = 0;

// webrtc::GainControlImpl queries this feature. Field trials is
// excluded by passing rtc_exclude_field_trial_default=true to GN.
namespace webrtc::field_trial {
std::string FindFullName(absl::string_view trial_)
{
std::string const trial(trial_);;
#if defined(UNICODE)
ACE_TString str = LocalToUnicode(trial.c_str());
#else
ACE_TString const str = trial.c_str();
#endif
MYTRACE(ACE_TEXT("Querying feature: %s\n"), str.c_str());
return "Disabled";
//return "Enabled";
}
} // namespace field_trial
// namespace webrtc

bool IsEnabled(const webrtc::AudioProcessing::Config& cfg)
{
return cfg.gain_controller1.enabled ||
Expand Down Expand Up @@ -136,7 +117,10 @@ int WebRTCPreprocess(webrtc::AudioProcessing& apm, const media::AudioFrame& infr
if (stats != nullptr)
{
auto wstats = apm.GetStatistics();
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
voice_detected |= wstats.voice_detected.value_or(false);
#pragma clang diagnostic pop
}

in_index += in_cfg.num_frames();
Expand All @@ -146,7 +130,10 @@ int WebRTCPreprocess(webrtc::AudioProcessing& apm, const media::AudioFrame& infr

if ((stats != nullptr) && n > 0)
{
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
stats->voice_detected = voice_detected;
#pragma clang diagnostic pop
}

return infrm.input_samples;
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
From 5fe3c2ad5ed6e8942774ca2aaddadc4cbac7591a Mon Sep 17 00:00:00 2001
From: Sihu Hwang <129564966+hwangsihu@users.noreply.github.com>
Date: Fri, 20 Feb 2026 11:11:48 +0900
Subject: [PATCH] Add teamtalk static lib

---
modules/audio_processing/BUILD.gn | 9 +++++++++
1 file changed, 9 insertions(+)

diff --git a/modules/audio_processing/BUILD.gn b/modules/audio_processing/BUILD.gn
index 2997c457a3..24b08ec06b 100644
--- a/modules/audio_processing/BUILD.gn
+++ b/modules/audio_processing/BUILD.gn
@@ -228,6 +228,15 @@ rtc_library("audio_processing") {
}
}

+static_library("teamtalk") {
+ complete_static_lib = true
+ deps = [
+ ":audio_processing",
+ "../../api/audio:builtin_audio_processing_builder",
+ "../../api/environment:environment_factory",
+ ]
+}
+
rtc_library("residual_echo_detector") {
poisonous = [ "default_echo_detector" ]
configs += [ ":apm_debug_dump" ]
--
2.53.0.windows.1

13 changes: 5 additions & 8 deletions Library/TeamTalkLib/build/webrtc/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ include(ExternalProject)
set (TOOLCHAIN_INSTALL_PREFIX_WEBRTC ${TOOLCHAIN_INSTALL_PREFIX}/webrtc)

if (MSVC)
# WebRTC for Windows depends on "Windows 11 SDK (10.0.22621.0)". This
# WebRTC for Windows depends on "Windows 11 SDK (10.0.26100.0)". This
# can be installed from Visual Studio Installer.
#
# WebRTC for Windows depends on "C++ Clang Compiler for Windows (18.1.8)".
Expand Down Expand Up @@ -69,14 +69,12 @@ if (MSVC)
file(MAKE_DIRECTORY ${WEBRTC_FETCH_PATH})
set (WEBRTC_DOWNLOAD_CMD ${CMAKE_CURRENT_BINARY_DIR}/depottools-win.bat)
set (WEBRTC_PATCH_CMD cd ${WEBRTC_SOURCE_ROOT})
set (WEBRTC_PATCH_CMD2 CALL git apply ${CMAKE_CURRENT_LIST_DIR}\\libteamtalk-r6818.patch)
set (WEBRTC_PATCH_CMD3 CALL git apply ${CMAKE_CURRENT_LIST_DIR}\\0001-Add-support-for-Visual-Studio-2026.patch)
set (WEBRTC_PATCH_CMD2 CALL git apply ${CMAKE_CURRENT_LIST_DIR}\\0001-Add-teamtalk-static-lib.patch)
else()
message (WARNING "WebRTC is already downloaded to ${WEBRTC_SOURCE_ROOT}. Skipping new fetch and patching")
set (WEBRTC_DOWNLOAD_CMD "")
set (WEBRTC_PATCH_CMD "")
set (WEBRTC_PATCH_CMD2 "")
set (WEBRTC_PATCH_CMD3 "")
endif()

configure_file(${CMAKE_CURRENT_LIST_DIR}/webrtc_cfg_win.bat_sample ${CMAKE_CURRENT_BINARY_DIR}/webrtc_cfg_win.bat)
Expand All @@ -87,7 +85,6 @@ if (MSVC)
DOWNLOAD_COMMAND ${WEBRTC_DOWNLOAD_CMD}
PATCH_COMMAND ${WEBRTC_PATCH_CMD}
COMMAND ${WEBRTC_PATCH_CMD2}
COMMAND ${WEBRTC_PATCH_CMD3}
INSTALL_DIR ${WEBRTC_INSTALL_ROOT}
CONFIGURE_COMMAND ${CMAKE_CURRENT_BINARY_DIR}/webrtc_cfg_win.bat
COMMAND cd ${WEBRTC_SOURCE_ROOT}
Expand Down Expand Up @@ -184,7 +181,7 @@ else()

elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
set (WEBRTC_FETCH_PATH $ENV{HOME}/webrtc/${CMAKE_SYSTEM_NAME} CACHE FILEPATH "Root folder for WebRTC repository")
configure_file(${CMAKE_CURRENT_LIST_DIR}/args.gn_deb ${WEBRTC_INSTALL_ROOT}/args.gn @ONLY)
configure_file(${CMAKE_CURRENT_LIST_DIR}/args.gn_linux ${WEBRTC_INSTALL_ROOT}/args.gn @ONLY)

else()
message(WARNING "Unknown platform for WebRTC")
Expand Down Expand Up @@ -229,9 +226,9 @@ else()
if (NOT EXISTS ${WEBRTC_SOURCE_ROOT})
message (WARNING "WebRTC is not present in ${WEBRTC_SOURCE_ROOT}. Downloading... This takes a loooong time")
set (WEBRTC_FETCH_CMD1 ${DEPOTTOOLS_EXPORT} && cd ${WEBRTC_FETCH_PATH} && fetch --nohooks ${WEBRTC_REPO_NAME} && gclient sync --with_branch_heads --with_tags)
set (WEBRTC_FETCH_CMD2 ${DEPOTTOOLS_EXPORT} && cd ${WEBRTC_SOURCE_ROOT} && git checkout branch-heads/6818)
set (WEBRTC_FETCH_CMD2 ${DEPOTTOOLS_EXPORT} && cd ${WEBRTC_SOURCE_ROOT} && git checkout branch-heads/7727)
set (WEBRTC_FETCH_CMD3 ${DEPOTTOOLS_EXPORT} && cd ${WEBRTC_FETCH_PATH} && gclient sync -D)
set (WEBRTC_PATCH_CMD1 cd ${WEBRTC_SOURCE_ROOT} && git apply ${CMAKE_CURRENT_LIST_DIR}/libteamtalk-r6818.patch)
set (WEBRTC_PATCH_CMD1 cd ${WEBRTC_SOURCE_ROOT} && git apply ${CMAKE_CURRENT_LIST_DIR}/0001-Add-teamtalk-static-lib.patch)
else()
set (WEBRTC_FETCH_CMD1 true)
set (WEBRTC_FETCH_CMD2 true)
Expand Down
3 changes: 0 additions & 3 deletions Library/TeamTalkLib/build/webrtc/args.gn_android
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
gtest_enable_absl_printers=false
is_clang=false
is_component_build=false
is_debug=false
libsrtp_build_boringssl=false
libsrtp_ssl_root="/dev/null"
Expand All @@ -12,7 +10,6 @@ rtc_builtin_ssl_root_certificates=false
rtc_disable_logging=true
rtc_enable_protobuf=false
rtc_enable_sctp=false
rtc_exclude_field_trial_default=true
rtc_include_opus=false
rtc_include_tests=false
rtc_libvpx_build_vp9=false
Expand Down
2 changes: 0 additions & 2 deletions Library/TeamTalkLib/build/webrtc/args.gn_ios
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ enable_dsyms=true
gtest_enable_absl_printers=false
ios_deployment_target="@CMAKE_OSX_DEPLOYMENT_TARGET@"
ios_enable_code_signing=false
is_component_build=false
is_debug=false
libcxx_is_shared=false
libsrtp_build_boringssl = false
Expand All @@ -16,7 +15,6 @@ rtc_builtin_ssl_root_certificates=false
rtc_disable_logging=true
rtc_enable_protobuf=false
rtc_enable_sctp=false
rtc_exclude_field_trial_default=true
rtc_include_opus=false
rtc_include_tests=false
rtc_libvpx_build_vp9=false
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
gtest_enable_absl_printers=false
is_clang=false
is_component_build=false
is_debug=false
libsrtp_build_boringssl=false
libsrtp_ssl_root="/dev/null"
Expand All @@ -12,7 +11,6 @@ rtc_builtin_ssl_root_certificates=false
rtc_disable_logging=true
rtc_enable_protobuf=false
rtc_enable_sctp=false
rtc_exclude_field_trial_default=true
rtc_include_opus=false
rtc_include_tests=false
rtc_libvpx_build_vp9=false
Expand All @@ -21,8 +19,9 @@ rtc_use_x11=false
rtc_use_x11_extensions=false
treat_warnings_as_errors=false
use_aura=false
use_bundled_fontconfig=true
use_custom_libcxx=false
use_llvm_libatomic=false
use_ozone=false
use_rtti=true
use_sysroot=false
use_udev=false
2 changes: 0 additions & 2 deletions Library/TeamTalkLib/build/webrtc/args.gn_mac
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
gtest_enable_absl_printers = false
is_clang = false
is_debug = false
libsrtp_build_boringssl = false
libsrtp_ssl_root = "/dev/null"
Expand All @@ -12,7 +11,6 @@ rtc_builtin_ssl_root_certificates = false
rtc_disable_logging = true
rtc_enable_protobuf = false
rtc_enable_sctp = false
rtc_exclude_field_trial_default = true
rtc_include_opus = false
rtc_include_tests = false
rtc_libvpx_build_vp9 = false
Expand Down
2 changes: 0 additions & 2 deletions Library/TeamTalkLib/build/webrtc/args.gn_win_debug
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
enable_iterator_debugging=true
is_clang=true
is_debug=true
libsrtp_build_boringssl=false
libsrtp_ssl_root=""
Expand All @@ -11,7 +10,6 @@ rtc_builtin_ssl_root_certificates=false
rtc_disable_logging=true
rtc_enable_protobuf=false
rtc_enable_sctp=false
rtc_exclude_field_trial_default=true
rtc_include_opus=false
rtc_include_tests=false
rtc_libvpx_build_vp9=false
Expand Down
Loading
Loading