From 5afaa1299eb810fc41d19976578320d7d000901a Mon Sep 17 00:00:00 2001 From: Dmytro Bogovych Date: Tue, 5 Jun 2018 13:52:17 +0300 Subject: [PATCH] - more changes to unify development across different projects (callers / server / hasq / softphone) --- src/CMakeLists.txt | 1 + src/engine/audio/Audio_DataWindow.cpp | 3 ++- src/engine/audio/Audio_DevicePair.cpp | 1 + src/engine/audio/Audio_Helper.cpp | 1 + src/engine/audio/Audio_Mixer.cpp | 9 ++++++--- src/engine/audio/Audio_Null.cpp | 1 + src/engine/audio/Audio_Resampler.h | 2 +- src/engine/audio/Audio_WavFile.cpp | 27 +++++++++++++++------------ src/engine/audio/Audio_WavFile.h | 12 +++++++----- src/engine/audio/CMakeLists.txt | 1 + src/engine/helper/CMakeLists.txt | 23 ++--------------------- src/engine/helper/HL_Pointer.h | 12 +++++------- src/engine/helper/HL_Rtp.cpp | 6 +++--- src/engine/helper/HL_SocketHeap.cpp | 3 +++ src/engine/helper/HL_SocketHeap.h | 3 +++ src/engine/media/CMakeLists.txt | 10 ++++++++++ 16 files changed, 62 insertions(+), 53 deletions(-) create mode 100644 src/engine/media/CMakeLists.txt diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 09b6686f..e4973576 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -55,3 +55,4 @@ target_link_libraries(rtphone ice_stack jrtplib g729_codec gsm_codec opencore-amrnb opencore-amrwb helper_lib audio_lib webrtc speexdsp ssl crypto opus uuid dl) + diff --git a/src/engine/audio/Audio_DataWindow.cpp b/src/engine/audio/Audio_DataWindow.cpp index 9814d750..1b0c1f2a 100644 --- a/src/engine/audio/Audio_DataWindow.cpp +++ b/src/engine/audio/Audio_DataWindow.cpp @@ -1,8 +1,9 @@ -/* Copyright(C) 2007-2014 VoIP objects (voipobjects.com) +/* Copyright(C) 2007-2018 VoIP objects (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/. */ +#include #include "Audio_DataWindow.h" using namespace Audio; diff --git a/src/engine/audio/Audio_DevicePair.cpp b/src/engine/audio/Audio_DevicePair.cpp index f699d55c..04818d15 100644 --- a/src/engine/audio/Audio_DevicePair.cpp +++ b/src/engine/audio/Audio_DevicePair.cpp @@ -6,6 +6,7 @@ #define NOMINMAX #include "Audio_DevicePair.h" #include +#include #define LOG_SUBSYSTEM "Audio" diff --git a/src/engine/audio/Audio_Helper.cpp b/src/engine/audio/Audio_Helper.cpp index 2e08c7d9..3af87c44 100644 --- a/src/engine/audio/Audio_Helper.cpp +++ b/src/engine/audio/Audio_Helper.cpp @@ -7,6 +7,7 @@ # include #endif +#include #include "Audio_Helper.h" #include "../helper/HL_Exception.h" diff --git a/src/engine/audio/Audio_Mixer.cpp b/src/engine/audio/Audio_Mixer.cpp index 25eb1b22..a4a2138b 100644 --- a/src/engine/audio/Audio_Mixer.cpp +++ b/src/engine/audio/Audio_Mixer.cpp @@ -1,14 +1,17 @@ -/* Copyright(C) 2007-2014 VoIP objects (voipobjects.com) +/* Copyright(C) 2007-2018 VoIP objects (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/. */ #include "../config.h" #include "../helper/HL_Exception.h" -#include "Audio_Mixer.h" -#include #include "../helper/HL_Log.h" +#include +#include + +#include "Audio_Mixer.h" + #define LOG_SUBSYSTEM "Mixer" using namespace Audio; diff --git a/src/engine/audio/Audio_Null.cpp b/src/engine/audio/Audio_Null.cpp index be80e300..f5575862 100644 --- a/src/engine/audio/Audio_Null.cpp +++ b/src/engine/audio/Audio_Null.cpp @@ -1,5 +1,6 @@ #include "Audio_Null.h" #include "helper/HL_Log.h" +#include #define LOG_SUBSYSTEM "NULL audio" using namespace Audio; diff --git a/src/engine/audio/Audio_Resampler.h b/src/engine/audio/Audio_Resampler.h index a8b52514..ce4b3dfa 100644 --- a/src/engine/audio/Audio_Resampler.h +++ b/src/engine/audio/Audio_Resampler.h @@ -10,9 +10,9 @@ # include "signal_processing_library/signal_processing_library.h" #endif -#include "../helper/HL_Pointer.h" #include #include +#include namespace Audio { diff --git a/src/engine/audio/Audio_WavFile.cpp b/src/engine/audio/Audio_WavFile.cpp index e7176947..247eceec 100644 --- a/src/engine/audio/Audio_WavFile.cpp +++ b/src/engine/audio/Audio_WavFile.cpp @@ -31,6 +31,8 @@ typedef struct { #define LOG_SUBSYSTEM "WavFileReader" +#define LOCK std::unique_lock lock(mFileMtx); + using namespace Audio; // ---------------------- WavFileReader ------------------------- @@ -71,7 +73,7 @@ std::string WavFileReader::readChunk() bool WavFileReader::open(const std::tstring& filename) { - Lock lock(mFileMtx); + LOCK; try { #ifdef WIN32 @@ -160,7 +162,7 @@ bool WavFileReader::open(const std::tstring& filename) void WavFileReader::close() { - Lock lock(mFileMtx); + LOCK; if (NULL != mHandle) fclose(mHandle); @@ -179,7 +181,7 @@ unsigned WavFileReader::read(void* buffer, unsigned bytes) unsigned WavFileReader::read(short* buffer, unsigned samples) { - Lock lock(mFileMtx); + LOCK; if (!mHandle) return 0; @@ -208,14 +210,14 @@ unsigned WavFileReader::read(short* buffer, unsigned samples) bool WavFileReader::isOpened() { - Lock lock(mFileMtx); + LOCK; return (mHandle != 0); } void WavFileReader::rewind() { - Lock l(mFileMtx); + LOCK; if (mHandle) fseek(mHandle, mDataOffset, SEEK_SET); @@ -223,14 +225,14 @@ void WavFileReader::rewind() std::tstring WavFileReader::filename() const { - Lock lock(mFileMtx); + LOCK; return mFileName; } unsigned WavFileReader::size() const { - Lock l(mFileMtx); + LOCK; return mDataLength; } @@ -258,7 +260,7 @@ void WavFileWriter::checkWriteResult(int result) bool WavFileWriter::open(const std::tstring& filename, int rate, int channels) { - Lock lock(mFileMtx); + LOCK; close(); @@ -324,7 +326,7 @@ bool WavFileWriter::open(const std::tstring& filename, int rate, int channels) void WavFileWriter::close() { - Lock lock(mFileMtx); + LOCK; if (mHandle) { @@ -335,7 +337,7 @@ void WavFileWriter::close() unsigned WavFileWriter::write(const void* buffer, unsigned bytes) { - Lock l(mFileMtx); + LOCK; if (!mHandle) return 0; @@ -361,14 +363,15 @@ unsigned WavFileWriter::write(const void* buffer, unsigned bytes) bool WavFileWriter::isOpened() { - Lock lock(mFileMtx); + LOCK; return (mHandle != 0); } std::tstring WavFileWriter::filename() { - Lock lock(mFileMtx); + LOCK; + return mFileName; } diff --git a/src/engine/audio/Audio_WavFile.h b/src/engine/audio/Audio_WavFile.h index bddd5d3e..bde2b77e 100644 --- a/src/engine/audio/Audio_WavFile.h +++ b/src/engine/audio/Audio_WavFile.h @@ -1,4 +1,4 @@ -/* Copyright(C) 2007-2017 VoIPobjects (voipobjects.com) +/* Copyright(C) 2007-2018 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/. */ @@ -7,13 +7,15 @@ #ifndef __AUDIO_WAVFILE_H #define __AUDIO_WAVFILE_H -#include "helper/HL_Sync.h" -#include "helper/HL_Types.h" +//#include "helper/HL_Types.h" #include "Audio_Resampler.h" #include #include #include +#include + +#include "helper/HL_Types.h" namespace Audio { @@ -26,7 +28,7 @@ namespace Audio short mBits; int mRate; std::tstring mFileName; - mutable Mutex mFileMtx; + mutable std::mutex mFileMtx; unsigned mDataOffset; unsigned mDataLength; Resampler mResampler; @@ -57,7 +59,7 @@ namespace Audio protected: FILE* mHandle; /// Handle of audio file. std::tstring mFileName; /// Path to requested audio file. - Mutex mFileMtx; /// Mutex to protect this instance. + std::mutex mFileMtx; /// Mutex to protect this instance. int mWritten; /// Amount of written data (in bytes) int mLengthOffset; /// Position of length field. int mRate, mChannels; diff --git a/src/engine/audio/CMakeLists.txt b/src/engine/audio/CMakeLists.txt index d1883ce1..f12dc54a 100644 --- a/src/engine/audio/CMakeLists.txt +++ b/src/engine/audio/CMakeLists.txt @@ -20,3 +20,4 @@ set (AUDIOLIB_SOURCES ) add_library(audio_lib ${AUDIOLIB_SOURCES}) +target_include_directories(audio_lib PRIVATE ../../libs/speex/include ../../libs ../) diff --git a/src/engine/helper/CMakeLists.txt b/src/engine/helper/CMakeLists.txt index c670324d..cb6150c0 100644 --- a/src/engine/helper/CMakeLists.txt +++ b/src/engine/helper/CMakeLists.txt @@ -4,26 +4,7 @@ project (helper_lib) set (CMAKE_CXX_STANDARD 11) set (CMAKE_CXX_STANDARD_REQUIRED ON) -set (HELPER_LIB_SOURCES - HL_AsyncCommand.cpp - HL_Calculator.cpp - HL_CsvReader.cpp - HL_Epoll.cpp - HL_HepSupport.cpp - HL_IuUP.cpp - HL_Log.cpp - HL_NetworkFrame.cpp - HL_NetworkSocket.cpp - HL_OsVersion.cpp - HL_Pointer.cpp - HL_Rtp.cpp - HL_Singletone.cpp - HL_SocketHeap.cpp - HL_String.cpp - HL_Sync.cpp - HL_Usb.cpp - HL_Uuid.cpp - HL_VariantMap.cpp -) +file(GLOB HELPER_LIB_SOURCES "*.cpp" "*.h") add_library(helper_lib ${HELPER_LIB_SOURCES}) +target_include_directories(helper_lib PRIVATE ../../libs/ ../../engine ../) diff --git a/src/engine/helper/HL_Pointer.h b/src/engine/helper/HL_Pointer.h index c63e183d..a11061d9 100644 --- a/src/engine/helper/HL_Pointer.h +++ b/src/engine/helper/HL_Pointer.h @@ -6,15 +6,13 @@ #ifndef __SMART_POINTER_H #define __SMART_POINTER_H -#ifdef USE_NATIVE_SMARTPTR -# include -# define SharedPtr std::shared_ptr -#else -#include "../../libs/resiprocate/rutil/SharedPtr.hxx" -using resip::SharedPtr; -#endif +#include +#define SharedPtr std::shared_ptr + #include "HL_Sync.h" + #include + class UsageCounter { public: diff --git a/src/engine/helper/HL_Rtp.cpp b/src/engine/helper/HL_Rtp.cpp index 1f932282..4db4a4b5 100644 --- a/src/engine/helper/HL_Rtp.cpp +++ b/src/engine/helper/HL_Rtp.cpp @@ -7,9 +7,9 @@ #include "HL_Exception.h" #include "HL_String.h" -#include "rtprawpacket.h" -#include "rtpipv4address.h" -#include +#include "jrtplib/src/rtprawpacket.h" +#include "jrtplib/src/rtpipv4address.h" +#include #include #include diff --git a/src/engine/helper/HL_SocketHeap.cpp b/src/engine/helper/HL_SocketHeap.cpp index a03466e0..b643c53b 100644 --- a/src/engine/helper/HL_SocketHeap.cpp +++ b/src/engine/helper/HL_SocketHeap.cpp @@ -10,6 +10,8 @@ #endif #include #include +#include // Responsible for close() call on Linux + #include "HL_SocketHeap.h" #include "HL_Log.h" #include "HL_Sync.h" @@ -279,6 +281,7 @@ void SocketHeap::thread() SyncHelper::delay(1000); // Delay for 1 millisecond } mId = 0; + mShutdown = false; //#endif } diff --git a/src/engine/helper/HL_SocketHeap.h b/src/engine/helper/HL_SocketHeap.h index 82260bc4..63694254 100644 --- a/src/engine/helper/HL_SocketHeap.h +++ b/src/engine/helper/HL_SocketHeap.h @@ -103,7 +103,10 @@ protected: Mutex mDeleteGuard; char mTempPacket[MAX_UDPPACKET_SIZE]; + volatile bool mShutdown = false; + int mId = 0; + bool isShutdown() const { return mShutdown; } virtual void thread(); // Processes mDeleteVector -> updates mSocketMap, removes socket items and closes sockets specified in mDeleteVector diff --git a/src/engine/media/CMakeLists.txt b/src/engine/media/CMakeLists.txt new file mode 100644 index 00000000..7c0c513d --- /dev/null +++ b/src/engine/media/CMakeLists.txt @@ -0,0 +1,10 @@ +project (media_lib) + +# Rely on C++ 11 +set (CMAKE_CXX_STANDARD 11) +set (CMAKE_CXX_STANDARD_REQUIRED ON) + +file(GLOB MEDIA_LIB_SOURCES "*.cpp" "*.h") + +add_library(media_lib ${MEDIA_LIB_SOURCES}) +target_include_directories(media_lib PRIVATE ../../libs/ ../ ../../libs/srtp/include ../../libs/srtp/crypto/include)