From 7ab51497a70aced88acde314a631199ca9e75b46 Mon Sep 17 00:00:00 2001 From: "tommi@webrtc.org" Date: Tue, 17 Apr 2012 13:33:28 +0000 Subject: [PATCH] Remove usage of Atomic32Wrapper from a few places. In these places, it doesn't make much sense to use an atomic variable we were using Atomic32Wrapper::operator= anyway (which does not use atomic operations). Review URL: https://webrtc-codereview.appspot.com/492005 git-svn-id: http://webrtc.googlecode.com/svn/trunk@2042 4adac7df-926f-26a2-2b94-8c16560cd09d --- .../source/audio_conference_mixer_impl.cc | 6 +-- .../source/audio_conference_mixer_impl.h | 5 +- .../main/source/win/audio_device_core_win.cc | 39 +++++++------- .../main/source/win/audio_device_core_win.h | 5 +- .../source/udp_socket2_windows.cc | 51 ++++--------------- .../source/udp_socket2_windows.h | 4 +- 6 files changed, 39 insertions(+), 71 deletions(-) diff --git a/src/modules/audio_conference_mixer/source/audio_conference_mixer_impl.cc b/src/modules/audio_conference_mixer/source/audio_conference_mixer_impl.cc index 8da0ecd1e..d24ce2b2a 100644 --- a/src/modules/audio_conference_mixer/source/audio_conference_mixer_impl.cc +++ b/src/modules/audio_conference_mixer/source/audio_conference_mixer_impl.cc @@ -52,7 +52,7 @@ MixHistory::~MixHistory() WebRtc_Word32 MixHistory::IsMixed(bool& mixed) const { - mixed = (_isMixed.Value() == 1); + mixed = _isMixed; return 0; } @@ -65,13 +65,13 @@ WebRtc_Word32 MixHistory::WasMixed(bool& wasMixed) const WebRtc_Word32 MixHistory::SetIsMixed(const bool mixed) { - _isMixed = mixed ? 1 : 0; + _isMixed = mixed; return 0; } void MixHistory::ResetMixedStatus() { - _isMixed = 0; + _isMixed = false; } AudioConferenceMixer* AudioConferenceMixer::Create(int id) diff --git a/src/modules/audio_conference_mixer/source/audio_conference_mixer_impl.h b/src/modules/audio_conference_mixer/source/audio_conference_mixer_impl.h index efa5d68ae..c38afd000 100644 --- a/src/modules/audio_conference_mixer/source/audio_conference_mixer_impl.h +++ b/src/modules/audio_conference_mixer/source/audio_conference_mixer_impl.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. + * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source @@ -11,7 +11,6 @@ #ifndef WEBRTC_MODULES_AUDIO_CONFERENCE_MIXER_SOURCE_AUDIO_CONFERENCE_MIXER_IMPL_H_ #define WEBRTC_MODULES_AUDIO_CONFERENCE_MIXER_SOURCE_AUDIO_CONFERENCE_MIXER_IMPL_H_ -#include "atomic32_wrapper.h" #include "audio_conference_mixer.h" #include "engine_configurations.h" #include "level_indicator.h" @@ -44,7 +43,7 @@ public: void ResetMixedStatus(); private: - Atomic32Wrapper _isMixed; // 0 = false, 1 = true + bool _isMixed; }; class AudioConferenceMixerImpl : public AudioConferenceMixer diff --git a/src/modules/audio_device/main/source/win/audio_device_core_win.cc b/src/modules/audio_device/main/source/win/audio_device_core_win.cc index a1e19acab..ab6a7ed7e 100644 --- a/src/modules/audio_device/main/source/win/audio_device_core_win.cc +++ b/src/modules/audio_device/main/source/win/audio_device_core_win.cc @@ -2976,11 +2976,11 @@ WebRtc_Word32 AudioDeviceWindowsCore::StopRecording() } } - _UnLock(); - // Reset the recording delay value. _sndCardRecDelay = 0; + _UnLock(); + return err; } @@ -3148,10 +3148,10 @@ WebRtc_Word32 AudioDeviceWindowsCore::StopPlayout() "Recording should be stopped before playout when using the " "built-in AEC"); } - } // critScoped - // Reset the playout delay value. - _sndCardPlayDelay = 0; + // Reset the playout delay value. + _sndCardPlayDelay = 0; + } // critScoped return 0; } @@ -3162,7 +3162,8 @@ WebRtc_Word32 AudioDeviceWindowsCore::StopPlayout() WebRtc_Word32 AudioDeviceWindowsCore::PlayoutDelay(WebRtc_UWord16& delayMS) const { - delayMS = static_cast(_sndCardPlayDelay.Value()); + CriticalSectionScoped critScoped(&_critSect); + delayMS = static_cast(_sndCardPlayDelay); return 0; } @@ -3172,7 +3173,8 @@ WebRtc_Word32 AudioDeviceWindowsCore::PlayoutDelay(WebRtc_UWord16& delayMS) cons WebRtc_Word32 AudioDeviceWindowsCore::RecordingDelay(WebRtc_UWord16& delayMS) const { - delayMS = static_cast(_sndCardRecDelay.Value()); + CriticalSectionScoped critScoped(&_critSect); + delayMS = static_cast(_sndCardRecDelay); return 0; } @@ -3209,21 +3211,18 @@ WebRtc_Word32 AudioDeviceWindowsCore::SetPlayoutBuffer(const AudioDeviceModule:: WebRtc_Word32 AudioDeviceWindowsCore::PlayoutBuffer(AudioDeviceModule::BufferType& type, WebRtc_UWord16& sizeMS) const { - { CriticalSectionScoped lock(&_critSect); type = _playBufType; - } - if (type == AudioDeviceModule::kFixedBufferSize) - { - CriticalSectionScoped lock(&_critSect); - sizeMS = _playBufDelayFixed; - } - else - { - // Use same value as for PlayoutDelay - sizeMS = static_cast(_sndCardPlayDelay.Value()); - } + if (type == AudioDeviceModule::kFixedBufferSize) + { + sizeMS = _playBufDelayFixed; + } + else + { + // Use same value as for PlayoutDelay + sizeMS = static_cast(_sndCardPlayDelay); + } return 0; } @@ -4068,7 +4067,7 @@ DWORD AudioDeviceWindowsCore::DoCaptureThread() (((((UINT64)t1.QuadPart * _perfCounterFactor) - recTime) / 10000) + (10*syncBufIndex) / _recBlockSize - 10); WebRtc_UWord32 sndCardPlayDelay = - static_cast(_sndCardPlayDelay.Value()); + static_cast(_sndCardPlayDelay); _sndCardRecDelay = sndCardRecDelay; diff --git a/src/modules/audio_device/main/source/win/audio_device_core_win.h b/src/modules/audio_device/main/source/win/audio_device_core_win.h index 08e748865..1c1c6c597 100644 --- a/src/modules/audio_device/main/source/win/audio_device_core_win.h +++ b/src/modules/audio_device/main/source/win/audio_device_core_win.h @@ -25,7 +25,6 @@ #include // IMediaObject #include // MMDevice -#include "atomic32_wrapper.h" #include "critical_section_wrapper.h" #include "scoped_refptr.h" @@ -326,7 +325,7 @@ private: // WASAPI WebRtc_UWord32 _playBlockSize; WebRtc_UWord32 _devicePlayBlockSize; WebRtc_UWord32 _playChannels; - Atomic32Wrapper _sndCardPlayDelay; + WebRtc_UWord32 _sndCardPlayDelay; UINT64 _writtenSamples; LONGLONG _playAcc; @@ -335,7 +334,7 @@ private: // WASAPI WebRtc_UWord32 _recBlockSize; WebRtc_UWord32 _recChannels; UINT64 _readSamples; - Atomic32Wrapper _sndCardRecDelay; + WebRtc_UWord32 _sndCardRecDelay; float _sampleDriftAt48kHz; float _driftAccumulator; diff --git a/src/modules/udp_transport/source/udp_socket2_windows.cc b/src/modules/udp_transport/source/udp_socket2_windows.cc index 40bd4d2d1..1c442c503 100644 --- a/src/modules/udp_transport/source/udp_socket2_windows.cc +++ b/src/modules/udp_transport/source/udp_socket2_windows.cc @@ -47,7 +47,7 @@ UdpSocket2Windows::UdpSocket2Windows(const WebRtc_Word32 id, _terminate(false), _addedToMgr(false), _safeTodelete(false), - _outstandingCallsDisabled(0), + _outstandingCallsDisabled(false), _clientHandle(NULL), _flowHandle(NULL), _filterHandle(NULL), @@ -449,10 +449,10 @@ void UdpSocket2Windows::IOCompleted(PerIoContext* pIOContext, !pIOContext->ioInitiatedByThreadWrapper && (error == ERROR_OPERATION_ABORTED) && (pIOContext->ioOperation == OP_READ) && - _outstandingCallsDisabled.Value() == 1) + _outstandingCallsDisabled) { // !pIOContext->initiatedIOByThreadWrapper indicate that the I/O - // was not initiaded by a ThreadWrapper thread. + // was not initiated by a ThreadWrapper thread. // This may happen if the thread that initiated receiving (e.g. // by calling StartListen())) is deleted before any packets have // been received. @@ -462,39 +462,10 @@ void UdpSocket2Windows::IOCompleted(PerIoContext* pIOContext, // that is controlled by the socket implementation. // Note 2: This is more likely to happen to RTCP packets as // they are less frequent than RTP packets. - // Note 3: _outstandingCallsDisabled being false (= 1) indicates + // Note 3: _outstandingCallsDisabled being false indicates // that the socket isn't being shut down. - // Note 4: This should only happen buffers set to recevie packets + // Note 4: This should only happen buffers set to receive packets // (OP_READ). - if (_outstandingCallsDisabled.Value() != 1) - { - WEBRTC_TRACE( - kTraceDebug, - kTraceTransport, - _id, - "UdpSocket2Windows::IOCompleted(pIOContext=%p,\ - ioSize=%.lu, error=%.lu) Received operation aborted but continuing since\ - pIOContext->ioInitiatedByThreadWrapper == false", - pIOContext, - ioSize, - error); - WebRtc_Word32 ioOp = pIOContext ? - (WebRtc_Word32)pIOContext->ioOperation : -1; - WebRtc_Word32 ioInit = pIOContext ? - (WebRtc_Word32)pIOContext->ioInitiatedByThreadWrapper : -1; - WEBRTC_TRACE( - kTraceDebug, - kTraceTransport, - _id, - "pIOContext->ioOperation=%d,\ - pIOContext->ioInitiatedByThreadWrapper=%d, _outstandingCallsDisabled=%d,\ - _incomingCb=%p, this=%p", - ioOp, - ioInit, - (WebRtc_Word32)_outstandingCallsDisabled.Value(), - _incomingCb, - this); - } } else { if(pIOContext == NULL) { @@ -1300,7 +1271,7 @@ WebRtc_Word32 UdpSocket2Windows::CreateFlowSpec(WebRtc_Word32 serviceType, bool UdpSocket2Windows::NewOutstandingCall() { - assert(_outstandingCallsDisabled.Value() == 0); + assert(!_outstandingCallsDisabled); ++_outstandingCalls; return true; @@ -1310,9 +1281,9 @@ void UdpSocket2Windows::OutstandingCallCompleted() { _ptrDestRWLock->AcquireLockShared(); ++_outstandingCallComplete; - if((--_outstandingCalls == 0) && (_outstandingCallsDisabled.Value() == 1)) + if((--_outstandingCalls == 0) && _outstandingCallsDisabled) { - // When there are no outstanding calls and new outstandning calls are + // When there are no outstanding calls and new outstanding calls are // disabled it is time to terminate. _terminate = true; } @@ -1332,13 +1303,13 @@ void UdpSocket2Windows::OutstandingCallCompleted() void UdpSocket2Windows::DisableNewOutstandingCalls() { _ptrDestRWLock->AcquireLockExclusive(); - if(_outstandingCallsDisabled.Value() == 1) + if(_outstandingCallsDisabled) { // Outstandning calls are already disabled. _ptrDestRWLock->ReleaseLockExclusive(); return; } - _outstandingCallsDisabled = 1; + _outstandingCallsDisabled = true; const bool noOutstandingCalls = (_outstandingCalls.Value() == 0); _ptrDestRWLock->ReleaseLockExclusive(); @@ -1364,7 +1335,7 @@ void UdpSocket2Windows::WaitForOutstandingCalls() void UdpSocket2Windows::RemoveSocketFromManager() { // New outstanding calls should be disabled at this point. - assert(_outstandingCallsDisabled.Value() != 0); + assert(_outstandingCallsDisabled); if(_addedToMgr) { diff --git a/src/modules/udp_transport/source/udp_socket2_windows.h b/src/modules/udp_transport/source/udp_socket2_windows.h index c0d68bb8e..3bb075321 100644 --- a/src/modules/udp_transport/source/udp_socket2_windows.h +++ b/src/modules/udp_transport/source/udp_socket2_windows.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. + * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source @@ -139,7 +139,7 @@ private: bool _safeTodelete; RWLockWrapper* _ptrDestRWLock; - Atomic32Wrapper _outstandingCallsDisabled; // 0 = false, 1 = true + bool _outstandingCallsDisabled; bool NewOutstandingCall(); void OutstandingCallCompleted(); void DisableNewOutstandingCalls();