2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
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.
11 #ifndef WEBRTC_ENGINE_CONFIGURATIONS_H_
12 #define WEBRTC_ENGINE_CONFIGURATIONS_H_
14 #include "webrtc/typedefs.h"
16 // ============================================================================
18 // ============================================================================
20 // ----------------------------------------------------------------------------
21 // [Voice] Codec settings
22 // ----------------------------------------------------------------------------
24 // iSAC and G722 are 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.
29 #define WEBRTC_CODEC_ISAC // Floating-point iSAC implementation (default).
30 #endif // WEBRTC_ARCH_ARM
31 #define WEBRTC_CODEC_G722
32 #endif // !WEBRTC_MOZILLA_BUILD
34 // AVT is included in all builds, along with G.711, NetEQ and CNG
35 // (which are mandatory and don't have any defines).
36 #define WEBRTC_CODEC_AVT
38 // PCM16 is useful for testing and incurs only a small binary size cost.
39 #define WEBRTC_CODEC_PCM16
41 // iLBC and Redundancy coding are excluded from Chromium and Mozilla
42 // builds to reduce binary size.
43 #if !defined(WEBRTC_CHROMIUM_BUILD) && !defined(WEBRTC_MOZILLA_BUILD)
44 #define WEBRTC_CODEC_ILBC
45 #define WEBRTC_CODEC_RED
46 #endif // !WEBRTC_CHROMIUM_BUILD && !WEBRTC_MOZILLA_BUILD
48 // ----------------------------------------------------------------------------
49 // [Video] Codec settings
50 // ----------------------------------------------------------------------------
52 #define VIDEOCODEC_I420
53 #define VIDEOCODEC_VP8
54 #define VIDEOCODEC_VP9
55 #define VIDEOCODEC_H264
57 // ============================================================================
59 // ============================================================================
61 // ----------------------------------------------------------------------------
62 // Settings for VoiceEngine
63 // ----------------------------------------------------------------------------
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
69 #if !defined(WEBRTC_ANDROID) && !defined(WEBRTC_IOS)
70 #define WEBRTC_VOICE_ENGINE_TYPING_DETECTION // Typing detection
73 // ----------------------------------------------------------------------------
74 // VoiceEngine sub-APIs
75 // ----------------------------------------------------------------------------
77 #define WEBRTC_VOICE_ENGINE_AUDIO_PROCESSING_API
78 #define WEBRTC_VOICE_ENGINE_CODEC_API
79 #define WEBRTC_VOICE_ENGINE_DTMF_API
80 #define WEBRTC_VOICE_ENGINE_EXTERNAL_MEDIA_API
81 #define WEBRTC_VOICE_ENGINE_FILE_API
82 #define WEBRTC_VOICE_ENGINE_HARDWARE_API
83 #define WEBRTC_VOICE_ENGINE_NETEQ_STATS_API
84 #define WEBRTC_VOICE_ENGINE_RTP_RTCP_API
85 #define WEBRTC_VOICE_ENGINE_VIDEO_SYNC_API
86 #define WEBRTC_VOICE_ENGINE_VOLUME_CONTROL_API
88 // ============================================================================
90 // ============================================================================
92 // ----------------------------------------------------------------------------
93 // Settings for special VideoEngine configurations
94 // ----------------------------------------------------------------------------
95 // ----------------------------------------------------------------------------
96 // VideoEngine sub-API:s
97 // ----------------------------------------------------------------------------
99 #define WEBRTC_VIDEO_ENGINE_CAPTURE_API
100 #define WEBRTC_VIDEO_ENGINE_CODEC_API
101 #define WEBRTC_VIDEO_ENGINE_IMAGE_PROCESS_API
102 #define WEBRTC_VIDEO_ENGINE_RENDER_API
103 #define WEBRTC_VIDEO_ENGINE_RTP_RTCP_API
104 #define WEBRTC_VIDEO_ENGINE_EXTERNAL_CODEC_API
106 // Now handled by gyp:
107 // WEBRTC_VIDEO_ENGINE_FILE_API
109 // ============================================================================
110 // Platform specific configurations
111 // ============================================================================
113 // ----------------------------------------------------------------------------
114 // VideoEngine Windows
115 // ----------------------------------------------------------------------------
118 #define DIRECT3D9_RENDERING // Requires DirectX 9.
121 // ----------------------------------------------------------------------------
123 // ----------------------------------------------------------------------------
125 #if defined(WEBRTC_MAC) && !defined(WEBRTC_IOS)
126 // #define CARBON_RENDERING
127 #define COCOA_RENDERING
130 // ----------------------------------------------------------------------------
131 // VideoEngine Mobile iPhone
132 // ----------------------------------------------------------------------------
134 #if defined(WEBRTC_IOS)
135 #define EAGL_RENDERING
138 // ----------------------------------------------------------------------------
140 // ----------------------------------------------------------------------------
142 // #define WEBRTC_CODEC_G729
143 // #define WEBRTC_DTMF_DETECTION
145 #endif // WEBRTC_ENGINE_CONFIGURATIONS_H_