Adding build switch for Opus that supports 120ms ptime.
BUG=webrtc:7097 TEST=Set "ptime=120", try WebRTC calls over custom build Chromium with and without Opus 120ms. Try both Chromium w <-> Chromium w and Chromium w <-> Chromium w/o Review-Url: https://codereview.webrtc.org/2668633004 Cr-Commit-Position: refs/heads/master@{#16408}
This commit is contained in:
parent
d3d3ba5159
commit
2e03c66119
@ -161,6 +161,12 @@ rtc_static_library("rtc_media") {
|
||||
defines += [ "WEBRTC_INTELLIGIBILITY_ENHANCER=0" ]
|
||||
}
|
||||
|
||||
if (rtc_opus_support_120ms_ptime) {
|
||||
defines += [ "WEBRTC_OPUS_SUPPORT_120MS_PTIME=1" ]
|
||||
} else {
|
||||
defines += [ "WEBRTC_OPUS_SUPPORT_120MS_PTIME=0" ]
|
||||
}
|
||||
|
||||
include_dirs = []
|
||||
if (rtc_build_libyuv) {
|
||||
deps += [ "$rtc_libyuv_dir" ]
|
||||
|
||||
@ -498,7 +498,12 @@ class WebRtcVoiceCodecs final {
|
||||
};
|
||||
|
||||
const WebRtcVoiceCodecs::CodecPref WebRtcVoiceCodecs::kCodecPrefs[14] = {
|
||||
#if WEBRTC_OPUS_SUPPORT_120MS_PTIME
|
||||
{kOpusCodecName, 48000, 2, 111, true, {10, 20, 40, 60, 120},
|
||||
kOpusMaxBitrateBps},
|
||||
#else
|
||||
{kOpusCodecName, 48000, 2, 111, true, {10, 20, 40, 60}, kOpusMaxBitrateBps},
|
||||
#endif
|
||||
{kIsacCodecName, 16000, 1, 103, true, {30, 60}, kIsacMaxBitrateBps},
|
||||
{kIsacCodecName, 32000, 1, 104, true, {30}, kIsacMaxBitrateBps},
|
||||
// G722 should be advertised as 8000 Hz because of the RFC "bug".
|
||||
|
||||
@ -872,6 +872,8 @@ rtc_source_set("webrtc_opus_c") {
|
||||
"codecs/opus/opus_interface.h",
|
||||
]
|
||||
|
||||
defines = audio_coding_defines
|
||||
|
||||
if (rtc_build_opus) {
|
||||
public_deps = [
|
||||
rtc_opus_dir,
|
||||
|
||||
@ -151,7 +151,11 @@ const ACMCodecDB::CodecSettings ACMCodecDB::codec_settings_[] = {
|
||||
// Opus supports frames shorter than 10ms,
|
||||
// but it doesn't help us to use them.
|
||||
// Mono and stereo.
|
||||
#if WEBRTC_OPUS_SUPPORT_120MS_PTIME
|
||||
{5, {480, 960, 1920, 2880, 5760}, 0, 2},
|
||||
#else
|
||||
{4, {480, 960, 1920, 2880}, 0, 2},
|
||||
#endif
|
||||
#endif
|
||||
// Comfort noise for three different sampling frequencies.
|
||||
{1, {240}, 240, 1},
|
||||
|
||||
@ -15,6 +15,11 @@ if (rtc_include_ilbc) {
|
||||
if (rtc_include_opus) {
|
||||
audio_codec_defines += [ "WEBRTC_CODEC_OPUS" ]
|
||||
}
|
||||
if (rtc_opus_support_120ms_ptime) {
|
||||
audio_codec_defines += [ "WEBRTC_OPUS_SUPPORT_120MS_PTIME=1" ]
|
||||
} else {
|
||||
audio_codec_defines += [ "WEBRTC_OPUS_SUPPORT_120MS_PTIME=0" ]
|
||||
}
|
||||
if (!build_with_mozilla) {
|
||||
if (current_cpu == "arm") {
|
||||
audio_codec_defines += [ "WEBRTC_CODEC_ISACFX" ]
|
||||
|
||||
@ -17,8 +17,13 @@
|
||||
#include <string.h>
|
||||
|
||||
enum {
|
||||
#if WEBRTC_OPUS_SUPPORT_120MS_PTIME
|
||||
/* Maximum supported frame size in WebRTC is 120 ms. */
|
||||
kWebRtcOpusMaxEncodeFrameSizeMs = 120,
|
||||
#else
|
||||
/* Maximum supported frame size in WebRTC is 60 ms. */
|
||||
kWebRtcOpusMaxEncodeFrameSizeMs = 60,
|
||||
#endif
|
||||
|
||||
/* The format allows up to 120 ms frames. Since we don't control the other
|
||||
* side, we must allow for packets of that size. NetEq is currently limited
|
||||
|
||||
@ -17,6 +17,10 @@ declare_args() {
|
||||
# Disable this to avoid building the Opus audio codec.
|
||||
rtc_include_opus = true
|
||||
|
||||
# Enable this if the Opus version upon which WebRTC is built supports direct
|
||||
# encoding of 120 ms packets.
|
||||
rtc_opus_support_120ms_ptime = false
|
||||
|
||||
# Enable this to let the Opus audio codec change complexity on the fly.
|
||||
rtc_opus_variable_complexity = false
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user