1 /*
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 #include "webrtc/typedefs.h"
15 
16 // ============================================================================
17 //                              Voice and Video
18 // ============================================================================
19 
20 // ----------------------------------------------------------------------------
21 //  [Voice] Codec settings
22 // ----------------------------------------------------------------------------
23 
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.
28 #else
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
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).
36 #define WEBRTC_CODEC_AVT
37 
38 // PCM16 is useful for testing and incurs only a small binary size cost.
39 #ifndef WEBRTC_CODEC_PCM16
40 #define WEBRTC_CODEC_PCM16
41 #endif
42 
43 // iLBC and Redundancy coding are excluded from Chromium and Mozilla
44 // builds to reduce binary size.
45 #if !defined(WEBRTC_CHROMIUM_BUILD) && !defined(WEBRTC_MOZILLA_BUILD)
46 #define WEBRTC_CODEC_ILBC
47 #define WEBRTC_CODEC_RED
48 #endif  // !WEBRTC_CHROMIUM_BUILD && !WEBRTC_MOZILLA_BUILD
49 
50 // ----------------------------------------------------------------------------
51 //  [Video] Codec settings
52 // ----------------------------------------------------------------------------
53 
54 #define VIDEOCODEC_I420
55 #define VIDEOCODEC_VP8
56 #define VIDEOCODEC_VP9
57 #define VIDEOCODEC_H264
58 
59 // ============================================================================
60 //                                 VoiceEngine
61 // ============================================================================
62 
63 // ----------------------------------------------------------------------------
64 //  Settings for VoiceEngine
65 // ----------------------------------------------------------------------------
66 
67 #define WEBRTC_VOICE_ENGINE_AGC                 // Near-end AGC
68 #define WEBRTC_VOICE_ENGINE_ECHO                // Near-end AEC
69 #define WEBRTC_VOICE_ENGINE_NR                  // Near-end NS
70 #define WEBRTC_VOE_EXTERNAL_REC_AND_PLAYOUT
71 
72 #if !defined(WEBRTC_ANDROID) && !defined(WEBRTC_IOS)
73 #define WEBRTC_VOICE_ENGINE_TYPING_DETECTION    // Typing detection
74 #endif
75 
76 // ----------------------------------------------------------------------------
77 //  VoiceEngine sub-APIs
78 // ----------------------------------------------------------------------------
79 
80 #define WEBRTC_VOICE_ENGINE_AUDIO_PROCESSING_API
81 #define WEBRTC_VOICE_ENGINE_CODEC_API
82 #define WEBRTC_VOICE_ENGINE_DTMF_API
83 #define WEBRTC_VOICE_ENGINE_EXTERNAL_MEDIA_API
84 #define WEBRTC_VOICE_ENGINE_FILE_API
85 #define WEBRTC_VOICE_ENGINE_HARDWARE_API
86 #define WEBRTC_VOICE_ENGINE_NETEQ_STATS_API
87 #define WEBRTC_VOICE_ENGINE_RTP_RTCP_API
88 #define WEBRTC_VOICE_ENGINE_VIDEO_SYNC_API
89 #define WEBRTC_VOICE_ENGINE_VOLUME_CONTROL_API
90 
91 // ============================================================================
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_IMAGE_PROCESS_API
105 #define WEBRTC_VIDEO_ENGINE_RENDER_API
106 #define WEBRTC_VIDEO_ENGINE_RTP_RTCP_API
107 #define WEBRTC_VIDEO_ENGINE_EXTERNAL_CODEC_API
108 
109 // Now handled by gyp:
110 // WEBRTC_VIDEO_ENGINE_FILE_API
111 
112 // ============================================================================
113 //                       Platform specific configurations
114 // ============================================================================
115 
116 // ----------------------------------------------------------------------------
117 //  VideoEngine Windows
118 // ----------------------------------------------------------------------------
119 
120 #if defined(_WIN32)
121 #define DIRECT3D9_RENDERING  // Requires DirectX 9.
122 #endif
123 
124 // ----------------------------------------------------------------------------
125 //  VideoEngine MAC
126 // ----------------------------------------------------------------------------
127 
128 #if defined(WEBRTC_MAC) && !defined(WEBRTC_IOS)
129 // #define CARBON_RENDERING
130 #define COCOA_RENDERING
131 #endif
132 
133 // ----------------------------------------------------------------------------
134 //  VideoEngine Mobile iPhone
135 // ----------------------------------------------------------------------------
136 
137 #if defined(WEBRTC_IOS)
138 #define EAGL_RENDERING
139 #endif
140 
141 // ----------------------------------------------------------------------------
142 //  Deprecated
143 // ----------------------------------------------------------------------------
144 
145 // #define WEBRTC_DTMF_DETECTION
146 
147 #endif  // WEBRTC_ENGINE_CONFIGURATIONS_H_
148