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