blob: 45536bfd8d6e38e76173beb167dd6b411b02c1f1 [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
andrew@webrtc.orgf4e43242013-06-19 17:03:47 +000014#include "webrtc/typedefs.h"
15
andrew@webrtc.orga7b57da2012-10-22 18:19:23 +000016// ============================================================================
17// Voice and Video
18// ============================================================================
19
andrew@webrtc.orga7b57da2012-10-22 18:19:23 +000020// ----------------------------------------------------------------------------
21// [Voice] Codec settings
22// ----------------------------------------------------------------------------
23
24// iSAC is not included in the Mozilla build, but in all other builds.
25#ifndef WEBRTC_MOZILLA_BUILD
26#ifdef WEBRTC_ARCH_ARM
27#define WEBRTC_CODEC_ISACFX // Fix-point iSAC implementation.
28#else
29#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).
35#define WEBRTC_CODEC_AVT
36
andrew@webrtc.orga5b7b8c2013-09-12 01:30:30 +000037// PCM16 is useful for testing and incurs only a small binary size cost.
38#define WEBRTC_CODEC_PCM16
39
40// iLBC, G.722, and Redundancy coding are excluded from Chromium and Mozilla
41// builds to reduce binary size.
andrew@webrtc.orga7b57da2012-10-22 18:19:23 +000042#if !defined(WEBRTC_CHROMIUM_BUILD) && !defined(WEBRTC_MOZILLA_BUILD)
43#define WEBRTC_CODEC_ILBC
44#define WEBRTC_CODEC_G722
andrew@webrtc.orga7b57da2012-10-22 18:19:23 +000045#define WEBRTC_CODEC_RED
46#endif // !WEBRTC_CHROMIUM_BUILD && !WEBRTC_MOZILLA_BUILD
47
48// ----------------------------------------------------------------------------
49// [Video] Codec settings
50// ----------------------------------------------------------------------------
51
52#define VIDEOCODEC_I420
53#define VIDEOCODEC_VP8
54
55// ============================================================================
56// VoiceEngine
57// ============================================================================
58
59// ----------------------------------------------------------------------------
60// Settings for VoiceEngine
61// ----------------------------------------------------------------------------
62
63#define WEBRTC_VOICE_ENGINE_AGC // Near-end AGC
64#define WEBRTC_VOICE_ENGINE_ECHO // Near-end AEC
65#define WEBRTC_VOICE_ENGINE_NR // Near-end NS
66#define WEBRTC_VOE_EXTERNAL_REC_AND_PLAYOUT
67
jiayl@webrtc.orge30fde12013-09-17 18:09:20 +000068#if !defined(WEBRTC_ANDROID) && !defined(WEBRTC_IOS)
andrew@webrtc.orga7b57da2012-10-22 18:19:23 +000069#define WEBRTC_VOICE_ENGINE_TYPING_DETECTION // Typing detection
70#endif
71
72// ----------------------------------------------------------------------------
73// VoiceEngine sub-APIs
74// ----------------------------------------------------------------------------
75
76#define WEBRTC_VOICE_ENGINE_AUDIO_PROCESSING_API
77#define WEBRTC_VOICE_ENGINE_CODEC_API
78#define WEBRTC_VOICE_ENGINE_DTMF_API
79#define WEBRTC_VOICE_ENGINE_EXTERNAL_MEDIA_API
80#define WEBRTC_VOICE_ENGINE_FILE_API
81#define WEBRTC_VOICE_ENGINE_HARDWARE_API
82#define WEBRTC_VOICE_ENGINE_NETEQ_STATS_API
andrew@webrtc.orga7b57da2012-10-22 18:19:23 +000083#define WEBRTC_VOICE_ENGINE_RTP_RTCP_API
84#define WEBRTC_VOICE_ENGINE_VIDEO_SYNC_API
85#define WEBRTC_VOICE_ENGINE_VOLUME_CONTROL_API
86
andrew@webrtc.orga7b57da2012-10-22 18:19:23 +000087// ============================================================================
88// VideoEngine
89// ============================================================================
90
91// ----------------------------------------------------------------------------
92// Settings for special VideoEngine configurations
93// ----------------------------------------------------------------------------
94// ----------------------------------------------------------------------------
95// VideoEngine sub-API:s
96// ----------------------------------------------------------------------------
97
98#define WEBRTC_VIDEO_ENGINE_CAPTURE_API
99#define WEBRTC_VIDEO_ENGINE_CODEC_API
andrew@webrtc.orga7b57da2012-10-22 18:19:23 +0000100#define WEBRTC_VIDEO_ENGINE_IMAGE_PROCESS_API
andrew@webrtc.orga7b57da2012-10-22 18:19:23 +0000101#define WEBRTC_VIDEO_ENGINE_RENDER_API
102#define WEBRTC_VIDEO_ENGINE_RTP_RTCP_API
dwkang@webrtc.org0cf911a2012-12-04 06:38:19 +0000103#define WEBRTC_VIDEO_ENGINE_EXTERNAL_CODEC_API
andrew@webrtc.orga7b57da2012-10-22 18:19:23 +0000104
105// Now handled by gyp:
106// WEBRTC_VIDEO_ENGINE_FILE_API
107
108// ============================================================================
109// Platform specific configurations
110// ============================================================================
111
112// ----------------------------------------------------------------------------
113// VideoEngine Windows
114// ----------------------------------------------------------------------------
115
116#if defined(_WIN32)
117#define DIRECT3D9_RENDERING // Requires DirectX 9.
118#endif
119
120// ----------------------------------------------------------------------------
121// VideoEngine MAC
122// ----------------------------------------------------------------------------
123
124#if defined(WEBRTC_MAC) && !defined(WEBRTC_IOS)
125// #define CARBON_RENDERING
126#define COCOA_RENDERING
127#endif
128
129// ----------------------------------------------------------------------------
130// VideoEngine Mobile iPhone
131// ----------------------------------------------------------------------------
132
133#if defined(WEBRTC_IOS)
134#define EAGL_RENDERING
135#endif
136
137// ----------------------------------------------------------------------------
138// Deprecated
139// ----------------------------------------------------------------------------
140
141// #define WEBRTC_CODEC_G729
142// #define WEBRTC_DTMF_DETECTION
andrew@webrtc.orga7b57da2012-10-22 18:19:23 +0000143
144#endif // WEBRTC_ENGINE_CONFIGURATIONS_H_