engine_configurations.h revision 300eeb68f55c5091c7045e377578586733cddf16
1/* 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 3 * 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 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11#ifndef WEBRTC_ENGINE_CONFIGURATIONS_H_ 12#define WEBRTC_ENGINE_CONFIGURATIONS_H_ 13 14#include "webrtc/typedefs.h" 15 16// ============================================================================ 17// Voice and Video 18// ============================================================================ 19 20// ---------------------------------------------------------------------------- 21// [Voice] Codec settings 22// ---------------------------------------------------------------------------- 23 24// iSAC and G722 are not included in the Mozilla build, but in all other builds. 25#ifndef WEBRTC_MOZILLA_BUILD 26#ifdef WEBRTC_ARCH_ARM 27#define WEBRTC_CODEC_ISACFX // Fix-point iSAC implementation. 28#else 29#define WEBRTC_CODEC_ISAC // Floating-point iSAC implementation (default). 30#endif // WEBRTC_ARCH_ARM 31#define WEBRTC_CODEC_G722 32#endif // !WEBRTC_MOZILLA_BUILD 33 34// AVT is included in all builds, along with G.711, NetEQ and CNG 35// (which are mandatory and don't have any defines). 36#define WEBRTC_CODEC_AVT 37 38// PCM16 is useful for testing and incurs only a small binary size cost. 39#define WEBRTC_CODEC_PCM16 40 41// iLBC and Redundancy coding are excluded from Chromium and Mozilla 42// builds to reduce binary size. 43#if !defined(WEBRTC_CHROMIUM_BUILD) && !defined(WEBRTC_MOZILLA_BUILD) 44#define WEBRTC_CODEC_ILBC 45#define WEBRTC_CODEC_RED 46#endif // !WEBRTC_CHROMIUM_BUILD && !WEBRTC_MOZILLA_BUILD 47 48// ---------------------------------------------------------------------------- 49// [Video] Codec settings 50// ---------------------------------------------------------------------------- 51 52#define VIDEOCODEC_I420 53#define VIDEOCODEC_VP8 54#define VIDEOCODEC_VP9 55#define VIDEOCODEC_H264 56 57// ============================================================================ 58// VoiceEngine 59// ============================================================================ 60 61// ---------------------------------------------------------------------------- 62// Settings for VoiceEngine 63// ---------------------------------------------------------------------------- 64 65#define WEBRTC_VOICE_ENGINE_AGC // Near-end AGC 66#define WEBRTC_VOICE_ENGINE_ECHO // Near-end AEC 67#define WEBRTC_VOICE_ENGINE_NR // Near-end NS 68 69#if !defined(WEBRTC_ANDROID) && !defined(WEBRTC_IOS) 70#define WEBRTC_VOICE_ENGINE_TYPING_DETECTION // Typing detection 71#endif 72 73// ---------------------------------------------------------------------------- 74// VoiceEngine sub-APIs 75// ---------------------------------------------------------------------------- 76 77#define WEBRTC_VOICE_ENGINE_AUDIO_PROCESSING_API 78#define WEBRTC_VOICE_ENGINE_CODEC_API 79#define WEBRTC_VOICE_ENGINE_DTMF_API 80#define WEBRTC_VOICE_ENGINE_EXTERNAL_MEDIA_API 81#define WEBRTC_VOICE_ENGINE_FILE_API 82#define WEBRTC_VOICE_ENGINE_HARDWARE_API 83#define WEBRTC_VOICE_ENGINE_NETEQ_STATS_API 84#define WEBRTC_VOICE_ENGINE_RTP_RTCP_API 85#define WEBRTC_VOICE_ENGINE_VIDEO_SYNC_API 86#define WEBRTC_VOICE_ENGINE_VOLUME_CONTROL_API 87 88// ============================================================================ 89// Platform specific configurations 90// ============================================================================ 91 92// ---------------------------------------------------------------------------- 93// VideoEngine Windows 94// ---------------------------------------------------------------------------- 95 96#if defined(_WIN32) 97#define DIRECT3D9_RENDERING // Requires DirectX 9. 98#endif 99 100// ---------------------------------------------------------------------------- 101// VideoEngine MAC 102// ---------------------------------------------------------------------------- 103 104#if defined(WEBRTC_MAC) && !defined(WEBRTC_IOS) 105// #define CARBON_RENDERING 106#define COCOA_RENDERING 107#endif 108 109// ---------------------------------------------------------------------------- 110// VideoEngine Mobile iPhone 111// ---------------------------------------------------------------------------- 112 113#if defined(WEBRTC_IOS) 114#define EAGL_RENDERING 115#endif 116 117// ---------------------------------------------------------------------------- 118// Deprecated 119// ---------------------------------------------------------------------------- 120 121// #define WEBRTC_DTMF_DETECTION 122 123#endif // WEBRTC_ENGINE_CONFIGURATIONS_H_ 124