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

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

Issue 2055493003: Voice Engine: Remove RED support (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@remove-red0
Patch Set: Created 4 years, 6 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 1010 matching lines...) Expand 10 before | Expand all | Expand 10 after
1021 if (!codec_manager_.RegisterEncoder(codec) || 1021 if (!codec_manager_.RegisterEncoder(codec) ||
1022 !codec_manager_.MakeEncoder(&rent_a_codec_, audio_coding_.get()) || 1022 !codec_manager_.MakeEncoder(&rent_a_codec_, audio_coding_.get()) ||
1023 !RegisterReceiveCodec(&audio_coding_, &rent_a_codec_, codec) || 1023 !RegisterReceiveCodec(&audio_coding_, &rent_a_codec_, codec) ||
1024 _rtpRtcpModule->RegisterSendPayload(codec) == -1) { 1024 _rtpRtcpModule->RegisterSendPayload(codec) == -1) {
1025 WEBRTC_TRACE(kTraceWarning, kTraceVoice, VoEId(_instanceId, _channelId), 1025 WEBRTC_TRACE(kTraceWarning, kTraceVoice, VoEId(_instanceId, _channelId),
1026 "Channel::Init() failed to register CN (%d/%d) " 1026 "Channel::Init() failed to register CN (%d/%d) "
1027 "correctly - 1", 1027 "correctly - 1",
1028 codec.pltype, codec.plfreq); 1028 codec.pltype, codec.plfreq);
1029 } 1029 }
1030 } 1030 }
1031 #ifdef WEBRTC_CODEC_RED
1032 // Register RED to the receiving side of the ACM.
1033 // We will not receive an OnInitializeDecoder() callback for RED.
1034 if (!STR_CASE_CMP(codec.plname, "RED")) {
1035 if (!RegisterReceiveCodec(&audio_coding_, &rent_a_codec_, codec)) {
1036 WEBRTC_TRACE(kTraceWarning, kTraceVoice, VoEId(_instanceId, _channelId),
1037 "Channel::Init() failed to register RED (%d/%d) "
1038 "correctly",
1039 codec.pltype, codec.plfreq);
1040 }
1041 }
1042 #endif
1043 } 1031 }
1044 1032
1045 if (rx_audioproc_->noise_suppression()->set_level(kDefaultNsMode) != 0) { 1033 if (rx_audioproc_->noise_suppression()->set_level(kDefaultNsMode) != 0) {
1046 LOG(LS_ERROR) << "noise_suppression()->set_level(kDefaultNsMode) failed."; 1034 LOG(LS_ERROR) << "noise_suppression()->set_level(kDefaultNsMode) failed.";
1047 return -1; 1035 return -1;
1048 } 1036 }
1049 if (rx_audioproc_->gain_control()->set_mode(kDefaultRxAgcMode) != 0) { 1037 if (rx_audioproc_->gain_control()->set_mode(kDefaultRxAgcMode) != 0) {
1050 LOG(LS_ERROR) << "gain_control()->set_mode(kDefaultRxAgcMode) failed."; 1038 LOG(LS_ERROR) << "gain_control()->set_mode(kDefaultRxAgcMode) failed.";
1051 return -1; 1039 return -1;
1052 } 1040 }
(...skipping 1814 matching lines...) Expand 10 before | Expand all | Expand 10 after
2867 stats.packetsReceived = packetsReceived; 2855 stats.packetsReceived = packetsReceived;
2868 2856
2869 // --- Timestamps 2857 // --- Timestamps
2870 { 2858 {
2871 rtc::CritScope lock(&ts_stats_lock_); 2859 rtc::CritScope lock(&ts_stats_lock_);
2872 stats.capture_start_ntp_time_ms_ = capture_start_ntp_time_ms_; 2860 stats.capture_start_ntp_time_ms_ = capture_start_ntp_time_ms_;
2873 } 2861 }
2874 return 0; 2862 return 0;
2875 } 2863 }
2876 2864
2877 int Channel::SetREDStatus(bool enable, int redPayloadtype) {
2878 WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_instanceId, _channelId),
2879 "Channel::SetREDStatus()");
2880
2881 if (enable) {
2882 if (redPayloadtype < 0 || redPayloadtype > 127) {
2883 _engineStatisticsPtr->SetLastError(
2884 VE_PLTYPE_ERROR, kTraceError,
2885 "SetREDStatus() invalid RED payload type");
2886 return -1;
2887 }
2888
2889 if (SetRedPayloadType(redPayloadtype) < 0) {
the sun 2016/06/13 08:17:39 Can you remove SetRedPayloadType() as well?
kwiberg-webrtc 2016/06/13 11:21:14 Indeed I can. Good catch.
2890 _engineStatisticsPtr->SetLastError(
2891 VE_CODEC_ERROR, kTraceError,
2892 "SetSecondarySendCodec() Failed to register RED ACM");
2893 return -1;
2894 }
2895 }
2896
2897 if (!codec_manager_.SetCopyRed(enable) ||
2898 !codec_manager_.MakeEncoder(&rent_a_codec_, audio_coding_.get())) {
2899 _engineStatisticsPtr->SetLastError(
2900 VE_AUDIO_CODING_MODULE_ERROR, kTraceError,
2901 "SetREDStatus() failed to set RED state in the ACM");
2902 return -1;
2903 }
2904 return 0;
2905 }
2906
2907 int Channel::GetREDStatus(bool& enabled, int& redPayloadtype) {
2908 enabled = codec_manager_.GetStackParams()->use_red;
2909 if (enabled) {
2910 int8_t payloadType = 0;
2911 if (_rtpRtcpModule->SendREDPayloadType(&payloadType) != 0) {
2912 _engineStatisticsPtr->SetLastError(
2913 VE_RTP_RTCP_MODULE_ERROR, kTraceError,
2914 "GetREDStatus() failed to retrieve RED PT from RTP/RTCP "
2915 "module");
2916 return -1;
2917 }
2918 redPayloadtype = payloadType;
2919 return 0;
2920 }
2921 return 0;
2922 }
2923
2924 int Channel::SetCodecFECStatus(bool enable) { 2865 int Channel::SetCodecFECStatus(bool enable) {
2925 WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_instanceId, _channelId), 2866 WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_instanceId, _channelId),
2926 "Channel::SetCodecFECStatus()"); 2867 "Channel::SetCodecFECStatus()");
2927 2868
2928 if (!codec_manager_.SetCodecFEC(enable) || 2869 if (!codec_manager_.SetCodecFEC(enable) ||
2929 !codec_manager_.MakeEncoder(&rent_a_codec_, audio_coding_.get())) { 2870 !codec_manager_.MakeEncoder(&rent_a_codec_, audio_coding_.get())) {
2930 _engineStatisticsPtr->SetLastError( 2871 _engineStatisticsPtr->SetLastError(
2931 VE_AUDIO_CODING_MODULE_ERROR, kTraceError, 2872 VE_AUDIO_CODING_MODULE_ERROR, kTraceError,
2932 "SetCodecFECStatus() failed to set FEC state"); 2873 "SetCodecFECStatus() failed to set FEC state");
2933 return -1; 2874 return -1;
(...skipping 551 matching lines...) Expand 10 before | Expand all | Expand 10 after
3485 3426
3486 codec.pltype = red_payload_type; 3427 codec.pltype = red_payload_type;
3487 if (!codec_manager_.RegisterEncoder(codec) || 3428 if (!codec_manager_.RegisterEncoder(codec) ||
3488 !codec_manager_.MakeEncoder(&rent_a_codec_, audio_coding_.get())) { 3429 !codec_manager_.MakeEncoder(&rent_a_codec_, audio_coding_.get())) {
3489 _engineStatisticsPtr->SetLastError( 3430 _engineStatisticsPtr->SetLastError(
3490 VE_AUDIO_CODING_MODULE_ERROR, kTraceError, 3431 VE_AUDIO_CODING_MODULE_ERROR, kTraceError,
3491 "SetRedPayloadType() RED registration in ACM module failed"); 3432 "SetRedPayloadType() RED registration in ACM module failed");
3492 return -1; 3433 return -1;
3493 } 3434 }
3494 3435
3495 if (_rtpRtcpModule->SetSendREDPayloadType(red_payload_type) != 0) { 3436 if (_rtpRtcpModule->SetSendREDPayloadType(red_payload_type) != 0) {
the sun 2016/06/13 08:21:17 Can you make a follow-up CL to remove also RtpRtcp
kwiberg-webrtc 2016/06/13 11:21:14 Good idea. https://codereview.webrtc.org/206647300
3496 _engineStatisticsPtr->SetLastError( 3437 _engineStatisticsPtr->SetLastError(
3497 VE_RTP_RTCP_MODULE_ERROR, kTraceError, 3438 VE_RTP_RTCP_MODULE_ERROR, kTraceError,
3498 "SetRedPayloadType() RED registration in RTP/RTCP module failed"); 3439 "SetRedPayloadType() RED registration in RTP/RTCP module failed");
3499 return -1; 3440 return -1;
3500 } 3441 }
3501 return 0; 3442 return 0;
3502 } 3443 }
3503 3444
3504 int Channel::SetSendRtpHeaderExtension(bool enable, 3445 int Channel::SetSendRtpHeaderExtension(bool enable,
3505 RTPExtensionType type, 3446 RTPExtensionType type,
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
3577 int64_t min_rtt = 0; 3518 int64_t min_rtt = 0;
3578 if (_rtpRtcpModule->RTT(remoteSSRC, &rtt, &avg_rtt, &min_rtt, &max_rtt) != 3519 if (_rtpRtcpModule->RTT(remoteSSRC, &rtt, &avg_rtt, &min_rtt, &max_rtt) !=
3579 0) { 3520 0) {
3580 return 0; 3521 return 0;
3581 } 3522 }
3582 return rtt; 3523 return rtt;
3583 } 3524 }
3584 3525
3585 } // namespace voe 3526 } // namespace voe
3586 } // namespace webrtc 3527 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698