engine_configurations.h revision bf00740c92839865f3656fb4ee02b144f26b2012
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 is 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#endif // !WEBRTC_MOZILLA_BUILD 32 33// AVT is included in all builds, along with G.711, NetEQ and CNG 34// (which are mandatory and don't have any defines). 35#define WEBRTC_CODEC_AVT 36 37// PCM16 is useful for testing and incurs only a small binary size cost. 38#define WEBRTC_CODEC_PCM16 39 40// iLBC, G.722, and Redundancy coding are excluded from Chromium and Mozilla 41// builds to reduce binary size. 42#if !defined(WEBRTC_CHROMIUM_BUILD) && !defined(WEBRTC_MOZILLA_BUILD) 43#define WEBRTC_CODEC_ILBC 44#define WEBRTC_CODEC_G722 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 55// ============================================================================ 56// VoiceEngine 57// ============================================================================ 58 59// ---------------------------------------------------------------------------- 60// Settings for VoiceEngine 61// ---------------------------------------------------------------------------- 62 63#define WEBRTC_VOICE_ENGINE_AGC // Near-end AGC 64#define WEBRTC_VOICE_ENGINE_ECHO // Near-end AEC 65#define WEBRTC_VOICE_ENGINE_NR // Near-end NS 66#define WEBRTC_VOE_EXTERNAL_REC_AND_PLAYOUT 67 68#if !defined(WEBRTC_ANDROID) && !defined(WEBRTC_IOS) 69#define WEBRTC_VOICE_ENGINE_TYPING_DETECTION // Typing detection 70#endif 71 72// ---------------------------------------------------------------------------- 73// VoiceEngine sub-APIs 74// ---------------------------------------------------------------------------- 75 76#define WEBRTC_VOICE_ENGINE_AUDIO_PROCESSING_API 77#define WEBRTC_VOICE_ENGINE_CODEC_API 78#define WEBRTC_VOICE_ENGINE_DTMF_API 79#define WEBRTC_VOICE_ENGINE_EXTERNAL_MEDIA_API 80#define WEBRTC_VOICE_ENGINE_FILE_API 81#define WEBRTC_VOICE_ENGINE_HARDWARE_API 82#define WEBRTC_VOICE_ENGINE_NETEQ_STATS_API 83#define WEBRTC_VOICE_ENGINE_RTP_RTCP_API 84#define WEBRTC_VOICE_ENGINE_VIDEO_SYNC_API 85#define WEBRTC_VOICE_ENGINE_VOLUME_CONTROL_API 86 87#ifndef WEBRTC_CHROMIUM_BUILD 88#define WEBRTC_VOICE_ENGINE_CALL_REPORT_API 89#define WEBRTC_VOICE_ENGINE_ENCRYPTION_API 90#endif 91 92// ============================================================================ 93// VideoEngine 94// ============================================================================ 95 96// ---------------------------------------------------------------------------- 97// Settings for special VideoEngine configurations 98// ---------------------------------------------------------------------------- 99// ---------------------------------------------------------------------------- 100// VideoEngine sub-API:s 101// ---------------------------------------------------------------------------- 102 103#define WEBRTC_VIDEO_ENGINE_CAPTURE_API 104#define WEBRTC_VIDEO_ENGINE_CODEC_API 105#define WEBRTC_VIDEO_ENGINE_ENCRYPTION_API 106#define WEBRTC_VIDEO_ENGINE_IMAGE_PROCESS_API 107#define WEBRTC_VIDEO_ENGINE_RENDER_API 108#define WEBRTC_VIDEO_ENGINE_RTP_RTCP_API 109#define WEBRTC_VIDEO_ENGINE_EXTERNAL_CODEC_API 110 111// Now handled by gyp: 112// WEBRTC_VIDEO_ENGINE_FILE_API 113 114// ============================================================================ 115// Platform specific configurations 116// ============================================================================ 117 118// ---------------------------------------------------------------------------- 119// VideoEngine Windows 120// ---------------------------------------------------------------------------- 121 122#if defined(_WIN32) 123#define DIRECT3D9_RENDERING // Requires DirectX 9. 124#endif 125 126// ---------------------------------------------------------------------------- 127// VideoEngine MAC 128// ---------------------------------------------------------------------------- 129 130#if defined(WEBRTC_MAC) && !defined(WEBRTC_IOS) 131// #define CARBON_RENDERING 132#define COCOA_RENDERING 133#endif 134 135// ---------------------------------------------------------------------------- 136// VideoEngine Mobile iPhone 137// ---------------------------------------------------------------------------- 138 139#if defined(WEBRTC_IOS) 140#define EAGL_RENDERING 141#endif 142 143// ---------------------------------------------------------------------------- 144// Deprecated 145// ---------------------------------------------------------------------------- 146 147// #define WEBRTC_CODEC_G729 148// #define WEBRTC_DTMF_DETECTION 149 150#endif // WEBRTC_ENGINE_CONFIGURATIONS_H_ 151