Remove CriticalSectionWrapper from audio conference mixer.
BUG=webrtc:7035 Review-Url: https://codereview.webrtc.org/2772573006 Cr-Commit-Position: refs/heads/master@{#17381}
This commit is contained in:
parent
81bf7b0725
commit
90947052d5
@ -128,14 +128,6 @@ AudioConferenceMixerImpl::AudioConferenceMixerImpl(int id)
|
||||
_processCalls(0) {}
|
||||
|
||||
bool AudioConferenceMixerImpl::Init() {
|
||||
_crit.reset(CriticalSectionWrapper::CreateCriticalSection());
|
||||
if (_crit.get() == NULL)
|
||||
return false;
|
||||
|
||||
_cbCrit.reset(CriticalSectionWrapper::CreateCriticalSection());
|
||||
if(_cbCrit.get() == NULL)
|
||||
return false;
|
||||
|
||||
Config config;
|
||||
config.Set<ExperimentalAgc>(new ExperimentalAgc(false));
|
||||
_limiter.reset(AudioProcessing::Create(config));
|
||||
@ -181,7 +173,7 @@ AudioConferenceMixerImpl::~AudioConferenceMixerImpl() {
|
||||
// Process should be called every kProcessPeriodicityInMs ms
|
||||
int64_t AudioConferenceMixerImpl::TimeUntilNextProcess() {
|
||||
int64_t timeUntilNextProcess = 0;
|
||||
CriticalSectionScoped cs(_crit.get());
|
||||
rtc::CritScope cs(&_crit);
|
||||
if(_timeScheduler.TimeToNextUpdate(timeUntilNextProcess) != 0) {
|
||||
WEBRTC_TRACE(kTraceError, kTraceAudioMixerServer, _id,
|
||||
"failed in TimeToNextUpdate() call");
|
||||
@ -196,7 +188,7 @@ void AudioConferenceMixerImpl::Process() {
|
||||
size_t remainingParticipantsAllowedToMix =
|
||||
kMaximumAmountOfMixedParticipants;
|
||||
{
|
||||
CriticalSectionScoped cs(_crit.get());
|
||||
rtc::CritScope cs(&_crit);
|
||||
assert(_processCalls == 0);
|
||||
_processCalls++;
|
||||
|
||||
@ -209,7 +201,7 @@ void AudioConferenceMixerImpl::Process() {
|
||||
AudioFrameList additionalFramesList;
|
||||
std::map<int, MixerParticipant*> mixedParticipantsMap;
|
||||
{
|
||||
CriticalSectionScoped cs(_cbCrit.get());
|
||||
rtc::CritScope cs(&_cbCrit);
|
||||
|
||||
int32_t lowFreq = GetLowestMixingFrequency();
|
||||
// SILK can run in 12 kHz and 24 kHz. These frequencies are not
|
||||
@ -223,9 +215,9 @@ void AudioConferenceMixerImpl::Process() {
|
||||
lowFreq = 32000;
|
||||
}
|
||||
if(lowFreq <= 0) {
|
||||
CriticalSectionScoped cs(_crit.get());
|
||||
_processCalls--;
|
||||
return;
|
||||
rtc::CritScope cs(&_crit);
|
||||
_processCalls--;
|
||||
return;
|
||||
} else {
|
||||
switch(lowFreq) {
|
||||
case 8000:
|
||||
@ -251,7 +243,7 @@ void AudioConferenceMixerImpl::Process() {
|
||||
default:
|
||||
assert(false);
|
||||
|
||||
CriticalSectionScoped cs(_crit.get());
|
||||
rtc::CritScope cs(&_crit);
|
||||
_processCalls--;
|
||||
return;
|
||||
}
|
||||
@ -274,7 +266,7 @@ void AudioConferenceMixerImpl::Process() {
|
||||
}
|
||||
|
||||
{
|
||||
CriticalSectionScoped cs(_crit.get());
|
||||
rtc::CritScope cs(&_crit);
|
||||
|
||||
// TODO(henrike): it might be better to decide the number of channels
|
||||
// with an API instead of dynamically.
|
||||
@ -311,7 +303,7 @@ void AudioConferenceMixerImpl::Process() {
|
||||
}
|
||||
|
||||
{
|
||||
CriticalSectionScoped cs(_cbCrit.get());
|
||||
rtc::CritScope cs(&_cbCrit);
|
||||
if(_mixReceiver != NULL) {
|
||||
const AudioFrame** dummy = NULL;
|
||||
_mixReceiver->NewMixedAudio(
|
||||
@ -328,7 +320,7 @@ void AudioConferenceMixerImpl::Process() {
|
||||
ClearAudioFrameList(&rampOutList);
|
||||
ClearAudioFrameList(&additionalFramesList);
|
||||
{
|
||||
CriticalSectionScoped cs(_crit.get());
|
||||
rtc::CritScope cs(&_crit);
|
||||
_processCalls--;
|
||||
}
|
||||
return;
|
||||
@ -336,7 +328,7 @@ void AudioConferenceMixerImpl::Process() {
|
||||
|
||||
int32_t AudioConferenceMixerImpl::RegisterMixedStreamCallback(
|
||||
AudioMixerOutputReceiver* mixReceiver) {
|
||||
CriticalSectionScoped cs(_cbCrit.get());
|
||||
rtc::CritScope cs(&_cbCrit);
|
||||
if(_mixReceiver != NULL) {
|
||||
return -1;
|
||||
}
|
||||
@ -345,7 +337,7 @@ int32_t AudioConferenceMixerImpl::RegisterMixedStreamCallback(
|
||||
}
|
||||
|
||||
int32_t AudioConferenceMixerImpl::UnRegisterMixedStreamCallback() {
|
||||
CriticalSectionScoped cs(_cbCrit.get());
|
||||
rtc::CritScope cs(&_cbCrit);
|
||||
if(_mixReceiver == NULL) {
|
||||
return -1;
|
||||
}
|
||||
@ -355,7 +347,7 @@ int32_t AudioConferenceMixerImpl::UnRegisterMixedStreamCallback() {
|
||||
|
||||
int32_t AudioConferenceMixerImpl::SetOutputFrequency(
|
||||
const Frequency& frequency) {
|
||||
CriticalSectionScoped cs(_crit.get());
|
||||
rtc::CritScope cs(&_crit);
|
||||
|
||||
_outputFrequency = frequency;
|
||||
_sampleSize =
|
||||
@ -366,7 +358,7 @@ int32_t AudioConferenceMixerImpl::SetOutputFrequency(
|
||||
|
||||
AudioConferenceMixer::Frequency
|
||||
AudioConferenceMixerImpl::OutputFrequency() const {
|
||||
CriticalSectionScoped cs(_crit.get());
|
||||
rtc::CritScope cs(&_crit);
|
||||
return _outputFrequency;
|
||||
}
|
||||
|
||||
@ -379,7 +371,7 @@ int32_t AudioConferenceMixerImpl::SetMixabilityStatus(
|
||||
}
|
||||
size_t numMixedParticipants;
|
||||
{
|
||||
CriticalSectionScoped cs(_cbCrit.get());
|
||||
rtc::CritScope cs(&_cbCrit);
|
||||
const bool isMixed =
|
||||
IsParticipantInList(*participant, _participantList);
|
||||
// API must be called with a new state.
|
||||
@ -413,20 +405,20 @@ int32_t AudioConferenceMixerImpl::SetMixabilityStatus(
|
||||
// A MixerParticipant was added or removed. Make sure the scratch
|
||||
// buffer is updated if necessary.
|
||||
// Note: The scratch buffer may only be updated in Process().
|
||||
CriticalSectionScoped cs(_crit.get());
|
||||
rtc::CritScope cs(&_crit);
|
||||
_numMixedParticipants = numMixedParticipants;
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool AudioConferenceMixerImpl::MixabilityStatus(
|
||||
const MixerParticipant& participant) const {
|
||||
CriticalSectionScoped cs(_cbCrit.get());
|
||||
rtc::CritScope cs(&_cbCrit);
|
||||
return IsParticipantInList(participant, _participantList);
|
||||
}
|
||||
|
||||
int32_t AudioConferenceMixerImpl::SetAnonymousMixabilityStatus(
|
||||
MixerParticipant* participant, bool anonymous) {
|
||||
CriticalSectionScoped cs(_cbCrit.get());
|
||||
rtc::CritScope cs(&_cbCrit);
|
||||
if(IsParticipantInList(*participant, _additionalParticipantList)) {
|
||||
if(anonymous) {
|
||||
return 0;
|
||||
@ -461,7 +453,7 @@ int32_t AudioConferenceMixerImpl::SetAnonymousMixabilityStatus(
|
||||
|
||||
bool AudioConferenceMixerImpl::AnonymousMixabilityStatus(
|
||||
const MixerParticipant& participant) const {
|
||||
CriticalSectionScoped cs(_cbCrit.get());
|
||||
rtc::CritScope cs(&_cbCrit);
|
||||
return IsParticipantInList(participant, _additionalParticipantList);
|
||||
}
|
||||
|
||||
@ -772,8 +764,7 @@ void AudioConferenceMixerImpl::UpdateMixedStatus(
|
||||
participant != _participantList.end();
|
||||
++participant) {
|
||||
bool isMixed = false;
|
||||
for (std::map<int, MixerParticipant*>::const_iterator it =
|
||||
mixedParticipantsMap.begin();
|
||||
for (auto it = mixedParticipantsMap.begin();
|
||||
it != mixedParticipantsMap.end();
|
||||
++it) {
|
||||
if (it->second == *participant) {
|
||||
|
||||
@ -15,6 +15,7 @@
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include "webrtc/base/criticalsection.h"
|
||||
#include "webrtc/modules/audio_conference_mixer/include/audio_conference_mixer.h"
|
||||
#include "webrtc/modules/audio_conference_mixer/source/memory_pool.h"
|
||||
#include "webrtc/modules/audio_conference_mixer/source/time_scheduler.h"
|
||||
@ -23,7 +24,6 @@
|
||||
|
||||
namespace webrtc {
|
||||
class AudioProcessing;
|
||||
class CriticalSectionWrapper;
|
||||
|
||||
struct FrameAndMuteInfo {
|
||||
FrameAndMuteInfo(AudioFrame* f, bool m) : frame(f), muted(m) {}
|
||||
@ -148,8 +148,8 @@ private:
|
||||
|
||||
bool LimitMixedAudio(AudioFrame* mixedAudio) const;
|
||||
|
||||
std::unique_ptr<CriticalSectionWrapper> _crit;
|
||||
std::unique_ptr<CriticalSectionWrapper> _cbCrit;
|
||||
const rtc::CriticalSection _crit;
|
||||
const rtc::CriticalSection _cbCrit;
|
||||
|
||||
int32_t _id;
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user