Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(170)

Unified Diff: webrtc/modules/audio_device/audio_device_buffer.cc

Issue 2119093003: clang-format on AudioDeviceBuffer (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/audio_device/audio_device_buffer.cc
diff --git a/webrtc/modules/audio_device/audio_device_buffer.cc b/webrtc/modules/audio_device/audio_device_buffer.cc
index 0bc2f5c225f55a04c30e12a52e11781de9f05744..d10a2bd464bc2c86c13ca02399f288cca1e45694 100644
--- a/webrtc/modules/audio_device/audio_device_buffer.cc
+++ b/webrtc/modules/audio_device/audio_device_buffer.cc
@@ -28,166 +28,160 @@ static const int kLogHighDelayIntervalFrames = 500; // 5 seconds.
// ctor
// ----------------------------------------------------------------------------
-AudioDeviceBuffer::AudioDeviceBuffer() :
- _id(-1),
- _critSect(*CriticalSectionWrapper::CreateCriticalSection()),
- _critSectCb(*CriticalSectionWrapper::CreateCriticalSection()),
- _ptrCbAudioTransport(NULL),
- _recSampleRate(0),
- _playSampleRate(0),
- _recChannels(0),
- _playChannels(0),
- _recChannel(AudioDeviceModule::kChannelBoth),
- _recBytesPerSample(0),
- _playBytesPerSample(0),
- _recSamples(0),
- _recSize(0),
- _playSamples(0),
- _playSize(0),
- _recFile(*FileWrapper::Create()),
- _playFile(*FileWrapper::Create()),
- _currentMicLevel(0),
- _newMicLevel(0),
- _typingStatus(false),
- _playDelayMS(0),
- _recDelayMS(0),
- _clockDrift(0),
- // Set to the interval in order to log on the first occurrence.
- high_delay_counter_(kLogHighDelayIntervalFrames) {
- // valid ID will be set later by SetId, use -1 for now
- WEBRTC_TRACE(kTraceMemory, kTraceAudioDevice, _id, "%s created", __FUNCTION__);
- memset(_recBuffer, 0, kMaxBufferSizeBytes);
- memset(_playBuffer, 0, kMaxBufferSizeBytes);
+AudioDeviceBuffer::AudioDeviceBuffer()
+ : _id(-1),
+ _critSect(*CriticalSectionWrapper::CreateCriticalSection()),
+ _critSectCb(*CriticalSectionWrapper::CreateCriticalSection()),
+ _ptrCbAudioTransport(NULL),
+ _recSampleRate(0),
+ _playSampleRate(0),
+ _recChannels(0),
+ _playChannels(0),
+ _recChannel(AudioDeviceModule::kChannelBoth),
+ _recBytesPerSample(0),
+ _playBytesPerSample(0),
+ _recSamples(0),
+ _recSize(0),
+ _playSamples(0),
+ _playSize(0),
+ _recFile(*FileWrapper::Create()),
+ _playFile(*FileWrapper::Create()),
+ _currentMicLevel(0),
+ _newMicLevel(0),
+ _typingStatus(false),
+ _playDelayMS(0),
+ _recDelayMS(0),
+ _clockDrift(0),
+ // Set to the interval in order to log on the first occurrence.
+ high_delay_counter_(kLogHighDelayIntervalFrames) {
+ // valid ID will be set later by SetId, use -1 for now
+ WEBRTC_TRACE(kTraceMemory, kTraceAudioDevice, _id, "%s created",
+ __FUNCTION__);
+ memset(_recBuffer, 0, kMaxBufferSizeBytes);
+ memset(_playBuffer, 0, kMaxBufferSizeBytes);
}
// ----------------------------------------------------------------------------
// dtor
// ----------------------------------------------------------------------------
-AudioDeviceBuffer::~AudioDeviceBuffer()
-{
- WEBRTC_TRACE(kTraceMemory, kTraceAudioDevice, _id, "%s destroyed", __FUNCTION__);
- {
- CriticalSectionScoped lock(&_critSect);
+AudioDeviceBuffer::~AudioDeviceBuffer() {
+ WEBRTC_TRACE(kTraceMemory, kTraceAudioDevice, _id, "%s destroyed",
+ __FUNCTION__);
+ {
+ CriticalSectionScoped lock(&_critSect);
- _recFile.Flush();
- _recFile.CloseFile();
- delete &_recFile;
+ _recFile.Flush();
+ _recFile.CloseFile();
+ delete &_recFile;
- _playFile.Flush();
- _playFile.CloseFile();
- delete &_playFile;
- }
+ _playFile.Flush();
+ _playFile.CloseFile();
+ delete &_playFile;
+ }
- delete &_critSect;
- delete &_critSectCb;
+ delete &_critSect;
+ delete &_critSectCb;
}
// ----------------------------------------------------------------------------
// SetId
// ----------------------------------------------------------------------------
-void AudioDeviceBuffer::SetId(uint32_t id)
-{
- WEBRTC_TRACE(kTraceMemory, kTraceAudioDevice, id, "AudioDeviceBuffer::SetId(id=%d)", id);
- _id = id;
+void AudioDeviceBuffer::SetId(uint32_t id) {
+ WEBRTC_TRACE(kTraceMemory, kTraceAudioDevice, id,
+ "AudioDeviceBuffer::SetId(id=%d)", id);
+ _id = id;
}
// ----------------------------------------------------------------------------
// RegisterAudioCallback
// ----------------------------------------------------------------------------
-int32_t AudioDeviceBuffer::RegisterAudioCallback(AudioTransport* audioCallback)
-{
- CriticalSectionScoped lock(&_critSectCb);
- _ptrCbAudioTransport = audioCallback;
+int32_t AudioDeviceBuffer::RegisterAudioCallback(
+ AudioTransport* audioCallback) {
+ CriticalSectionScoped lock(&_critSectCb);
+ _ptrCbAudioTransport = audioCallback;
- return 0;
+ return 0;
}
// ----------------------------------------------------------------------------
// InitPlayout
// ----------------------------------------------------------------------------
-int32_t AudioDeviceBuffer::InitPlayout()
-{
- WEBRTC_TRACE(kTraceMemory, kTraceAudioDevice, _id, "%s", __FUNCTION__);
- return 0;
+int32_t AudioDeviceBuffer::InitPlayout() {
+ WEBRTC_TRACE(kTraceMemory, kTraceAudioDevice, _id, "%s", __FUNCTION__);
+ return 0;
}
// ----------------------------------------------------------------------------
// InitRecording
// ----------------------------------------------------------------------------
-int32_t AudioDeviceBuffer::InitRecording()
-{
- WEBRTC_TRACE(kTraceMemory, kTraceAudioDevice, _id, "%s", __FUNCTION__);
- return 0;
+int32_t AudioDeviceBuffer::InitRecording() {
+ WEBRTC_TRACE(kTraceMemory, kTraceAudioDevice, _id, "%s", __FUNCTION__);
+ return 0;
}
// ----------------------------------------------------------------------------
// SetRecordingSampleRate
// ----------------------------------------------------------------------------
-int32_t AudioDeviceBuffer::SetRecordingSampleRate(uint32_t fsHz)
-{
- CriticalSectionScoped lock(&_critSect);
- _recSampleRate = fsHz;
- return 0;
+int32_t AudioDeviceBuffer::SetRecordingSampleRate(uint32_t fsHz) {
+ CriticalSectionScoped lock(&_critSect);
+ _recSampleRate = fsHz;
+ return 0;
}
// ----------------------------------------------------------------------------
// SetPlayoutSampleRate
// ----------------------------------------------------------------------------
-int32_t AudioDeviceBuffer::SetPlayoutSampleRate(uint32_t fsHz)
-{
- CriticalSectionScoped lock(&_critSect);
- _playSampleRate = fsHz;
- return 0;
+int32_t AudioDeviceBuffer::SetPlayoutSampleRate(uint32_t fsHz) {
+ CriticalSectionScoped lock(&_critSect);
+ _playSampleRate = fsHz;
+ return 0;
}
// ----------------------------------------------------------------------------
// RecordingSampleRate
// ----------------------------------------------------------------------------
-int32_t AudioDeviceBuffer::RecordingSampleRate() const
-{
- return _recSampleRate;
+int32_t AudioDeviceBuffer::RecordingSampleRate() const {
+ return _recSampleRate;
}
// ----------------------------------------------------------------------------
// PlayoutSampleRate
// ----------------------------------------------------------------------------
-int32_t AudioDeviceBuffer::PlayoutSampleRate() const
-{
- return _playSampleRate;
+int32_t AudioDeviceBuffer::PlayoutSampleRate() const {
+ return _playSampleRate;
}
// ----------------------------------------------------------------------------
// SetRecordingChannels
// ----------------------------------------------------------------------------
-int32_t AudioDeviceBuffer::SetRecordingChannels(size_t channels)
-{
- CriticalSectionScoped lock(&_critSect);
- _recChannels = channels;
- _recBytesPerSample = 2*channels; // 16 bits per sample in mono, 32 bits in stereo
- return 0;
+int32_t AudioDeviceBuffer::SetRecordingChannels(size_t channels) {
+ CriticalSectionScoped lock(&_critSect);
+ _recChannels = channels;
+ _recBytesPerSample =
+ 2 * channels; // 16 bits per sample in mono, 32 bits in stereo
+ return 0;
}
// ----------------------------------------------------------------------------
// SetPlayoutChannels
// ----------------------------------------------------------------------------
-int32_t AudioDeviceBuffer::SetPlayoutChannels(size_t channels)
-{
- CriticalSectionScoped lock(&_critSect);
- _playChannels = channels;
- // 16 bits per sample in mono, 32 bits in stereo
- _playBytesPerSample = 2*channels;
- return 0;
+int32_t AudioDeviceBuffer::SetPlayoutChannels(size_t channels) {
+ CriticalSectionScoped lock(&_critSect);
+ _playChannels = channels;
+ // 16 bits per sample in mono, 32 bits in stereo
+ _playBytesPerSample = 2 * channels;
+ return 0;
}
// ----------------------------------------------------------------------------
@@ -201,88 +195,80 @@ int32_t AudioDeviceBuffer::SetPlayoutChannels(size_t channels)
// will be 2 instead of 4 four these cases.
// ----------------------------------------------------------------------------
-int32_t AudioDeviceBuffer::SetRecordingChannel(const AudioDeviceModule::ChannelType channel)
-{
- CriticalSectionScoped lock(&_critSect);
+int32_t AudioDeviceBuffer::SetRecordingChannel(
+ const AudioDeviceModule::ChannelType channel) {
+ CriticalSectionScoped lock(&_critSect);
- if (_recChannels == 1)
- {
- return -1;
- }
+ if (_recChannels == 1) {
+ return -1;
+ }
- if (channel == AudioDeviceModule::kChannelBoth)
- {
- // two bytes per channel
- _recBytesPerSample = 4;
- }
- else
- {
- // only utilize one out of two possible channels (left or right)
- _recBytesPerSample = 2;
- }
- _recChannel = channel;
+ if (channel == AudioDeviceModule::kChannelBoth) {
+ // two bytes per channel
+ _recBytesPerSample = 4;
+ } else {
+ // only utilize one out of two possible channels (left or right)
+ _recBytesPerSample = 2;
+ }
+ _recChannel = channel;
- return 0;
+ return 0;
}
// ----------------------------------------------------------------------------
// RecordingChannel
// ----------------------------------------------------------------------------
-int32_t AudioDeviceBuffer::RecordingChannel(AudioDeviceModule::ChannelType& channel) const
-{
- channel = _recChannel;
- return 0;
+int32_t AudioDeviceBuffer::RecordingChannel(
+ AudioDeviceModule::ChannelType& channel) const {
+ channel = _recChannel;
+ return 0;
}
// ----------------------------------------------------------------------------
// RecordingChannels
// ----------------------------------------------------------------------------
-size_t AudioDeviceBuffer::RecordingChannels() const
-{
- return _recChannels;
+size_t AudioDeviceBuffer::RecordingChannels() const {
+ return _recChannels;
}
// ----------------------------------------------------------------------------
// PlayoutChannels
// ----------------------------------------------------------------------------
-size_t AudioDeviceBuffer::PlayoutChannels() const
-{
- return _playChannels;
+size_t AudioDeviceBuffer::PlayoutChannels() const {
+ return _playChannels;
}
// ----------------------------------------------------------------------------
// SetCurrentMicLevel
// ----------------------------------------------------------------------------
-int32_t AudioDeviceBuffer::SetCurrentMicLevel(uint32_t level)
-{
- _currentMicLevel = level;
- return 0;
+int32_t AudioDeviceBuffer::SetCurrentMicLevel(uint32_t level) {
+ _currentMicLevel = level;
+ return 0;
}
-int32_t AudioDeviceBuffer::SetTypingStatus(bool typingStatus)
-{
- _typingStatus = typingStatus;
- return 0;
+int32_t AudioDeviceBuffer::SetTypingStatus(bool typingStatus) {
+ _typingStatus = typingStatus;
+ return 0;
}
// ----------------------------------------------------------------------------
// NewMicLevel
// ----------------------------------------------------------------------------
-uint32_t AudioDeviceBuffer::NewMicLevel() const
-{
- return _newMicLevel;
+uint32_t AudioDeviceBuffer::NewMicLevel() const {
+ return _newMicLevel;
}
// ----------------------------------------------------------------------------
// SetVQEData
// ----------------------------------------------------------------------------
-void AudioDeviceBuffer::SetVQEData(int playDelayMs, int recDelayMs,
+void AudioDeviceBuffer::SetVQEData(int playDelayMs,
+ int recDelayMs,
int clockDrift) {
if (high_delay_counter_ < kLogHighDelayIntervalFrames) {
++high_delay_counter_;
@@ -304,32 +290,30 @@ void AudioDeviceBuffer::SetVQEData(int playDelayMs, int recDelayMs,
// ----------------------------------------------------------------------------
int32_t AudioDeviceBuffer::StartInputFileRecording(
- const char fileName[kAdmMaxFileNameSize])
-{
- WEBRTC_TRACE(kTraceMemory, kTraceAudioDevice, _id, "%s", __FUNCTION__);
+ const char fileName[kAdmMaxFileNameSize]) {
+ WEBRTC_TRACE(kTraceMemory, kTraceAudioDevice, _id, "%s", __FUNCTION__);
- CriticalSectionScoped lock(&_critSect);
+ CriticalSectionScoped lock(&_critSect);
- _recFile.Flush();
- _recFile.CloseFile();
+ _recFile.Flush();
+ _recFile.CloseFile();
- return _recFile.OpenFile(fileName, false) ? 0 : -1;
+ return _recFile.OpenFile(fileName, false) ? 0 : -1;
}
// ----------------------------------------------------------------------------
// StopInputFileRecording
// ----------------------------------------------------------------------------
-int32_t AudioDeviceBuffer::StopInputFileRecording()
-{
- WEBRTC_TRACE(kTraceMemory, kTraceAudioDevice, _id, "%s", __FUNCTION__);
+int32_t AudioDeviceBuffer::StopInputFileRecording() {
+ WEBRTC_TRACE(kTraceMemory, kTraceAudioDevice, _id, "%s", __FUNCTION__);
- CriticalSectionScoped lock(&_critSect);
+ CriticalSectionScoped lock(&_critSect);
- _recFile.Flush();
- _recFile.CloseFile();
+ _recFile.Flush();
+ _recFile.CloseFile();
- return 0;
+ return 0;
}
// ----------------------------------------------------------------------------
@@ -337,32 +321,30 @@ int32_t AudioDeviceBuffer::StopInputFileRecording()
// ----------------------------------------------------------------------------
int32_t AudioDeviceBuffer::StartOutputFileRecording(
- const char fileName[kAdmMaxFileNameSize])
-{
- WEBRTC_TRACE(kTraceMemory, kTraceAudioDevice, _id, "%s", __FUNCTION__);
+ const char fileName[kAdmMaxFileNameSize]) {
+ WEBRTC_TRACE(kTraceMemory, kTraceAudioDevice, _id, "%s", __FUNCTION__);
- CriticalSectionScoped lock(&_critSect);
+ CriticalSectionScoped lock(&_critSect);
- _playFile.Flush();
- _playFile.CloseFile();
+ _playFile.Flush();
+ _playFile.CloseFile();
- return _playFile.OpenFile(fileName, false) ? 0 : -1;
+ return _playFile.OpenFile(fileName, false) ? 0 : -1;
}
// ----------------------------------------------------------------------------
// StopOutputFileRecording
// ----------------------------------------------------------------------------
-int32_t AudioDeviceBuffer::StopOutputFileRecording()
-{
- WEBRTC_TRACE(kTraceMemory, kTraceAudioDevice, _id, "%s", __FUNCTION__);
+int32_t AudioDeviceBuffer::StopOutputFileRecording() {
+ WEBRTC_TRACE(kTraceMemory, kTraceAudioDevice, _id, "%s", __FUNCTION__);
- CriticalSectionScoped lock(&_critSect);
+ CriticalSectionScoped lock(&_critSect);
- _playFile.Flush();
- _playFile.CloseFile();
+ _playFile.Flush();
+ _playFile.CloseFile();
- return 0;
+ return 0;
}
// ----------------------------------------------------------------------------
@@ -381,202 +363,175 @@ int32_t AudioDeviceBuffer::StopOutputFileRecording()
// ----------------------------------------------------------------------------
int32_t AudioDeviceBuffer::SetRecordedBuffer(const void* audioBuffer,
- size_t nSamples)
-{
- CriticalSectionScoped lock(&_critSect);
+ size_t nSamples) {
+ CriticalSectionScoped lock(&_critSect);
- if (_recBytesPerSample == 0)
- {
- assert(false);
- return -1;
- }
+ if (_recBytesPerSample == 0) {
+ assert(false);
+ return -1;
+ }
- _recSamples = nSamples;
- _recSize = _recBytesPerSample*nSamples; // {2,4}*nSamples
- if (_recSize > kMaxBufferSizeBytes)
- {
- assert(false);
- return -1;
- }
+ _recSamples = nSamples;
+ _recSize = _recBytesPerSample * nSamples; // {2,4}*nSamples
+ if (_recSize > kMaxBufferSizeBytes) {
+ assert(false);
+ return -1;
+ }
- if (_recChannel == AudioDeviceModule::kChannelBoth)
- {
- // (default) copy the complete input buffer to the local buffer
- memcpy(&_recBuffer[0], audioBuffer, _recSize);
- }
- else
- {
- int16_t* ptr16In = (int16_t*)audioBuffer;
- int16_t* ptr16Out = (int16_t*)&_recBuffer[0];
-
- if (AudioDeviceModule::kChannelRight == _recChannel)
- {
- ptr16In++;
- }
-
- // exctract left or right channel from input buffer to the local buffer
- for (size_t i = 0; i < _recSamples; i++)
- {
- *ptr16Out = *ptr16In;
- ptr16Out++;
- ptr16In++;
- ptr16In++;
- }
+ if (_recChannel == AudioDeviceModule::kChannelBoth) {
+ // (default) copy the complete input buffer to the local buffer
+ memcpy(&_recBuffer[0], audioBuffer, _recSize);
+ } else {
+ int16_t* ptr16In = (int16_t*)audioBuffer;
+ int16_t* ptr16Out = (int16_t*)&_recBuffer[0];
+
+ if (AudioDeviceModule::kChannelRight == _recChannel) {
+ ptr16In++;
}
- if (_recFile.is_open()) {
- // write to binary file in mono or stereo (interleaved)
- _recFile.Write(&_recBuffer[0], _recSize);
+ // exctract left or right channel from input buffer to the local buffer
+ for (size_t i = 0; i < _recSamples; i++) {
+ *ptr16Out = *ptr16In;
+ ptr16Out++;
+ ptr16In++;
+ ptr16In++;
}
+ }
- return 0;
+ if (_recFile.is_open()) {
+ // write to binary file in mono or stereo (interleaved)
+ _recFile.Write(&_recBuffer[0], _recSize);
+ }
+
+ return 0;
}
// ----------------------------------------------------------------------------
// DeliverRecordedData
// ----------------------------------------------------------------------------
-int32_t AudioDeviceBuffer::DeliverRecordedData()
-{
- CriticalSectionScoped lock(&_critSectCb);
+int32_t AudioDeviceBuffer::DeliverRecordedData() {
+ CriticalSectionScoped lock(&_critSectCb);
- // Ensure that user has initialized all essential members
- if ((_recSampleRate == 0) ||
- (_recSamples == 0) ||
- (_recBytesPerSample == 0) ||
- (_recChannels == 0))
- {
- assert(false);
- return -1;
- }
+ // Ensure that user has initialized all essential members
+ if ((_recSampleRate == 0) || (_recSamples == 0) ||
+ (_recBytesPerSample == 0) || (_recChannels == 0)) {
+ assert(false);
+ return -1;
+ }
- if (_ptrCbAudioTransport == NULL)
- {
- WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id, "failed to deliver recorded data (AudioTransport does not exist)");
- return 0;
- }
+ if (_ptrCbAudioTransport == NULL) {
+ WEBRTC_TRACE(
+ kTraceWarning, kTraceAudioDevice, _id,
+ "failed to deliver recorded data (AudioTransport does not exist)");
+ return 0;
+ }
- int32_t res(0);
- uint32_t newMicLevel(0);
- uint32_t totalDelayMS = _playDelayMS +_recDelayMS;
-
- res = _ptrCbAudioTransport->RecordedDataIsAvailable(&_recBuffer[0],
- _recSamples,
- _recBytesPerSample,
- _recChannels,
- _recSampleRate,
- totalDelayMS,
- _clockDrift,
- _currentMicLevel,
- _typingStatus,
- newMicLevel);
- if (res != -1)
- {
- _newMicLevel = newMicLevel;
- }
+ int32_t res(0);
+ uint32_t newMicLevel(0);
+ uint32_t totalDelayMS = _playDelayMS + _recDelayMS;
- return 0;
+ res = _ptrCbAudioTransport->RecordedDataIsAvailable(
+ &_recBuffer[0], _recSamples, _recBytesPerSample, _recChannels,
+ _recSampleRate, totalDelayMS, _clockDrift, _currentMicLevel,
+ _typingStatus, newMicLevel);
+ if (res != -1) {
+ _newMicLevel = newMicLevel;
+ }
+
+ return 0;
}
// ----------------------------------------------------------------------------
// RequestPlayoutData
// ----------------------------------------------------------------------------
-int32_t AudioDeviceBuffer::RequestPlayoutData(size_t nSamples)
-{
- uint32_t playSampleRate = 0;
- size_t playBytesPerSample = 0;
- size_t playChannels = 0;
- {
- CriticalSectionScoped lock(&_critSect);
-
- // Store copies under lock and use copies hereafter to avoid race with
- // setter methods.
- playSampleRate = _playSampleRate;
- playBytesPerSample = _playBytesPerSample;
- playChannels = _playChannels;
-
- // Ensure that user has initialized all essential members
- if ((playBytesPerSample == 0) ||
- (playChannels == 0) ||
- (playSampleRate == 0))
- {
- assert(false);
- return -1;
- }
-
- _playSamples = nSamples;
- _playSize = playBytesPerSample * nSamples; // {2,4}*nSamples
- if (_playSize > kMaxBufferSizeBytes)
- {
- assert(false);
- return -1;
- }
-
- if (nSamples != _playSamples)
- {
- WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id, "invalid number of samples to be played out (%d)", nSamples);
- return -1;
- }
- }
+int32_t AudioDeviceBuffer::RequestPlayoutData(size_t nSamples) {
+ uint32_t playSampleRate = 0;
+ size_t playBytesPerSample = 0;
+ size_t playChannels = 0;
+ {
+ CriticalSectionScoped lock(&_critSect);
+
+ // Store copies under lock and use copies hereafter to avoid race with
+ // setter methods.
+ playSampleRate = _playSampleRate;
+ playBytesPerSample = _playBytesPerSample;
+ playChannels = _playChannels;
- size_t nSamplesOut(0);
+ // Ensure that user has initialized all essential members
+ if ((playBytesPerSample == 0) || (playChannels == 0) ||
+ (playSampleRate == 0)) {
+ assert(false);
+ return -1;
+ }
- CriticalSectionScoped lock(&_critSectCb);
+ _playSamples = nSamples;
+ _playSize = playBytesPerSample * nSamples; // {2,4}*nSamples
+ if (_playSize > kMaxBufferSizeBytes) {
+ assert(false);
+ return -1;
+ }
- if (_ptrCbAudioTransport == NULL)
- {
- WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id, "failed to feed data to playout (AudioTransport does not exist)");
- return 0;
+ if (nSamples != _playSamples) {
+ WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id,
+ "invalid number of samples to be played out (%d)", nSamples);
+ return -1;
}
+ }
+
+ size_t nSamplesOut(0);
- if (_ptrCbAudioTransport)
- {
- uint32_t res(0);
- int64_t elapsed_time_ms = -1;
- int64_t ntp_time_ms = -1;
- res = _ptrCbAudioTransport->NeedMorePlayData(_playSamples,
- playBytesPerSample,
- playChannels,
- playSampleRate,
- &_playBuffer[0],
- nSamplesOut,
- &elapsed_time_ms,
- &ntp_time_ms);
- if (res != 0)
- {
- WEBRTC_TRACE(kTraceError, kTraceAudioDevice, _id, "NeedMorePlayData() failed");
- }
+ CriticalSectionScoped lock(&_critSectCb);
+
+ if (_ptrCbAudioTransport == NULL) {
+ WEBRTC_TRACE(
+ kTraceWarning, kTraceAudioDevice, _id,
+ "failed to feed data to playout (AudioTransport does not exist)");
+ return 0;
+ }
+
+ if (_ptrCbAudioTransport) {
+ uint32_t res(0);
+ int64_t elapsed_time_ms = -1;
+ int64_t ntp_time_ms = -1;
+ res = _ptrCbAudioTransport->NeedMorePlayData(
+ _playSamples, playBytesPerSample, playChannels, playSampleRate,
+ &_playBuffer[0], nSamplesOut, &elapsed_time_ms, &ntp_time_ms);
+ if (res != 0) {
+ WEBRTC_TRACE(kTraceError, kTraceAudioDevice, _id,
+ "NeedMorePlayData() failed");
}
+ }
- return static_cast<int32_t>(nSamplesOut);
+ return static_cast<int32_t>(nSamplesOut);
}
// ----------------------------------------------------------------------------
// GetPlayoutData
// ----------------------------------------------------------------------------
-int32_t AudioDeviceBuffer::GetPlayoutData(void* audioBuffer)
-{
- CriticalSectionScoped lock(&_critSect);
+int32_t AudioDeviceBuffer::GetPlayoutData(void* audioBuffer) {
+ CriticalSectionScoped lock(&_critSect);
- if (_playSize > kMaxBufferSizeBytes)
- {
- WEBRTC_TRACE(kTraceError, kTraceUtility, _id,
- "_playSize %" PRIuS " exceeds kMaxBufferSizeBytes in "
- "AudioDeviceBuffer::GetPlayoutData", _playSize);
- assert(false);
- return -1;
- }
+ if (_playSize > kMaxBufferSizeBytes) {
+ WEBRTC_TRACE(kTraceError, kTraceUtility, _id,
+ "_playSize %" PRIuS
+ " exceeds kMaxBufferSizeBytes in "
+ "AudioDeviceBuffer::GetPlayoutData",
+ _playSize);
+ assert(false);
+ return -1;
+ }
- memcpy(audioBuffer, &_playBuffer[0], _playSize);
+ memcpy(audioBuffer, &_playBuffer[0], _playSize);
- if (_playFile.is_open()) {
- // write to binary file in mono or stereo (interleaved)
- _playFile.Write(&_playBuffer[0], _playSize);
- }
+ if (_playFile.is_open()) {
+ // write to binary file in mono or stereo (interleaved)
+ _playFile.Write(&_playBuffer[0], _playSize);
+ }
- return static_cast<int32_t>(_playSamples);
+ return static_cast<int32_t>(_playSamples);
}
} // namespace webrtc

Powered by Google App Engine
This is Rietveld 408576698