rtp_encode: Unify the encoder configs somewhat
For uniformity. Uniformity is nice.
Bug: webrtc:2692
Change-Id: Id85e54fa31bf3cc79e73a72805e57d5e3164252f
Reviewed-on: https://webrtc-review.googlesource.com/27400
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21135}
diff --git a/modules/audio_coding/neteq/tools/rtp_encode.cc b/modules/audio_coding/neteq/tools/rtp_encode.cc
index ddf6ed8..ce07199 100644
--- a/modules/audio_coding/neteq/tools/rtp_encode.cc
+++ b/modules/audio_coding/neteq/tools/rtp_encode.cc
@@ -163,9 +163,16 @@
}
}
-AudioEncoderL16::Config Pcm16bConfig(CodecType codec_type) {
- AudioEncoderL16::Config config;
+template <typename T>
+typename T::Config GetCodecConfig() {
+ typename T::Config config;
SetFrameLenIfFlagIsPositive(&config.frame_size_ms);
+ RTC_CHECK(config.IsOk());
+ return config;
+}
+
+AudioEncoderL16::Config Pcm16bConfig(CodecType codec_type) {
+ auto config = GetCodecConfig<AudioEncoderL16>();
switch (codec_type) {
case CodecType::kPcm16b8:
config.sample_rate_hz = 8000;
@@ -189,20 +196,18 @@
int payload_type) {
switch (codec_type) {
case CodecType::kOpus: {
- AudioEncoderOpusConfig config;
+ AudioEncoderOpus::Config config = GetCodecConfig<AudioEncoderOpus>();
if (FLAG_bitrate > 0) {
config.bitrate_bps = FLAG_bitrate;
}
config.dtx_enabled = FLAG_dtx;
- SetFrameLenIfFlagIsPositive(&config.frame_size_ms);
RTC_CHECK(config.IsOk());
return AudioEncoderOpus::MakeAudioEncoder(config, payload_type);
}
case CodecType::kPcmU:
case CodecType::kPcmA: {
- AudioEncoderG711::Config config;
- SetFrameLenIfFlagIsPositive(&config.frame_size_ms);
+ AudioEncoderG711::Config config = GetCodecConfig<AudioEncoderG711>();
config.type = codec_type == CodecType::kPcmU
? AudioEncoderG711::Config::Type::kPcmU
: AudioEncoderG711::Config::Type::kPcmA;
@@ -211,10 +216,8 @@
}
case CodecType::kG722: {
- AudioEncoderG722Config config;
- SetFrameLenIfFlagIsPositive(&config.frame_size_ms);
- RTC_CHECK(config.IsOk());
- return AudioEncoderG722::MakeAudioEncoder(config, payload_type);
+ return AudioEncoderG722::MakeAudioEncoder(
+ GetCodecConfig<AudioEncoderG722>(), payload_type);
}
case CodecType::kPcm16b8:
@@ -226,17 +229,13 @@
}
case CodecType::kIlbc: {
- AudioEncoderIlbcConfig config;
- SetFrameLenIfFlagIsPositive(&config.frame_size_ms);
- RTC_CHECK(config.IsOk());
- return AudioEncoderIlbc::MakeAudioEncoder(config, payload_type);
+ return AudioEncoderIlbc::MakeAudioEncoder(
+ GetCodecConfig<AudioEncoderIlbc>(), payload_type);
}
case CodecType::kIsac: {
- AudioEncoderIsac::Config config;
- SetFrameLenIfFlagIsPositive(&config.frame_size_ms);
- RTC_CHECK(config.IsOk());
- return AudioEncoderIsac::MakeAudioEncoder(config, payload_type);
+ return AudioEncoderIsac::MakeAudioEncoder(
+ GetCodecConfig<AudioEncoderIsac>(), payload_type);
}
}
RTC_NOTREACHED();