From 3991a6e0b469ad356e12bb2eedd254a2792e63a3 Mon Sep 17 00:00:00 2001 From: Tristan Matthews <tristan.matthews@savoirfairelinux.com> Date: Thu, 19 Sep 2013 13:47:57 -0400 Subject: [PATCH] * #30347: audiortp: remove ScopedLock --- .../audiortp/audio_rtp_record_handler.cpp | 31 ++++++------------- .../audio/audiortp/audio_rtp_record_handler.h | 6 ++-- 2 files changed, 13 insertions(+), 24 deletions(-) diff --git a/daemon/src/audio/audiortp/audio_rtp_record_handler.cpp b/daemon/src/audio/audiortp/audio_rtp_record_handler.cpp index 33e8bd4d0d..a56065ebdf 100644 --- a/daemon/src/audio/audiortp/audio_rtp_record_handler.cpp +++ b/daemon/src/audio/audiortp/audio_rtp_record_handler.cpp @@ -38,7 +38,6 @@ #include "logger.h" #include "sip/sipcall.h" #include "audio/audiolayer.h" -#include "scoped_lock.h" #include "manager.h" namespace sfl { @@ -115,12 +114,7 @@ AudioRtpRecord::AudioRtpRecord() : , dtmfPayloadType_(101) // same as Asterisk , dead_(false) , currentCodecIndex_(0) -{ - pthread_mutex_init(&audioCodecMutex_, NULL); -#if HAVE_SPEEXDSP - pthread_mutex_init(&audioProcessMutex_, NULL); -#endif -} +{} // Call from processData* bool AudioRtpRecord::isDead() @@ -182,22 +176,17 @@ AudioRtpRecord::~AudioRtpRecord() delete converterDecode_; converterDecode_ = 0; { - ScopedLock lock(audioCodecMutex_); + std::lock_guard<std::mutex> lock(audioCodecMutex_); deleteCodecs(); } #if HAVE_SPEEXDSP { - ScopedLock lock(audioProcessMutex_); + std::lock_guard<std::mutex> lock(audioProcessMutex_); delete noiseSuppressDecode_; noiseSuppressDecode_ = 0; delete noiseSuppressEncode_; noiseSuppressEncode_ = 0; } -#endif - pthread_mutex_destroy(&audioCodecMutex_); - -#if HAVE_SPEEXDSP - pthread_mutex_destroy(&audioProcessMutex_); #endif } @@ -217,7 +206,7 @@ std::string AudioRtpRecordHandler::getCurrentAudioCodecNames() { std::string result; - ScopedLock lock(audioRtpRecord_.audioCodecMutex_); + std::lock_guard<std::mutex> lock(audioRtpRecord_.audioCodecMutex_); { std::string sep = ""; @@ -234,7 +223,7 @@ AudioRtpRecordHandler::getCurrentAudioCodecNames() void AudioRtpRecordHandler::setRtpMedia(const std::vector<AudioCodec*> &audioCodecs) { - ScopedLock lock(audioRtpRecord_.audioCodecMutex_); + std::lock_guard<std::mutex> lock(audioRtpRecord_.audioCodecMutex_); audioRtpRecord_.deleteCodecs(); // Set various codec info to reduce indirection @@ -268,7 +257,7 @@ void AudioRtpRecordHandler::initBuffers() #if HAVE_SPEEXDSP void AudioRtpRecordHandler::initNoiseSuppress() { - ScopedLock lock(audioRtpRecord_.audioProcessMutex_); + std::lock_guard<std::mutex> lock(audioRtpRecord_.audioProcessMutex_); delete audioRtpRecord_.noiseSuppressEncode_; audioRtpRecord_.noiseSuppressEncode_ = new NoiseSuppress(getCodecFrameSize(), getCodecSampleRate()); delete audioRtpRecord_.noiseSuppressDecode_; @@ -334,7 +323,7 @@ int AudioRtpRecordHandler::processDataEncode() #if HAVE_SPEEXDSP if (Manager::instance().audioPreference.getNoiseReduce()) { - ScopedLock lock(audioRtpRecord_.audioProcessMutex_); + std::lock_guard<std::mutex> lock(audioRtpRecord_.audioProcessMutex_); RETURN_IF_NULL(audioRtpRecord_.noiseSuppressEncode_, 0, "Noise suppressor already destroyed"); audioRtpRecord_.noiseSuppressEncode_->process(micData, getCodecFrameSize()); } @@ -346,7 +335,7 @@ int AudioRtpRecordHandler::processDataEncode() #endif { - ScopedLock lock(audioRtpRecord_.audioCodecMutex_); + std::lock_guard<std::mutex> lock(audioRtpRecord_.audioCodecMutex_); RETURN_IF_NULL(audioRtpRecord_.getCurrentCodec(), 0, "Audio codec already destroyed"); unsigned char *micDataEncoded = audioRtpRecord_.encodedData_.data(); return audioRtpRecord_.getCurrentCodec()->encode(micDataEncoded, out->getData(), getCodecFrameSize()); @@ -378,7 +367,7 @@ void AudioRtpRecordHandler::processDataDecode(unsigned char *spkrData, size_t si size = std::min(size, audioRtpRecord_.decData_.frames()); { - ScopedLock lock(audioRtpRecord_.audioCodecMutex_); + std::lock_guard<std::mutex> lock(audioRtpRecord_.audioCodecMutex_); RETURN_IF_NULL(audioRtpRecord_.getCurrentCodec(), "Audio codecs already destroyed"); // Return the size of data in samples audioRtpRecord_.getCurrentCodec()->decode(audioRtpRecord_.decData_.getData(), spkrData, size); @@ -392,7 +381,7 @@ void AudioRtpRecordHandler::processDataDecode(unsigned char *spkrData, size_t si #if HAVE_SPEEXDSP if (Manager::instance().audioPreference.getNoiseReduce()) { - ScopedLock lock(audioRtpRecord_.audioProcessMutex_); + std::lock_guard<std::mutex> lock(audioRtpRecord_.audioProcessMutex_); RETURN_IF_NULL(audioRtpRecord_.noiseSuppressDecode_, "Noise suppressor already destroyed"); audioRtpRecord_.noiseSuppressDecode_->process(audioRtpRecord_.decData_, getCodecFrameSize()); } diff --git a/daemon/src/audio/audiortp/audio_rtp_record_handler.h b/daemon/src/audio/audiortp/audio_rtp_record_handler.h index 87fb83a0eb..d2c3730277 100644 --- a/daemon/src/audio/audiortp/audio_rtp_record_handler.h +++ b/daemon/src/audio/audiortp/audio_rtp_record_handler.h @@ -42,7 +42,7 @@ using std::ptrdiff_t; #include <ccrtp/rtp.h> #include <tr1/array> #include <list> -#include <pthread.h> +#include <mutex> #include "noncopyable.h" #include "audio/codecs/audiocodec.h" @@ -89,7 +89,7 @@ class AudioRtpRecord { private: std::vector<AudioCodec*> audioCodecs_; - pthread_mutex_t audioCodecMutex_; + std::mutex audioCodecMutex_; // these will have the same value unless we are sending // a different codec than we are receiving (asymmetric RTP) int encoderPayloadType_; @@ -107,7 +107,7 @@ class AudioRtpRecord { #if HAVE_SPEEXDSP NoiseSuppress *noiseSuppressEncode_; NoiseSuppress *noiseSuppressDecode_; - pthread_mutex_t audioProcessMutex_; + std::mutex audioProcessMutex_; #endif unsigned int dtmfPayloadType_; -- GitLab