From 24270bac97a2057b6581710a19d93a5a1a881795 Mon Sep 17 00:00:00 2001 From: Dmytro Bogovych Date: Wed, 20 Jan 2021 21:06:17 +0200 Subject: [PATCH] - exclude AMR / GSM EFR / EVS / Opus codecs from the default build - to make the new basic builds easier to port to new platforms / projects --- src/CMakeLists.txt | 33 ++++++++++++++++++++---------- src/engine/media/MT_AudioCodec.cpp | 4 +++- src/engine/media/MT_AudioCodec.h | 6 +++++- src/engine/media/MT_CodecList.cpp | 17 ++++++++++----- src/engine/media/MT_EvsCodec.h | 1 - 5 files changed, 42 insertions(+), 19 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4d1969c6..97704607 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -59,6 +59,7 @@ set (rtphone_engine engine) option (USE_AMR_CODEC "Use AMR codec. Requires libraries." OFF) option (USE_EVS_CODEC "Use EVS codec." OFF) +option (USE_OPUS_CODEC "Use Opus codec." OFF) option (USE_SEVANA_LIB "Build with Sevana libraries" OFF) # PIC code by default @@ -103,7 +104,6 @@ set (RTPHONE_SOURCES ${rtphone_engine}/media/MT_AudioStream.cpp ${rtphone_engine}/media/MT_AudioReceiver.cpp ${rtphone_engine}/media/MT_AudioCodec.cpp - ${rtphone_engine}/media/MT_AmrCodec.cpp ${rtphone_engine}/media/MT_EvsCodec.cpp ${rtphone_engine}/media/MT_CngHelper.cpp ${rtphone_engine}/agent/Agent_Impl.cpp @@ -115,9 +115,7 @@ set (RTPHONE_SOURCES ${rtphone_engine}/endpoint/EP_NetworkQueue.cpp ${rtphone_engine}/endpoint/EP_Observer.cpp ${rtphone_engine}/endpoint/EP_Session.cpp - ) -set (RTPHONE_HEADERS ${rtphone_engine}/media/MT_Statistics.h ${rtphone_engine}/media/MT_WebRtc.h ${rtphone_engine}/media/MT_Stream.h @@ -131,7 +129,7 @@ set (RTPHONE_HEADERS ${rtphone_engine}/media/MT_AudioStream.h ${rtphone_engine}/media/MT_AudioReceiver.h ${rtphone_engine}/media/MT_AudioCodec.h - ${rtphone_engine}/media/MT_AmrCodec.h + ${rtphone_engine}/media/MT_EvsCodec.h ${rtphone_engine}/media/MT_CngHelper.h ${rtphone_engine}/agent/Agent_Impl.h @@ -145,13 +143,31 @@ set (RTPHONE_HEADERS ${rtphone_engine}/endpoint/EP_Session.h ) -add_library (rtphone STATIC ${RTPHONE_SOURCES} ${RTPHONE_HEADERS}) +if (USE_AMR_CODEC) + add_definitions(-DUSE_AMR_CODEC) + set(RTPHONE_SOURCES ${RTPHONE_SOURCES} ${rtphone_engine}/media/MT_AmrCodec.cpp ${rtphone_engine}/media/MT_AmrCodec.h) +endif() + +if (USE_EVS_CODEC) + add_definitions(-DUSE_EVS_CODEC) + set(RTPHONE_SOURCES ${RTPHONE_SOURCES} ${rtphone_engine}/media/MT_EvsCodec.cpp ${rtphone_engine}/media/MT_EvsCodec.h) +endif() + +if (USE_OPUS_CODEC) + add_definitions(-DUSE_OPUS_CODEC) +endif() + +add_library (rtphone STATIC ${RTPHONE_SOURCES}) add_subdirectory(${rtphone_libs}/resiprocate) add_subdirectory(${rtphone_libs}/ice) add_subdirectory(${rtphone_libs}/jrtplib/src) add_subdirectory(${rtphone_libs}/libg729) -add_subdirectory(${rtphone_libs}/libevs) + +if (USE_EVS_CODEC) + add_subdirectory(${rtphone_libs}/libevs) +endif() + add_subdirectory(${rtphone_libs}/libgsm) add_subdirectory(${rtphone_libs}/gsmhr) add_subdirectory(${rtphone_libs}/g722) @@ -176,10 +192,6 @@ if (USE_AMR_CODEC) set (LIBS ${LIBS}) endif (USE_AMR_CODEC) -if (USE_EVS_CODEC) - add_definitions(-DUSE_EVS_CODEC) -endif() - target_link_libraries(rtphone ice_stack jrtplib g729_codec gsm_codec gsmhr_codec g722_codec srtp resiprocate @@ -187,7 +199,6 @@ target_link_libraries(rtphone audio_lib webrtc speexdsp - # opus uuid ${OPENSSL_SSL} ${OPENSSL_CRYPTO} diff --git a/src/engine/media/MT_AudioCodec.cpp b/src/engine/media/MT_AudioCodec.cpp index 52c62a7f..0fd46d70 100644 --- a/src/engine/media/MT_AudioCodec.cpp +++ b/src/engine/media/MT_AudioCodec.cpp @@ -226,7 +226,7 @@ int G729Codec::plc(int lostFrames, void* output, int outputCapacity) return 0; } - +#if defined(USE_OPUS_CODEC) // -------------- Opus ------------------- #define OPUS_CODEC_NAME "OPUS" #define OPUS_CODEC_RATE 16000 @@ -526,6 +526,8 @@ int OpusCodec::plc(int lostFrames, void* output, int outputCapacity) } return lostFrames * pcmLength(); } +#endif + // -------------- ILBC ------------------- diff --git a/src/engine/media/MT_AudioCodec.h b/src/engine/media/MT_AudioCodec.h index 65906a66..74c26fcc 100644 --- a/src/engine/media/MT_AudioCodec.h +++ b/src/engine/media/MT_AudioCodec.h @@ -24,7 +24,9 @@ extern "C" #include "libg729/g729_typedef.h" #include "libg729/g729_ld8a.h" -#include "opus.h" +#if defined(USE_OPUS_CODEC) +# include "opus.h" +#endif namespace MT { @@ -64,6 +66,7 @@ public: int plc(int lostFrames, void* output, int outputCapacity) override; }; +#if defined(USE_OPUS_CODEC) class OpusCodec: public Codec { protected: @@ -120,6 +123,7 @@ public: int decode(const void* input, int inputBytes, void* output, int outputCapacity); int plc(int lostFrames, void* output, int outputCapacity); }; +#endif class IlbcCodec: public Codec { diff --git a/src/engine/media/MT_CodecList.cpp b/src/engine/media/MT_CodecList.cpp index 713e3adb..8f6d9d5c 100644 --- a/src/engine/media/MT_CodecList.cpp +++ b/src/engine/media/MT_CodecList.cpp @@ -1,4 +1,4 @@ -/* Copyright(C) 2007-2020 VoIPobjects (voipobjects.com) +/* Copyright(C) 2007-2021 VoIPobjects (voipobjects.com) * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ @@ -9,8 +9,13 @@ #include "MT_AudioCodec.h" #if !defined(TARGET_ANDROID) && !defined(TARGET_OPENWRT) && !defined(TARGET_RPI) -# include "MT_AmrCodec.h" -# include "MT_EvsCodec.h" +# if defined(USE_AMR_CODEC) +# include "MT_AmrCodec.h" +# endif + +# if defined(USE_EVS_CODEC) +# include "MT_EvsCodec.h" +# endif #endif #include "helper/HL_String.h" @@ -91,7 +96,7 @@ CodecList::CodecList(const Settings& settings) :mSettings(settings) { //mFactoryList.push_back(new OpusCodec::OpusFactory(16000, 1)); -#if !defined(TARGET_ANDROID) +#if !defined(TARGET_ANDROID) && defined(USE_OPUS_CODEC) if (settings.mOpusSpec.empty()) { mFactoryList.push_back(new OpusCodec::OpusFactory(48000, 2, MT_OPUS_CODEC_PT)); @@ -106,6 +111,7 @@ CodecList::CodecList(const Settings& settings) #endif #if !defined(TARGET_ANDROID) && !defined(TARGET_OPENWRT) && !defined(TARGET_RPI) +#if defined(USE_AMR_CODEC) for (int pt: mSettings.mAmrWbPayloadType) mFactoryList.push_back(new AmrWbCodec::CodecFactory({mSettings.mWrapIuUP, false, pt})); for (int pt: mSettings.mAmrWbOctetPayloadType) @@ -117,6 +123,7 @@ CodecList::CodecList(const Settings& settings) mFactoryList.push_back(new AmrNbCodec::CodecFactory({mSettings.mWrapIuUP, true, pt})); mFactoryList.push_back(new GsmEfrCodec::GsmEfrFactory(mSettings.mWrapIuUP, mSettings.mGsmEfrPayloadType)); +#endif #endif //mFactoryList.push_back(new IsacCodec::IsacFactory16K(mSettings.mIsac16KPayloadType)); @@ -131,7 +138,7 @@ CodecList::CodecList(const Settings& settings) mFactoryList.push_back(new GsmHrCodec::GsmHrFactory(mSettings.mGsmHrPayloadType)); #endif -#if !defined(TARGET_ANDROID) +#if !defined(TARGET_ANDROID) && defined(USE_EVS_CODEC) for (auto& spec: settings.mEvsSpec) { EVSCodec::StreamParameters evs_params; diff --git a/src/engine/media/MT_EvsCodec.h b/src/engine/media/MT_EvsCodec.h index da579bb4..eea0858b 100644 --- a/src/engine/media/MT_EvsCodec.h +++ b/src/engine/media/MT_EvsCodec.h @@ -17,7 +17,6 @@ namespace MT { - class EVSCodec : public Codec { public: