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