Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / third_party / webrtc / engine_configurations.h
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 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
37 // 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.
42 #if !defined(WEBRTC_CHROMIUM_BUILD) && !defined(WEBRTC_MOZILLA_BUILD)
43 #define WEBRTC_CODEC_ILBC
44 #define WEBRTC_CODEC_G722
45 #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
68 #if !defined(WEBRTC_ANDROID) && !defined(WEBRTC_IOS)
69 #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
83 #define WEBRTC_VOICE_ENGINE_RTP_RTCP_API
84 #define WEBRTC_VOICE_ENGINE_VIDEO_SYNC_API
85 #define WEBRTC_VOICE_ENGINE_VOLUME_CONTROL_API
86
87 #ifndef WEBRTC_CHROMIUM_BUILD
88 #define WEBRTC_VOICE_ENGINE_CALL_REPORT_API
89 #define WEBRTC_VOICE_ENGINE_ENCRYPTION_API
90 #endif
91
92 // ============================================================================
93 //                                 VideoEngine
94 // ============================================================================
95
96 // ----------------------------------------------------------------------------
97 //  Settings for special VideoEngine configurations
98 // ----------------------------------------------------------------------------
99 // ----------------------------------------------------------------------------
100 //  VideoEngine sub-API:s
101 // ----------------------------------------------------------------------------
102
103 #define WEBRTC_VIDEO_ENGINE_CAPTURE_API
104 #define WEBRTC_VIDEO_ENGINE_CODEC_API
105 #define WEBRTC_VIDEO_ENGINE_IMAGE_PROCESS_API
106 #define WEBRTC_VIDEO_ENGINE_RENDER_API
107 #define WEBRTC_VIDEO_ENGINE_RTP_RTCP_API
108 #define WEBRTC_VIDEO_ENGINE_EXTERNAL_CODEC_API
109
110 // Now handled by gyp:
111 // WEBRTC_VIDEO_ENGINE_FILE_API
112
113 // ============================================================================
114 //                       Platform specific configurations
115 // ============================================================================
116
117 // ----------------------------------------------------------------------------
118 //  VideoEngine Windows
119 // ----------------------------------------------------------------------------
120
121 #if defined(_WIN32)
122 #define DIRECT3D9_RENDERING  // Requires DirectX 9.
123 #endif
124
125 // ----------------------------------------------------------------------------
126 //  VideoEngine MAC
127 // ----------------------------------------------------------------------------
128
129 #if defined(WEBRTC_MAC) && !defined(WEBRTC_IOS)
130 // #define CARBON_RENDERING
131 #define COCOA_RENDERING
132 #endif
133
134 // ----------------------------------------------------------------------------
135 //  VideoEngine Mobile iPhone
136 // ----------------------------------------------------------------------------
137
138 #if defined(WEBRTC_IOS)
139 #define EAGL_RENDERING
140 #endif
141
142 // ----------------------------------------------------------------------------
143 //  Deprecated
144 // ----------------------------------------------------------------------------
145
146 // #define WEBRTC_CODEC_G729
147 // #define WEBRTC_DTMF_DETECTION
148
149 #endif  // WEBRTC_ENGINE_CONFIGURATIONS_H_