| /* |
| * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
| * |
| * Use of this source code is governed by a BSD-style license |
| * that can be found in the LICENSE file in the root of the source |
| * tree. An additional intellectual property rights grant can be found |
| * in the file PATENTS. All contributing project authors may |
| * be found in the AUTHORS file in the root of the source tree. |
| */ |
| |
| /* |
| * This file contains common constants for VoiceEngine, as well as |
| * platform specific settings. |
| */ |
| |
| #ifndef WEBRTC_VOICE_ENGINE_VOICE_ENGINE_DEFINES_H |
| #define WEBRTC_VOICE_ENGINE_VOICE_ENGINE_DEFINES_H |
| |
| #include "webrtc/common_types.h" |
| #include "webrtc/modules/audio_processing/include/audio_processing.h" |
| #include "webrtc/typedefs.h" |
| |
| namespace webrtc { |
| |
| // VolumeControl |
| enum { kMinVolumeLevel = 0 }; |
| enum { kMaxVolumeLevel = 255 }; |
| // Min scale factor for per-channel volume scaling |
| const float kMinOutputVolumeScaling = 0.0f; |
| // Max scale factor for per-channel volume scaling |
| const float kMaxOutputVolumeScaling = 10.0f; |
| // Min scale factor for output volume panning |
| const float kMinOutputVolumePanning = 0.0f; |
| // Max scale factor for output volume panning |
| const float kMaxOutputVolumePanning = 1.0f; |
| |
| enum { kVoiceEngineMaxIpPacketSizeBytes = 1500 }; // assumes Ethernet |
| |
| // Audio processing |
| const NoiseSuppression::Level kDefaultNsMode = NoiseSuppression::kModerate; |
| const GainControl::Mode kDefaultAgcMode = |
| #if defined(WEBRTC_ANDROID) || defined(WEBRTC_IOS) |
| GainControl::kAdaptiveDigital; |
| #else |
| GainControl::kAdaptiveAnalog; |
| #endif |
| const bool kDefaultAgcState = |
| #if defined(WEBRTC_ANDROID) || defined(WEBRTC_IOS) |
| false; |
| #else |
| true; |
| #endif |
| const GainControl::Mode kDefaultRxAgcMode = GainControl::kAdaptiveDigital; |
| |
| // VideoSync |
| // Lowest minimum playout delay |
| enum { kVoiceEngineMinMinPlayoutDelayMs = 0 }; |
| // Highest minimum playout delay |
| enum { kVoiceEngineMaxMinPlayoutDelayMs = 10000 }; |
| |
| // RTP/RTCP |
| // Min 4-bit ID for RTP extension (see section 4.2 in RFC 5285) |
| enum { kVoiceEngineMinRtpExtensionId = 1 }; |
| // Max 4-bit ID for RTP extension |
| enum { kVoiceEngineMaxRtpExtensionId = 14 }; |
| |
| } // namespace webrtc |
| |
| #define NOT_SUPPORTED(stat) \ |
| LOG_F(LS_ERROR) << "not supported"; \ |
| stat.SetLastError(VE_FUNC_NOT_SUPPORTED); \ |
| return -1; |
| |
| namespace webrtc { |
| |
| inline int VoEId(int veId, int chId) { |
| if (chId == -1) { |
| const int dummyChannel(99); |
| return (int)((veId << 16) + dummyChannel); |
| } |
| return (int)((veId << 16) + chId); |
| } |
| |
| inline int VoEModuleId(int veId, int chId) { |
| return (int)((veId << 16) + chId); |
| } |
| |
| // Convert module ID to internal VoE channel ID |
| inline int VoEChannelId(int moduleId) { |
| return (int)(moduleId & 0xffff); |
| } |
| |
| } // namespace webrtc |
| |
| #if defined(_WIN32) |
| #define WEBRTC_VOICE_ENGINE_DEFAULT_DEVICE \ |
| AudioDeviceModule::kDefaultCommunicationDevice |
| #else |
| #define WEBRTC_VOICE_ENGINE_DEFAULT_DEVICE 0 |
| #endif // #if (defined(_WIN32) |
| |
| #endif // WEBRTC_VOICE_ENGINE_VOICE_ENGINE_DEFINES_H |