 Chromium Code Reviews
 Chromium Code Reviews Issue 2695243005:
  Injectable audio encoders: BuiltinAudioEncoderFactory  (Closed)
    
  
    Issue 2695243005:
  Injectable audio encoders: BuiltinAudioEncoderFactory  (Closed) 
  | OLD | NEW | 
|---|---|
| 1 /* | 1 /* | 
| 2 * Copyright (c) 2004 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2004 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 484 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 495 static void MaybeFixupG722(webrtc::CodecInst* voe_codec, int new_plfreq) { | 495 static void MaybeFixupG722(webrtc::CodecInst* voe_codec, int new_plfreq) { | 
| 496 if (IsCodec(*voe_codec, kG722CodecName)) { | 496 if (IsCodec(*voe_codec, kG722CodecName)) { | 
| 497 // If the DCHECK triggers, the codec definition in WebRTC VoiceEngine | 497 // If the DCHECK triggers, the codec definition in WebRTC VoiceEngine | 
| 498 // has changed, and this special case is no longer needed. | 498 // has changed, and this special case is no longer needed. | 
| 499 RTC_DCHECK(voe_codec->plfreq != new_plfreq); | 499 RTC_DCHECK(voe_codec->plfreq != new_plfreq); | 
| 500 voe_codec->plfreq = new_plfreq; | 500 voe_codec->plfreq = new_plfreq; | 
| 501 } | 501 } | 
| 502 } | 502 } | 
| 503 }; | 503 }; | 
| 504 | 504 | 
| 505 const WebRtcVoiceCodecs::CodecPref WebRtcVoiceCodecs::kCodecPrefs[14] = { | 505 const WebRtcVoiceCodecs::CodecPref WebRtcVoiceCodecs::kCodecPrefs[14] = { | 
| 
ossu
2017/03/20 18:18:53
This is the list of information I'm basing ptimes
 | |
| 506 #if WEBRTC_OPUS_SUPPORT_120MS_PTIME | 506 #if WEBRTC_OPUS_SUPPORT_120MS_PTIME | 
| 507 {kOpusCodecName, 48000, 2, 111, true, {10, 20, 40, 60, 120}, | 507 {kOpusCodecName, 48000, 2, 111, true, {10, 20, 40, 60, 120}, | 
| 508 kOpusMaxBitrateBps}, | 508 kOpusMaxBitrateBps}, | 
| 509 #else | 509 #else | 
| 510 {kOpusCodecName, 48000, 2, 111, true, {10, 20, 40, 60}, kOpusMaxBitrateBps}, | 510 {kOpusCodecName, 48000, 2, 111, true, {10, 20, 40, 60}, kOpusMaxBitrateBps}, | 
| 511 #endif | 511 #endif | 
| 512 {kIsacCodecName, 16000, 1, 103, true, {30, 60}, kIsacMaxBitrateBps}, | 512 {kIsacCodecName, 16000, 1, 103, true, {30, 60}, kIsacMaxBitrateBps}, | 
| 513 {kIsacCodecName, 32000, 1, 104, true, {30}, kIsacMaxBitrateBps}, | 513 {kIsacCodecName, 32000, 1, 104, true, {30}, kIsacMaxBitrateBps}, | 
| 514 // G722 should be advertised as 8000 Hz because of the RFC "bug". | 514 // G722 should be advertised as 8000 Hz because of the RFC "bug". | 
| 515 {kG722CodecName, 8000, 1, 9, false, {10, 20, 30, 40, 50, 60}}, | 515 {kG722CodecName, 8000, 1, 9, false, {10, 20, 30, 40, 50, 60}}, | 
| (...skipping 616 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1132 } | 1132 } | 
| 1133 | 1133 | 
| 1134 return opt_codec; | 1134 return opt_codec; | 
| 1135 }; | 1135 }; | 
| 1136 | 1136 | 
| 1137 for (const auto& spec : specs) { | 1137 for (const auto& spec : specs) { | 
| 1138 // We need to do some extra stuff before adding the main codecs to out. | 1138 // We need to do some extra stuff before adding the main codecs to out. | 
| 1139 rtc::Optional<AudioCodec> opt_codec = map_format(spec.format, nullptr); | 1139 rtc::Optional<AudioCodec> opt_codec = map_format(spec.format, nullptr); | 
| 1140 if (opt_codec) { | 1140 if (opt_codec) { | 
| 1141 AudioCodec& codec = *opt_codec; | 1141 AudioCodec& codec = *opt_codec; | 
| 1142 if (spec.supports_network_adaption) { | 1142 if (spec.info.supports_network_adaption) { | 
| 1143 codec.AddFeedbackParam( | 1143 codec.AddFeedbackParam( | 
| 1144 FeedbackParam(kRtcpFbParamTransportCc, kParamValueEmpty)); | 1144 FeedbackParam(kRtcpFbParamTransportCc, kParamValueEmpty)); | 
| 1145 } | 1145 } | 
| 1146 | 1146 | 
| 1147 if (spec.allow_comfort_noise) { | 1147 if (spec.info.allow_comfort_noise) { | 
| 1148 // Generate a CN entry if the decoder allows it and we support the | 1148 // Generate a CN entry if the decoder allows it and we support the | 
| 1149 // clockrate. | 1149 // clockrate. | 
| 1150 auto cn = generate_cn.find(spec.format.clockrate_hz); | 1150 auto cn = generate_cn.find(spec.format.clockrate_hz); | 
| 1151 if (cn != generate_cn.end()) { | 1151 if (cn != generate_cn.end()) { | 
| 1152 cn->second = true; | 1152 cn->second = true; | 
| 1153 } | 1153 } | 
| 1154 } | 1154 } | 
| 1155 | 1155 | 
| 1156 // Generate a telephone-event entry if we support the clockrate. | 1156 // Generate a telephone-event entry if we support the clockrate. | 
| 1157 auto dtmf = generate_dtmf.find(spec.format.clockrate_hz); | 1157 auto dtmf = generate_dtmf.find(spec.format.clockrate_hz); | 
| (...skipping 1535 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2693 ssrc); | 2693 ssrc); | 
| 2694 if (it != unsignaled_recv_ssrcs_.end()) { | 2694 if (it != unsignaled_recv_ssrcs_.end()) { | 
| 2695 unsignaled_recv_ssrcs_.erase(it); | 2695 unsignaled_recv_ssrcs_.erase(it); | 
| 2696 return true; | 2696 return true; | 
| 2697 } | 2697 } | 
| 2698 return false; | 2698 return false; | 
| 2699 } | 2699 } | 
| 2700 } // namespace cricket | 2700 } // namespace cricket | 
| 2701 | 2701 | 
| 2702 #endif // HAVE_WEBRTC_VOICE | 2702 #endif // HAVE_WEBRTC_VOICE | 
| OLD | NEW |