blob: 01fa36443b58458f91a8520879c300dc29f3178d [file] [log] [blame]
andrew@webrtc.orga7b57da2012-10-22 18:19:23 +00001/*
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
andrew@webrtc.orga7b57da2012-10-22 18:19:23 +000018// ----------------------------------------------------------------------------
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
andrew@webrtc.orga7b57da2012-10-22 18:19:23 +000079#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
andrew@webrtc.orga7b57da2012-10-22 18:19:23 +0000103#define WEBRTC_VIDEO_ENGINE_RENDER_API
104#define WEBRTC_VIDEO_ENGINE_RTP_RTCP_API
dwkang@webrtc.org0cf911a2012-12-04 06:38:19 +0000105#define WEBRTC_VIDEO_ENGINE_EXTERNAL_CODEC_API
andrew@webrtc.orga7b57da2012-10-22 18:19:23 +0000106
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
andrew@webrtc.orga7b57da2012-10-22 18:19:23 +0000145
146#endif // WEBRTC_ENGINE_CONFIGURATIONS_H_