blob: 4f6159cac9c895276bd72d317faee47a15bb3fd4 [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
henrik.lundin@webrtc.orgcfe38452014-10-29 08:32:44 +000024// iSAC and G722 are not included in the Mozilla build, but in all other builds.
tina.legrand@webrtc.orga7d83872012-10-18 10:00:52 +000025#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
henrik.lundin@webrtc.orgcfe38452014-10-29 08:32:44 +000031#define WEBRTC_CODEC_G722
tina.legrand@webrtc.orga7d83872012-10-18 10:00:52 +000032#endif // !WEBRTC_MOZILLA_BUILD
33
34// AVT is included in all builds, along with G.711, NetEQ and CNG
35// (which are mandatory and don't have any defines).
xians@webrtc.org0dffc642011-11-30 15:35:44 +000036#define WEBRTC_CODEC_AVT
37
andrew@webrtc.org8fa03a12013-09-12 01:30:30 +000038// PCM16 is useful for testing and incurs only a small binary size cost.
39#define WEBRTC_CODEC_PCM16
40
henrik.lundin@webrtc.orgcfe38452014-10-29 08:32:44 +000041// iLBC and Redundancy coding are excluded from Chromium and Mozilla
andrew@webrtc.org8fa03a12013-09-12 01:30:30 +000042// builds to reduce binary size.
tina.legrand@webrtc.orga7d83872012-10-18 10:00:52 +000043#if !defined(WEBRTC_CHROMIUM_BUILD) && !defined(WEBRTC_MOZILLA_BUILD)
xians@webrtc.org0dffc642011-11-30 15:35:44 +000044#define WEBRTC_CODEC_ILBC
niklase@google.com470e71d2011-07-07 08:21:25 +000045#define WEBRTC_CODEC_RED
tina.legrand@webrtc.orga7d83872012-10-18 10:00:52 +000046#endif // !WEBRTC_CHROMIUM_BUILD && !WEBRTC_MOZILLA_BUILD
niklase@google.com470e71d2011-07-07 08:21:25 +000047
48// ----------------------------------------------------------------------------
49// [Video] Codec settings
50// ----------------------------------------------------------------------------
51
52#define VIDEOCODEC_I420
53#define VIDEOCODEC_VP8
marpan@webrtc.org5b883172014-11-01 06:10:48 +000054#define VIDEOCODEC_VP9
stefan@webrtc.orgb9f54532014-07-04 12:42:07 +000055#define VIDEOCODEC_H264
niklase@google.com470e71d2011-07-07 08:21:25 +000056
57// ============================================================================
58// VoiceEngine
59// ============================================================================
60
61// ----------------------------------------------------------------------------
62// Settings for VoiceEngine
63// ----------------------------------------------------------------------------
64
65#define WEBRTC_VOICE_ENGINE_AGC // Near-end AGC
66#define WEBRTC_VOICE_ENGINE_ECHO // Near-end AEC
67#define WEBRTC_VOICE_ENGINE_NR // Near-end NS
niklase@google.com470e71d2011-07-07 08:21:25 +000068
jiayl@webrtc.orgbf007402013-09-17 18:09:20 +000069#if !defined(WEBRTC_ANDROID) && !defined(WEBRTC_IOS)
xians@webrtc.org832d7c62011-12-08 16:45:46 +000070#define WEBRTC_VOICE_ENGINE_TYPING_DETECTION // Typing detection
71#endif
72
niklase@google.com470e71d2011-07-07 08:21:25 +000073// ----------------------------------------------------------------------------
74// VoiceEngine sub-APIs
75// ----------------------------------------------------------------------------
76
77#define WEBRTC_VOICE_ENGINE_AUDIO_PROCESSING_API
niklase@google.com470e71d2011-07-07 08:21:25 +000078#define WEBRTC_VOICE_ENGINE_CODEC_API
79#define WEBRTC_VOICE_ENGINE_DTMF_API
xians@webrtc.org5b6d3ce2012-03-15 14:40:00 +000080#define WEBRTC_VOICE_ENGINE_EXTERNAL_MEDIA_API
81#define WEBRTC_VOICE_ENGINE_FILE_API
niklase@google.com470e71d2011-07-07 08:21:25 +000082#define WEBRTC_VOICE_ENGINE_HARDWARE_API
83#define WEBRTC_VOICE_ENGINE_NETEQ_STATS_API
niklase@google.com470e71d2011-07-07 08:21:25 +000084#define WEBRTC_VOICE_ENGINE_RTP_RTCP_API
85#define WEBRTC_VOICE_ENGINE_VIDEO_SYNC_API
86#define WEBRTC_VOICE_ENGINE_VOLUME_CONTROL_API
87
niklase@google.com470e71d2011-07-07 08:21:25 +000088// ============================================================================
niklase@google.com470e71d2011-07-07 08:21:25 +000089// Platform specific configurations
90// ============================================================================
91
92// ----------------------------------------------------------------------------
93// VideoEngine Windows
94// ----------------------------------------------------------------------------
95
96#if defined(_WIN32)
andrew@webrtc.org80124742012-03-08 17:54:24 +000097#define DIRECT3D9_RENDERING // Requires DirectX 9.
98#endif
niklase@google.com470e71d2011-07-07 08:21:25 +000099
100// ----------------------------------------------------------------------------
101// VideoEngine MAC
102// ----------------------------------------------------------------------------
103
sjlee@webrtc.org414fa7f2012-09-11 17:25:46 +0000104#if defined(WEBRTC_MAC) && !defined(WEBRTC_IOS)
andrew@webrtc.org80124742012-03-08 17:54:24 +0000105// #define CARBON_RENDERING
106#define COCOA_RENDERING
niklase@google.com470e71d2011-07-07 08:21:25 +0000107#endif
108
109// ----------------------------------------------------------------------------
110// VideoEngine Mobile iPhone
111// ----------------------------------------------------------------------------
112
sjlee@webrtc.org414fa7f2012-09-11 17:25:46 +0000113#if defined(WEBRTC_IOS)
andrew@webrtc.org80124742012-03-08 17:54:24 +0000114#define EAGL_RENDERING
niklase@google.com470e71d2011-07-07 08:21:25 +0000115#endif
116
117// ----------------------------------------------------------------------------
118// Deprecated
119// ----------------------------------------------------------------------------
120
niklase@google.com470e71d2011-07-07 08:21:25 +0000121// #define WEBRTC_DTMF_DETECTION
niklase@google.com470e71d2011-07-07 08:21:25 +0000122
123#endif // WEBRTC_ENGINE_CONFIGURATIONS_H_