diff options
Diffstat (limited to 'chromium/third_party/webrtc/voice_engine/voe_external_media_impl.cc')
-rw-r--r-- | chromium/third_party/webrtc/voice_engine/voe_external_media_impl.cc | 197 |
1 files changed, 0 insertions, 197 deletions
diff --git a/chromium/third_party/webrtc/voice_engine/voe_external_media_impl.cc b/chromium/third_party/webrtc/voice_engine/voe_external_media_impl.cc index c76c280b05f..7c52692b682 100644 --- a/chromium/third_party/webrtc/voice_engine/voe_external_media_impl.cc +++ b/chromium/third_party/webrtc/voice_engine/voe_external_media_impl.cc @@ -143,203 +143,6 @@ int VoEExternalMediaImpl::DeRegisterExternalMediaProcessing( return -1; } -int VoEExternalMediaImpl::SetExternalRecordingStatus(bool enable) -{ - WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(shared_->instance_id(), -1), - "SetExternalRecordingStatus(enable=%d)", enable); -#ifdef WEBRTC_VOE_EXTERNAL_REC_AND_PLAYOUT - if (shared_->audio_device()->Recording()) - { - shared_->SetLastError(VE_ALREADY_SENDING, kTraceError, - "SetExternalRecordingStatus() cannot set state while sending"); - return -1; - } - shared_->set_ext_recording(enable); - return 0; -#else - shared_->SetLastError(VE_FUNC_NOT_SUPPORTED, kTraceError, - "SetExternalRecordingStatus() external recording is not supported"); - return -1; -#endif -} - -int VoEExternalMediaImpl::ExternalRecordingInsertData( - const int16_t speechData10ms[], - int lengthSamples, - int samplingFreqHz, - int current_delay_ms) -{ - WEBRTC_TRACE(kTraceStream, kTraceVoice, VoEId(shared_->instance_id(), -1), - "ExternalRecordingInsertData(speechData10ms=0x%x," - " lengthSamples=%u, samplingFreqHz=%d, current_delay_ms=%d)", - &speechData10ms[0], lengthSamples, samplingFreqHz, - current_delay_ms); -#ifdef WEBRTC_VOE_EXTERNAL_REC_AND_PLAYOUT - if (!shared_->statistics().Initialized()) - { - shared_->SetLastError(VE_NOT_INITED, kTraceError); - return -1; - } - if (!shared_->ext_recording()) - { - shared_->SetLastError(VE_INVALID_OPERATION, kTraceError, - "ExternalRecordingInsertData() external recording is not enabled"); - return -1; - } - if (shared_->NumOfSendingChannels() == 0) - { - shared_->SetLastError(VE_ALREADY_SENDING, kTraceError, - "SetExternalRecordingStatus() no channel is sending"); - return -1; - } - if ((16000 != samplingFreqHz) && (32000 != samplingFreqHz) && - (48000 != samplingFreqHz) && (44000 != samplingFreqHz)) - { - shared_->SetLastError(VE_INVALID_ARGUMENT, kTraceError, - "SetExternalRecordingStatus() invalid sample rate"); - return -1; - } - if ((0 == lengthSamples) || - ((lengthSamples % (samplingFreqHz / 100)) != 0)) - { - shared_->SetLastError(VE_INVALID_ARGUMENT, kTraceError, - "SetExternalRecordingStatus() invalid buffer size"); - return -1; - } - if (current_delay_ms < 0) - { - shared_->SetLastError(VE_INVALID_ARGUMENT, kTraceError, - "SetExternalRecordingStatus() invalid delay)"); - return -1; - } - - uint16_t blockSize = samplingFreqHz / 100; - uint32_t nBlocks = lengthSamples / blockSize; - int16_t totalDelayMS = 0; - uint16_t playoutDelayMS = 0; - - for (uint32_t i = 0; i < nBlocks; i++) - { - if (!shared_->ext_playout()) - { - // Use real playout delay if external playout is not enabled. - if (shared_->audio_device()->PlayoutDelay(&playoutDelayMS) != 0) { - shared_->SetLastError(VE_AUDIO_DEVICE_MODULE_ERROR, kTraceWarning, - "PlayoutDelay() unable to get the playout delay"); - } - totalDelayMS = current_delay_ms + playoutDelayMS; - } - else - { - // Use stored delay value given the last call - // to ExternalPlayoutGetData. - totalDelayMS = current_delay_ms + playout_delay_ms_; - // Compensate for block sizes larger than 10ms - totalDelayMS -= (int16_t)(i*10); - if (totalDelayMS < 0) - totalDelayMS = 0; - } - shared_->transmit_mixer()->PrepareDemux( - (const int8_t*)(&speechData10ms[i*blockSize]), - blockSize, - 1, - samplingFreqHz, - totalDelayMS, - 0, - 0, - false); // Typing detection not supported - - shared_->transmit_mixer()->DemuxAndMix(); - shared_->transmit_mixer()->EncodeAndSend(); - } - return 0; -#else - shared_->SetLastError(VE_FUNC_NOT_SUPPORTED, kTraceError, - "ExternalRecordingInsertData() external recording is not supported"); - return -1; -#endif -} - -int VoEExternalMediaImpl::SetExternalPlayoutStatus(bool enable) -{ - WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(shared_->instance_id(), -1), - "SetExternalPlayoutStatus(enable=%d)", enable); -#ifdef WEBRTC_VOE_EXTERNAL_REC_AND_PLAYOUT - if (shared_->audio_device()->Playing()) - { - shared_->SetLastError(VE_ALREADY_SENDING, kTraceError, - "SetExternalPlayoutStatus() cannot set state while playing"); - return -1; - } - shared_->set_ext_playout(enable); - return 0; -#else - shared_->SetLastError(VE_FUNC_NOT_SUPPORTED, kTraceError, - "SetExternalPlayoutStatus() external playout is not supported"); - return -1; -#endif -} - -int VoEExternalMediaImpl::ExternalPlayoutGetData( - int16_t speechData10ms[], - int samplingFreqHz, - int current_delay_ms, - int& lengthSamples) -{ - WEBRTC_TRACE(kTraceStream, kTraceVoice, VoEId(shared_->instance_id(), -1), - "ExternalPlayoutGetData(speechData10ms=0x%x, samplingFreqHz=%d" - ", current_delay_ms=%d)", &speechData10ms[0], samplingFreqHz, - current_delay_ms); -#ifdef WEBRTC_VOE_EXTERNAL_REC_AND_PLAYOUT - if (!shared_->statistics().Initialized()) - { - shared_->SetLastError(VE_NOT_INITED, kTraceError); - return -1; - } - if (!shared_->ext_playout()) - { - shared_->SetLastError(VE_INVALID_OPERATION, kTraceError, - "ExternalPlayoutGetData() external playout is not enabled"); - return -1; - } - if ((16000 != samplingFreqHz) && (32000 != samplingFreqHz) && - (48000 != samplingFreqHz) && (44000 != samplingFreqHz)) - { - shared_->SetLastError(VE_INVALID_ARGUMENT, kTraceError, - "ExternalPlayoutGetData() invalid sample rate"); - return -1; - } - if (current_delay_ms < 0) - { - shared_->SetLastError(VE_INVALID_ARGUMENT, kTraceError, - "ExternalPlayoutGetData() invalid delay)"); - return -1; - } - - AudioFrame audioFrame; - - // Retrieve mixed output at the specified rate - shared_->output_mixer()->MixActiveChannels(); - shared_->output_mixer()->DoOperationsOnCombinedSignal(); - shared_->output_mixer()->GetMixedAudio(samplingFreqHz, 1, &audioFrame); - - // Deliver audio (PCM) samples to the external sink - memcpy(speechData10ms, - audioFrame.data_, - sizeof(int16_t)*(audioFrame.samples_per_channel_)); - lengthSamples = audioFrame.samples_per_channel_; - - // Store current playout delay (to be used by ExternalRecordingInsertData). - playout_delay_ms_ = current_delay_ms; - - return 0; -#else - shared_->SetLastError(VE_FUNC_NOT_SUPPORTED, kTraceError, - "ExternalPlayoutGetData() external playout is not supported"); - return -1; -#endif -} - int VoEExternalMediaImpl::GetAudioFrame(int channel, int desired_sample_rate_hz, AudioFrame* frame) { WEBRTC_TRACE(kTraceApiCall, kTraceVoice, |