blob: 22b87e8509c8b9e92bf5f63c70fd72e3399bbe8e [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
andrew@webrtc.org0851df82013-06-19 17:03:47 +000014#include "webrtc/typedefs.h"
15
niklase@google.com470e71d2011-07-07 08:21:25 +000016// ============================================================================
17// Voice and Video
18// ============================================================================
19
niklase@google.com470e71d2011-07-07 08:21:25 +000020// ----------------------------------------------------------------------------
21// [Voice] Codec settings
22// ----------------------------------------------------------------------------
23
tina.legrand@webrtc.orga7d83872012-10-18 10:00:52 +000024// iSAC is not included in the Mozilla build, but in all other builds.
25#ifndef WEBRTC_MOZILLA_BUILD
kma@webrtc.org94771cb2012-08-28 04:09:50 +000026#ifdef WEBRTC_ARCH_ARM
tina.legrand@webrtc.orga7d83872012-10-18 10:00:52 +000027#define WEBRTC_CODEC_ISACFX // Fix-point iSAC implementation.
leozwang@webrtc.org22082e72012-04-18 16:52:00 +000028#else
tina.legrand@webrtc.orga7d83872012-10-18 10:00:52 +000029#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).
xians@webrtc.org0dffc642011-11-30 15:35:44 +000035#define WEBRTC_CODEC_AVT
36
tina.legrand@webrtc.orga7d83872012-10-18 10:00:52 +000037// iLBC, G.722, PCM16B and Redundancy coding are excluded from Chromium and
38// Mozilla builds.
39#if !defined(WEBRTC_CHROMIUM_BUILD) && !defined(WEBRTC_MOZILLA_BUILD)
xians@webrtc.org0dffc642011-11-30 15:35:44 +000040#define WEBRTC_CODEC_ILBC
niklase@google.com470e71d2011-07-07 08:21:25 +000041#define WEBRTC_CODEC_G722
42#define WEBRTC_CODEC_PCM16
43#define WEBRTC_CODEC_RED
tina.legrand@webrtc.orga7d83872012-10-18 10:00:52 +000044#endif // !WEBRTC_CHROMIUM_BUILD && !WEBRTC_MOZILLA_BUILD
niklase@google.com470e71d2011-07-07 08:21:25 +000045
46// ----------------------------------------------------------------------------
47// [Video] Codec settings
48// ----------------------------------------------------------------------------
49
50#define VIDEOCODEC_I420
51#define VIDEOCODEC_VP8
52
53// ============================================================================
54// VoiceEngine
55// ============================================================================
56
57// ----------------------------------------------------------------------------
58// Settings for VoiceEngine
59// ----------------------------------------------------------------------------
60
61#define WEBRTC_VOICE_ENGINE_AGC // Near-end AGC
62#define WEBRTC_VOICE_ENGINE_ECHO // Near-end AEC
63#define WEBRTC_VOICE_ENGINE_NR // Near-end NS
niklase@google.com470e71d2011-07-07 08:21:25 +000064#define WEBRTC_VOE_EXTERNAL_REC_AND_PLAYOUT
65
andrew@webrtc.org0851df82013-06-19 17:03:47 +000066#if !defined(WEBRTC_ANDROID) && !defined(WEBRTC_IOS) && \
67 !defined(WEBRTC_CHROMIUM_BUILD)
xians@webrtc.org832d7c62011-12-08 16:45:46 +000068#define WEBRTC_VOICE_ENGINE_TYPING_DETECTION // Typing detection
69#endif
70
niklase@google.com470e71d2011-07-07 08:21:25 +000071// ----------------------------------------------------------------------------
72// VoiceEngine sub-APIs
73// ----------------------------------------------------------------------------
74
75#define WEBRTC_VOICE_ENGINE_AUDIO_PROCESSING_API
niklase@google.com470e71d2011-07-07 08:21:25 +000076#define WEBRTC_VOICE_ENGINE_CODEC_API
77#define WEBRTC_VOICE_ENGINE_DTMF_API
xians@webrtc.org5b6d3ce2012-03-15 14:40:00 +000078#define WEBRTC_VOICE_ENGINE_EXTERNAL_MEDIA_API
79#define WEBRTC_VOICE_ENGINE_FILE_API
niklase@google.com470e71d2011-07-07 08:21:25 +000080#define WEBRTC_VOICE_ENGINE_HARDWARE_API
81#define WEBRTC_VOICE_ENGINE_NETEQ_STATS_API
niklase@google.com470e71d2011-07-07 08:21:25 +000082#define WEBRTC_VOICE_ENGINE_RTP_RTCP_API
83#define WEBRTC_VOICE_ENGINE_VIDEO_SYNC_API
84#define WEBRTC_VOICE_ENGINE_VOLUME_CONTROL_API
85
xians@webrtc.org9b3474a2012-02-02 08:59:11 +000086#ifndef WEBRTC_CHROMIUM_BUILD
87#define WEBRTC_VOICE_ENGINE_CALL_REPORT_API
88#define WEBRTC_VOICE_ENGINE_ENCRYPTION_API
xians@webrtc.org9b3474a2012-02-02 08:59:11 +000089#endif
90
niklase@google.com470e71d2011-07-07 08:21:25 +000091// ============================================================================
92// VideoEngine
93// ============================================================================
94
95// ----------------------------------------------------------------------------
96// Settings for special VideoEngine configurations
97// ----------------------------------------------------------------------------
98// ----------------------------------------------------------------------------
99// VideoEngine sub-API:s
100// ----------------------------------------------------------------------------
101
102#define WEBRTC_VIDEO_ENGINE_CAPTURE_API
103#define WEBRTC_VIDEO_ENGINE_CODEC_API
104#define WEBRTC_VIDEO_ENGINE_ENCRYPTION_API
niklase@google.com470e71d2011-07-07 08:21:25 +0000105#define WEBRTC_VIDEO_ENGINE_IMAGE_PROCESS_API
niklase@google.com470e71d2011-07-07 08:21:25 +0000106#define WEBRTC_VIDEO_ENGINE_RENDER_API
107#define WEBRTC_VIDEO_ENGINE_RTP_RTCP_API
dwkang@webrtc.org6bd737a2012-12-04 06:38:19 +0000108#define WEBRTC_VIDEO_ENGINE_EXTERNAL_CODEC_API
niklase@google.com470e71d2011-07-07 08:21:25 +0000109
andrew@webrtc.orgf5a91fd2012-07-23 16:28:02 +0000110// Now handled by gyp:
111// WEBRTC_VIDEO_ENGINE_FILE_API
xians@webrtc.org594ab3c2012-02-08 10:38:12 +0000112
niklase@google.com470e71d2011-07-07 08:21:25 +0000113// ============================================================================
114// Platform specific configurations
115// ============================================================================
116
117// ----------------------------------------------------------------------------
118// VideoEngine Windows
119// ----------------------------------------------------------------------------
120
121#if defined(_WIN32)
andrew@webrtc.org80124742012-03-08 17:54:24 +0000122#define DIRECT3D9_RENDERING // Requires DirectX 9.
123#endif
niklase@google.com470e71d2011-07-07 08:21:25 +0000124
125// ----------------------------------------------------------------------------
126// VideoEngine MAC
127// ----------------------------------------------------------------------------
128
sjlee@webrtc.org414fa7f2012-09-11 17:25:46 +0000129#if defined(WEBRTC_MAC) && !defined(WEBRTC_IOS)
andrew@webrtc.org80124742012-03-08 17:54:24 +0000130// #define CARBON_RENDERING
131#define COCOA_RENDERING
niklase@google.com470e71d2011-07-07 08:21:25 +0000132#endif
133
134// ----------------------------------------------------------------------------
135// VideoEngine Mobile iPhone
136// ----------------------------------------------------------------------------
137
sjlee@webrtc.org414fa7f2012-09-11 17:25:46 +0000138#if defined(WEBRTC_IOS)
andrew@webrtc.org80124742012-03-08 17:54:24 +0000139#define EAGL_RENDERING
niklase@google.com470e71d2011-07-07 08:21:25 +0000140#endif
141
142// ----------------------------------------------------------------------------
143// Deprecated
144// ----------------------------------------------------------------------------
145
146// #define WEBRTC_CODEC_G729
147// #define WEBRTC_DTMF_DETECTION
niklase@google.com470e71d2011-07-07 08:21:25 +0000148
149#endif // WEBRTC_ENGINE_CONFIGURATIONS_H_