blob: 67effa0690287054cafa06bc0eeeb29a16d0d7f5 [file] [log] [blame]
niklase@google.com470e71d2011-07-07 08:21:25 +00001/*
xians@webrtc.org9b3474a2012-02-02 08:59:11 +00002 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
niklase@google.com470e71d2011-07-07 08:21:25 +00003 *
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
niklas.enbom@webrtc.orgb2c115c2011-12-21 07:38:54 +000018// 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
niklase@google.com470e71d2011-07-07 08:21:25 +000024// #define WEBRTC_EXTERNAL_TRANSPORT
25
26// ----------------------------------------------------------------------------
27// [Voice] Codec settings
28// ----------------------------------------------------------------------------
29
tina.legrand@webrtc.orga7d83872012-10-18 10:00:52 +000030// iSAC is not included in the Mozilla build, but in all other builds.
31#ifndef WEBRTC_MOZILLA_BUILD
kma@webrtc.org94771cb2012-08-28 04:09:50 +000032#ifdef WEBRTC_ARCH_ARM
tina.legrand@webrtc.orga7d83872012-10-18 10:00:52 +000033#define WEBRTC_CODEC_ISACFX // Fix-point iSAC implementation.
leozwang@webrtc.org22082e72012-04-18 16:52:00 +000034#else
tina.legrand@webrtc.orga7d83872012-10-18 10:00:52 +000035#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).
xians@webrtc.org0dffc642011-11-30 15:35:44 +000041#define WEBRTC_CODEC_AVT
42
tina.legrand@webrtc.orga7d83872012-10-18 10:00:52 +000043// 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)
xians@webrtc.org0dffc642011-11-30 15:35:44 +000046#define WEBRTC_CODEC_ILBC
niklase@google.com470e71d2011-07-07 08:21:25 +000047#define WEBRTC_CODEC_G722
48#define WEBRTC_CODEC_PCM16
49#define WEBRTC_CODEC_RED
tina.legrand@webrtc.orga7d83872012-10-18 10:00:52 +000050#endif // !WEBRTC_CHROMIUM_BUILD && !WEBRTC_MOZILLA_BUILD
niklase@google.com470e71d2011-07-07 08:21:25 +000051
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
niklase@google.com470e71d2011-07-07 08:21:25 +000070#define WEBRTC_VOE_EXTERNAL_REC_AND_PLAYOUT
71
xians@webrtc.org832d7c62011-12-08 16:45:46 +000072#ifndef WEBRTC_CHROMIUM_BUILD
73#define WEBRTC_VOICE_ENGINE_TYPING_DETECTION // Typing detection
74#endif
75
niklase@google.com470e71d2011-07-07 08:21:25 +000076// ----------------------------------------------------------------------------
77// VoiceEngine sub-APIs
78// ----------------------------------------------------------------------------
79
80#define WEBRTC_VOICE_ENGINE_AUDIO_PROCESSING_API
niklase@google.com470e71d2011-07-07 08:21:25 +000081#define WEBRTC_VOICE_ENGINE_CODEC_API
82#define WEBRTC_VOICE_ENGINE_DTMF_API
xians@webrtc.org5b6d3ce2012-03-15 14:40:00 +000083#define WEBRTC_VOICE_ENGINE_EXTERNAL_MEDIA_API
84#define WEBRTC_VOICE_ENGINE_FILE_API
niklase@google.com470e71d2011-07-07 08:21:25 +000085#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
xians@webrtc.org9b3474a2012-02-02 08:59:11 +000092#ifndef WEBRTC_CHROMIUM_BUILD
93#define WEBRTC_VOICE_ENGINE_CALL_REPORT_API
94#define WEBRTC_VOICE_ENGINE_ENCRYPTION_API
xians@webrtc.org9b3474a2012-02-02 08:59:11 +000095#endif
96
niklase@google.com470e71d2011-07-07 08:21:25 +000097// ============================================================================
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
niklase@google.com470e71d2011-07-07 08:21:25 +0000111#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
dwkang@webrtc.org6bd737a2012-12-04 06:38:19 +0000115#define WEBRTC_VIDEO_ENGINE_EXTERNAL_CODEC_API
niklase@google.com470e71d2011-07-07 08:21:25 +0000116
andrew@webrtc.orgf5a91fd2012-07-23 16:28:02 +0000117// Now handled by gyp:
118// WEBRTC_VIDEO_ENGINE_FILE_API
xians@webrtc.org594ab3c2012-02-08 10:38:12 +0000119
niklase@google.com470e71d2011-07-07 08:21:25 +0000120// ============================================================================
121// Platform specific configurations
122// ============================================================================
123
124// ----------------------------------------------------------------------------
125// VideoEngine Windows
126// ----------------------------------------------------------------------------
127
128#if defined(_WIN32)
andrew@webrtc.org80124742012-03-08 17:54:24 +0000129#define DIRECT3D9_RENDERING // Requires DirectX 9.
130#endif
niklase@google.com470e71d2011-07-07 08:21:25 +0000131
132// ----------------------------------------------------------------------------
133// VideoEngine MAC
134// ----------------------------------------------------------------------------
135
sjlee@webrtc.org414fa7f2012-09-11 17:25:46 +0000136#if defined(WEBRTC_MAC) && !defined(WEBRTC_IOS)
andrew@webrtc.org80124742012-03-08 17:54:24 +0000137// #define CARBON_RENDERING
138#define COCOA_RENDERING
niklase@google.com470e71d2011-07-07 08:21:25 +0000139#endif
140
141// ----------------------------------------------------------------------------
142// VideoEngine Mobile iPhone
143// ----------------------------------------------------------------------------
144
sjlee@webrtc.org414fa7f2012-09-11 17:25:46 +0000145#if defined(WEBRTC_IOS)
andrew@webrtc.org80124742012-03-08 17:54:24 +0000146#define EAGL_RENDERING
niklase@google.com470e71d2011-07-07 08:21:25 +0000147#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_