blob: 323c2a61fa0c2438c9c18360743124612e5d31a1 [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
niklase@google.com470e71d2011-07-07 08:21:25 +000030#define WEBRTC_CODEC_ISAC // floating-point iSAC implementation (default)
31// #define WEBRTC_CODEC_ISACFX // fix-point iSAC implementation
xians@webrtc.org0dffc642011-11-30 15:35:44 +000032#define WEBRTC_CODEC_AVT
33
34#ifndef WEBRTC_CHROMIUM_BUILD
35#define WEBRTC_CODEC_ILBC
niklase@google.com470e71d2011-07-07 08:21:25 +000036#define WEBRTC_CODEC_G722
37#define WEBRTC_CODEC_PCM16
38#define WEBRTC_CODEC_RED
xians@webrtc.org0dffc642011-11-30 15:35:44 +000039#endif
niklase@google.com470e71d2011-07-07 08:21:25 +000040
41// ----------------------------------------------------------------------------
42// [Video] Codec settings
43// ----------------------------------------------------------------------------
44
45#define VIDEOCODEC_I420
46#define VIDEOCODEC_VP8
47
48// ============================================================================
49// VoiceEngine
50// ============================================================================
51
52// ----------------------------------------------------------------------------
53// Settings for VoiceEngine
54// ----------------------------------------------------------------------------
55
56#define WEBRTC_VOICE_ENGINE_AGC // Near-end AGC
57#define WEBRTC_VOICE_ENGINE_ECHO // Near-end AEC
58#define WEBRTC_VOICE_ENGINE_NR // Near-end NS
niklase@google.com470e71d2011-07-07 08:21:25 +000059#define WEBRTC_VOE_EXTERNAL_REC_AND_PLAYOUT
60
xians@webrtc.org832d7c62011-12-08 16:45:46 +000061#ifndef WEBRTC_CHROMIUM_BUILD
62#define WEBRTC_VOICE_ENGINE_TYPING_DETECTION // Typing detection
63#endif
64
niklase@google.com470e71d2011-07-07 08:21:25 +000065// ----------------------------------------------------------------------------
66// VoiceEngine sub-APIs
67// ----------------------------------------------------------------------------
68
69#define WEBRTC_VOICE_ENGINE_AUDIO_PROCESSING_API
niklase@google.com470e71d2011-07-07 08:21:25 +000070#define WEBRTC_VOICE_ENGINE_CODEC_API
71#define WEBRTC_VOICE_ENGINE_DTMF_API
niklase@google.com470e71d2011-07-07 08:21:25 +000072#define WEBRTC_VOICE_ENGINE_HARDWARE_API
73#define WEBRTC_VOICE_ENGINE_NETEQ_STATS_API
74#define WEBRTC_VOICE_ENGINE_NETWORK_API
75#define WEBRTC_VOICE_ENGINE_RTP_RTCP_API
76#define WEBRTC_VOICE_ENGINE_VIDEO_SYNC_API
77#define WEBRTC_VOICE_ENGINE_VOLUME_CONTROL_API
78
xians@webrtc.org9b3474a2012-02-02 08:59:11 +000079#ifndef WEBRTC_CHROMIUM_BUILD
80#define WEBRTC_VOICE_ENGINE_CALL_REPORT_API
81#define WEBRTC_VOICE_ENGINE_ENCRYPTION_API
82#define WEBRTC_VOICE_ENGINE_EXTERNAL_MEDIA_API
83#define WEBRTC_VOICE_ENGINE_FILE_API
84#endif
85
niklase@google.com470e71d2011-07-07 08:21:25 +000086// ============================================================================
87// VideoEngine
88// ============================================================================
89
90// ----------------------------------------------------------------------------
91// Settings for special VideoEngine configurations
92// ----------------------------------------------------------------------------
93// ----------------------------------------------------------------------------
94// VideoEngine sub-API:s
95// ----------------------------------------------------------------------------
96
97#define WEBRTC_VIDEO_ENGINE_CAPTURE_API
98#define WEBRTC_VIDEO_ENGINE_CODEC_API
99#define WEBRTC_VIDEO_ENGINE_ENCRYPTION_API
niklase@google.com470e71d2011-07-07 08:21:25 +0000100#define WEBRTC_VIDEO_ENGINE_IMAGE_PROCESS_API
101#define WEBRTC_VIDEO_ENGINE_NETWORK_API
102#define WEBRTC_VIDEO_ENGINE_RENDER_API
103#define WEBRTC_VIDEO_ENGINE_RTP_RTCP_API
104// #define WEBRTC_VIDEO_ENGINE_EXTERNAL_CODEC_API
105
xians@webrtc.org594ab3c2012-02-08 10:38:12 +0000106#ifndef WEBRTC_CHROMIUM_BUILD
107#define WEBRTC_VIDEO_ENGINE_FILE_API
108#endif
109
niklase@google.com470e71d2011-07-07 08:21:25 +0000110// ============================================================================
111// Platform specific configurations
112// ============================================================================
113
114// ----------------------------------------------------------------------------
115// VideoEngine Windows
116// ----------------------------------------------------------------------------
117
118#if defined(_WIN32)
andrew@webrtc.org80124742012-03-08 17:54:24 +0000119// #define DIRECTDRAW_RENDERING
120#define DIRECT3D9_RENDERING // Requires DirectX 9.
121#endif
niklase@google.com470e71d2011-07-07 08:21:25 +0000122
123// ----------------------------------------------------------------------------
124// VideoEngine MAC
125// ----------------------------------------------------------------------------
126
127#if defined(WEBRTC_MAC) && !defined(MAC_IPHONE)
andrew@webrtc.org80124742012-03-08 17:54:24 +0000128// #define CARBON_RENDERING
129#define COCOA_RENDERING
niklase@google.com470e71d2011-07-07 08:21:25 +0000130#endif
131
132// ----------------------------------------------------------------------------
133// VideoEngine Mobile iPhone
134// ----------------------------------------------------------------------------
135
136#if defined(MAC_IPHONE)
andrew@webrtc.org80124742012-03-08 17:54:24 +0000137#define EAGL_RENDERING
niklase@google.com470e71d2011-07-07 08:21:25 +0000138#endif
139
140// ----------------------------------------------------------------------------
141// Deprecated
142// ----------------------------------------------------------------------------
143
144// #define WEBRTC_CODEC_G729
145// #define WEBRTC_DTMF_DETECTION
146// #define WEBRTC_SRTP
147// #define WEBRTC_SRTP_ALLOW_ROC_ITERATION
148
149#endif // WEBRTC_ENGINE_CONFIGURATIONS_H_