engine_configurations.h revision 6bd737a714ee2f67124aafd2b40ac3b36ff08ef8
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// ============================================================================ 15// Voice and Video 16// ============================================================================ 17 18// Don't link in socket support in Chrome 19#ifdef WEBRTC_CHROMIUM_BUILD 20#define WEBRTC_EXTERNAL_TRANSPORT 21#endif 22 23// Optional to enable stand-alone 24// #define WEBRTC_EXTERNAL_TRANSPORT 25 26// ---------------------------------------------------------------------------- 27// [Voice] Codec settings 28// ---------------------------------------------------------------------------- 29 30// iSAC is not included in the Mozilla build, but in all other builds. 31#ifndef WEBRTC_MOZILLA_BUILD 32#ifdef WEBRTC_ARCH_ARM 33#define WEBRTC_CODEC_ISACFX // Fix-point iSAC implementation. 34#else 35#define WEBRTC_CODEC_ISAC // Floating-point iSAC implementation (default). 36#endif // WEBRTC_ARCH_ARM 37#endif // !WEBRTC_MOZILLA_BUILD 38 39// AVT is included in all builds, along with G.711, NetEQ and CNG 40// (which are mandatory and don't have any defines). 41#define WEBRTC_CODEC_AVT 42 43// iLBC, G.722, PCM16B and Redundancy coding are excluded from Chromium and 44// Mozilla builds. 45#if !defined(WEBRTC_CHROMIUM_BUILD) && !defined(WEBRTC_MOZILLA_BUILD) 46#define WEBRTC_CODEC_ILBC 47#define WEBRTC_CODEC_G722 48#define WEBRTC_CODEC_PCM16 49#define WEBRTC_CODEC_RED 50#endif // !WEBRTC_CHROMIUM_BUILD && !WEBRTC_MOZILLA_BUILD 51 52// ---------------------------------------------------------------------------- 53// [Video] Codec settings 54// ---------------------------------------------------------------------------- 55 56#define VIDEOCODEC_I420 57#define VIDEOCODEC_VP8 58 59// ============================================================================ 60// VoiceEngine 61// ============================================================================ 62 63// ---------------------------------------------------------------------------- 64// Settings for VoiceEngine 65// ---------------------------------------------------------------------------- 66 67#define WEBRTC_VOICE_ENGINE_AGC // Near-end AGC 68#define WEBRTC_VOICE_ENGINE_ECHO // Near-end AEC 69#define WEBRTC_VOICE_ENGINE_NR // Near-end NS 70#define WEBRTC_VOE_EXTERNAL_REC_AND_PLAYOUT 71 72#ifndef WEBRTC_CHROMIUM_BUILD 73#define WEBRTC_VOICE_ENGINE_TYPING_DETECTION // Typing detection 74#endif 75 76// ---------------------------------------------------------------------------- 77// VoiceEngine sub-APIs 78// ---------------------------------------------------------------------------- 79 80#define WEBRTC_VOICE_ENGINE_AUDIO_PROCESSING_API 81#define WEBRTC_VOICE_ENGINE_CODEC_API 82#define WEBRTC_VOICE_ENGINE_DTMF_API 83#define WEBRTC_VOICE_ENGINE_EXTERNAL_MEDIA_API 84#define WEBRTC_VOICE_ENGINE_FILE_API 85#define WEBRTC_VOICE_ENGINE_HARDWARE_API 86#define WEBRTC_VOICE_ENGINE_NETEQ_STATS_API 87#define WEBRTC_VOICE_ENGINE_NETWORK_API 88#define WEBRTC_VOICE_ENGINE_RTP_RTCP_API 89#define WEBRTC_VOICE_ENGINE_VIDEO_SYNC_API 90#define WEBRTC_VOICE_ENGINE_VOLUME_CONTROL_API 91 92#ifndef WEBRTC_CHROMIUM_BUILD 93#define WEBRTC_VOICE_ENGINE_CALL_REPORT_API 94#define WEBRTC_VOICE_ENGINE_ENCRYPTION_API 95#endif 96 97// ============================================================================ 98// VideoEngine 99// ============================================================================ 100 101// ---------------------------------------------------------------------------- 102// Settings for special VideoEngine configurations 103// ---------------------------------------------------------------------------- 104// ---------------------------------------------------------------------------- 105// VideoEngine sub-API:s 106// ---------------------------------------------------------------------------- 107 108#define WEBRTC_VIDEO_ENGINE_CAPTURE_API 109#define WEBRTC_VIDEO_ENGINE_CODEC_API 110#define WEBRTC_VIDEO_ENGINE_ENCRYPTION_API 111#define WEBRTC_VIDEO_ENGINE_IMAGE_PROCESS_API 112#define WEBRTC_VIDEO_ENGINE_NETWORK_API 113#define WEBRTC_VIDEO_ENGINE_RENDER_API 114#define WEBRTC_VIDEO_ENGINE_RTP_RTCP_API 115#define WEBRTC_VIDEO_ENGINE_EXTERNAL_CODEC_API 116 117// Now handled by gyp: 118// WEBRTC_VIDEO_ENGINE_FILE_API 119 120// ============================================================================ 121// Platform specific configurations 122// ============================================================================ 123 124// ---------------------------------------------------------------------------- 125// VideoEngine Windows 126// ---------------------------------------------------------------------------- 127 128#if defined(_WIN32) 129#define DIRECT3D9_RENDERING // Requires DirectX 9. 130#endif 131 132// ---------------------------------------------------------------------------- 133// VideoEngine MAC 134// ---------------------------------------------------------------------------- 135 136#if defined(WEBRTC_MAC) && !defined(WEBRTC_IOS) 137// #define CARBON_RENDERING 138#define COCOA_RENDERING 139#endif 140 141// ---------------------------------------------------------------------------- 142// VideoEngine Mobile iPhone 143// ---------------------------------------------------------------------------- 144 145#if defined(WEBRTC_IOS) 146#define EAGL_RENDERING 147#endif 148 149// ---------------------------------------------------------------------------- 150// Deprecated 151// ---------------------------------------------------------------------------- 152 153// #define WEBRTC_CODEC_G729 154// #define WEBRTC_DTMF_DETECTION 155// #define WEBRTC_SRTP 156// #define WEBRTC_SRTP_ALLOW_ROC_ITERATION 157 158#endif // WEBRTC_ENGINE_CONFIGURATIONS_H_ 159