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

Side by Side Diff: webrtc/voice_engine/channel.cc

Issue 1224163002: Update audio code to use size_t more correctly, webrtc/voice_engine/ portion. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: Checkpoint Created 5 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 3318 matching lines...) Expand 10 before | Expand all | Expand 10 after
3329 { 3329 {
3330 WEBRTC_TRACE(kTraceStream, kTraceVoice, VoEId(_instanceId,_channelId), 3330 WEBRTC_TRACE(kTraceStream, kTraceVoice, VoEId(_instanceId,_channelId),
3331 "Channel::Demultiplex()"); 3331 "Channel::Demultiplex()");
3332 _audioFrame.CopyFrom(audioFrame); 3332 _audioFrame.CopyFrom(audioFrame);
3333 _audioFrame.id_ = _channelId; 3333 _audioFrame.id_ = _channelId;
3334 return 0; 3334 return 0;
3335 } 3335 }
3336 3336
3337 void Channel::Demultiplex(const int16_t* audio_data, 3337 void Channel::Demultiplex(const int16_t* audio_data,
3338 int sample_rate, 3338 int sample_rate,
3339 int number_of_frames, 3339 size_t number_of_frames,
3340 int number_of_channels) { 3340 int number_of_channels) {
pbos-webrtc 2015/07/14 08:15:10 Make number_of_channels size_t as well?
3341 CodecInst codec; 3341 CodecInst codec;
3342 GetSendCodec(codec); 3342 GetSendCodec(codec);
3343 3343
3344 if (!mono_recording_audio_.get()) { 3344 if (!mono_recording_audio_.get()) {
3345 // Temporary space for DownConvertToCodecFormat. 3345 // Temporary space for DownConvertToCodecFormat.
3346 mono_recording_audio_.reset(new int16_t[kMaxMonoDataSizeSamples]); 3346 mono_recording_audio_.reset(new int16_t[kMaxMonoDataSizeSamples]);
3347 } 3347 }
3348 DownConvertToCodecFormat(audio_data, 3348 DownConvertToCodecFormat(audio_data,
3349 number_of_frames, 3349 number_of_frames,
3350 number_of_channels, 3350 number_of_channels,
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
3391 (int16_t*)_audioFrame.data_, 3391 (int16_t*)_audioFrame.data_,
3392 _audioFrame.samples_per_channel_, 3392 _audioFrame.samples_per_channel_,
3393 _audioFrame.sample_rate_hz_, 3393 _audioFrame.sample_rate_hz_,
3394 isStereo); 3394 isStereo);
3395 } 3395 }
3396 } 3396 }
3397 3397
3398 InsertInbandDtmfTone(); 3398 InsertInbandDtmfTone();
3399 3399
3400 if (_includeAudioLevelIndication) { 3400 if (_includeAudioLevelIndication) {
3401 int length = _audioFrame.samples_per_channel_ * _audioFrame.num_channels_; 3401 size_t length =
3402 _audioFrame.samples_per_channel_ * _audioFrame.num_channels_;
3402 if (is_muted) { 3403 if (is_muted) {
3403 rms_level_.ProcessMuted(length); 3404 rms_level_.ProcessMuted(length);
3404 } else { 3405 } else {
3405 rms_level_.Process(_audioFrame.data_, length); 3406 rms_level_.Process(_audioFrame.data_, length);
3406 } 3407 }
3407 } 3408 }
3408 3409
3409 return 0; 3410 return 0;
3410 } 3411 }
3411 3412
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after
3706 *rtp_receiver = rtp_receiver_.get(); 3707 *rtp_receiver = rtp_receiver_.get();
3707 return 0; 3708 return 0;
3708 } 3709 }
3709 3710
3710 // TODO(andrew): refactor Mix functions here and in transmit_mixer.cc to use 3711 // TODO(andrew): refactor Mix functions here and in transmit_mixer.cc to use
3711 // a shared helper. 3712 // a shared helper.
3712 int32_t 3713 int32_t
3713 Channel::MixOrReplaceAudioWithFile(int mixingFrequency) 3714 Channel::MixOrReplaceAudioWithFile(int mixingFrequency)
3714 { 3715 {
3715 rtc::scoped_ptr<int16_t[]> fileBuffer(new int16_t[640]); 3716 rtc::scoped_ptr<int16_t[]> fileBuffer(new int16_t[640]);
3716 int fileSamples(0); 3717 size_t fileSamples(0);
3717 3718
3718 { 3719 {
3719 CriticalSectionScoped cs(&_fileCritSect); 3720 CriticalSectionScoped cs(&_fileCritSect);
3720 3721
3721 if (_inputFilePlayerPtr == NULL) 3722 if (_inputFilePlayerPtr == NULL)
3722 { 3723 {
3723 WEBRTC_TRACE(kTraceWarning, kTraceVoice, 3724 WEBRTC_TRACE(kTraceWarning, kTraceVoice,
3724 VoEId(_instanceId, _channelId), 3725 VoEId(_instanceId, _channelId),
3725 "Channel::MixOrReplaceAudioWithFile() fileplayer" 3726 "Channel::MixOrReplaceAudioWithFile() fileplayer"
3726 " doesnt exist"); 3727 " doesnt exist");
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
3776 return 0; 3777 return 0;
3777 } 3778 }
3778 3779
3779 int32_t 3780 int32_t
3780 Channel::MixAudioWithFile(AudioFrame& audioFrame, 3781 Channel::MixAudioWithFile(AudioFrame& audioFrame,
3781 int mixingFrequency) 3782 int mixingFrequency)
3782 { 3783 {
3783 assert(mixingFrequency <= 48000); 3784 assert(mixingFrequency <= 48000);
3784 3785
3785 rtc::scoped_ptr<int16_t[]> fileBuffer(new int16_t[960]); 3786 rtc::scoped_ptr<int16_t[]> fileBuffer(new int16_t[960]);
3786 int fileSamples(0); 3787 size_t fileSamples(0);
3787 3788
3788 { 3789 {
3789 CriticalSectionScoped cs(&_fileCritSect); 3790 CriticalSectionScoped cs(&_fileCritSect);
3790 3791
3791 if (_outputFilePlayerPtr == NULL) 3792 if (_outputFilePlayerPtr == NULL)
3792 { 3793 {
3793 WEBRTC_TRACE(kTraceWarning, kTraceVoice, 3794 WEBRTC_TRACE(kTraceWarning, kTraceVoice,
3794 VoEId(_instanceId, _channelId), 3795 VoEId(_instanceId, _channelId),
3795 "Channel::MixAudioWithFile() file mixing failed"); 3796 "Channel::MixAudioWithFile() file mixing failed");
3796 return -1; 3797 return -1;
(...skipping 17 matching lines...) Expand all
3814 // TODO(xians): Change the code when FilePlayer supports real stereo. 3815 // TODO(xians): Change the code when FilePlayer supports real stereo.
3815 MixWithSat(audioFrame.data_, 3816 MixWithSat(audioFrame.data_,
3816 audioFrame.num_channels_, 3817 audioFrame.num_channels_,
3817 fileBuffer.get(), 3818 fileBuffer.get(),
3818 1, 3819 1,
3819 fileSamples); 3820 fileSamples);
3820 } 3821 }
3821 else 3822 else
3822 { 3823 {
3823 WEBRTC_TRACE(kTraceWarning, kTraceVoice, VoEId(_instanceId,_channelId), 3824 WEBRTC_TRACE(kTraceWarning, kTraceVoice, VoEId(_instanceId,_channelId),
3824 "Channel::MixAudioWithFile() samples_per_channel_(%d) != " 3825 "Channel::MixAudioWithFile() samples_per_channel_(%" PRIuS ") != "
henrika_webrtc 2015/07/14 07:54:09 Have not used this macro before. What does it expa
3825 "fileSamples(%d)", 3826 "fileSamples(%" PRIuS ")",
3826 audioFrame.samples_per_channel_, fileSamples); 3827 audioFrame.samples_per_channel_, fileSamples);
3827 return -1; 3828 return -1;
3828 } 3829 }
3829 3830
3830 return 0; 3831 return 0;
3831 } 3832 }
3832 3833
3833 int 3834 int
3834 Channel::InsertInbandDtmfTone() 3835 Channel::InsertInbandDtmfTone()
3835 { 3836 {
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
3875 // Get 10ms tone segment and set time since last tone to zero 3876 // Get 10ms tone segment and set time since last tone to zero
3876 if (_inbandDtmfGenerator.Get10msTone(toneBuffer, toneSamples) == -1) 3877 if (_inbandDtmfGenerator.Get10msTone(toneBuffer, toneSamples) == -1)
3877 { 3878 {
3878 WEBRTC_TRACE(kTraceWarning, kTraceVoice, 3879 WEBRTC_TRACE(kTraceWarning, kTraceVoice,
3879 VoEId(_instanceId, _channelId), 3880 VoEId(_instanceId, _channelId),
3880 "Channel::EncodeAndSend() inserting Dtmf failed"); 3881 "Channel::EncodeAndSend() inserting Dtmf failed");
3881 return -1; 3882 return -1;
3882 } 3883 }
3883 3884
3884 // Replace mixed audio with DTMF tone. 3885 // Replace mixed audio with DTMF tone.
3885 for (int sample = 0; 3886 for (size_t sample = 0;
3886 sample < _audioFrame.samples_per_channel_; 3887 sample < _audioFrame.samples_per_channel_;
3887 sample++) 3888 sample++)
3888 { 3889 {
3889 for (int channel = 0; 3890 for (int channel = 0;
3890 channel < _audioFrame.num_channels_; 3891 channel < _audioFrame.num_channels_;
3891 channel++) 3892 channel++)
3892 { 3893 {
3893 const int index = sample * _audioFrame.num_channels_ + channel; 3894 const size_t index =
3895 sample * _audioFrame.num_channels_ + channel;
3894 _audioFrame.data_[index] = toneBuffer[sample]; 3896 _audioFrame.data_[index] = toneBuffer[sample];
3895 } 3897 }
3896 } 3898 }
3897 3899
3898 assert(_audioFrame.samples_per_channel_ == toneSamples); 3900 assert(_audioFrame.samples_per_channel_ == toneSamples);
3899 } else 3901 } else
3900 { 3902 {
3901 // Add 10ms to "delay-since-last-tone" counter 3903 // Add 10ms to "delay-since-last-tone" counter
3902 _inbandDtmfGenerator.UpdateDelaySinceLastTone(); 3904 _inbandDtmfGenerator.UpdateDelaySinceLastTone();
3903 } 3905 }
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after
4131 int64_t min_rtt = 0; 4133 int64_t min_rtt = 0;
4132 if (_rtpRtcpModule->RTT(remoteSSRC, &rtt, &avg_rtt, &min_rtt, &max_rtt) 4134 if (_rtpRtcpModule->RTT(remoteSSRC, &rtt, &avg_rtt, &min_rtt, &max_rtt)
4133 != 0) { 4135 != 0) {
4134 return 0; 4136 return 0;
4135 } 4137 }
4136 return rtt; 4138 return rtt;
4137 } 4139 }
4138 4140
4139 } // namespace voe 4141 } // namespace voe
4140 } // namespace webrtc 4142 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698