engine_configurations.h revision 1f9baab753be55a7c6d31c84a5470fe646936edd
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// iLBC and Redundancy coding are excluded from Chromium and Mozilla
35// builds to reduce binary size.
36#if !defined(WEBRTC_CHROMIUM_BUILD) && !defined(WEBRTC_MOZILLA_BUILD)
37#define WEBRTC_CODEC_ILBC
38#define WEBRTC_CODEC_RED
39#endif  // !WEBRTC_CHROMIUM_BUILD && !WEBRTC_MOZILLA_BUILD
40
41// ----------------------------------------------------------------------------
42//  [Video] Codec settings
43// ----------------------------------------------------------------------------
44
45#define VIDEOCODEC_I420
46#define VIDEOCODEC_VP8
47#define VIDEOCODEC_VP9
48#define VIDEOCODEC_H264
49
50// ============================================================================
51//                                 VoiceEngine
52// ============================================================================
53
54// ----------------------------------------------------------------------------
55//  Settings for VoiceEngine
56// ----------------------------------------------------------------------------
57
58#define WEBRTC_VOICE_ENGINE_AGC                 // Near-end AGC
59#define WEBRTC_VOICE_ENGINE_ECHO                // Near-end AEC
60#define WEBRTC_VOICE_ENGINE_NR                  // Near-end NS
61
62#if !defined(WEBRTC_ANDROID) && !defined(WEBRTC_IOS)
63#define WEBRTC_VOICE_ENGINE_TYPING_DETECTION    // Typing detection
64#endif
65
66// ----------------------------------------------------------------------------
67//  VoiceEngine sub-APIs
68// ----------------------------------------------------------------------------
69
70#define WEBRTC_VOICE_ENGINE_AUDIO_PROCESSING_API
71#define WEBRTC_VOICE_ENGINE_CODEC_API
72#define WEBRTC_VOICE_ENGINE_DTMF_API
73#define WEBRTC_VOICE_ENGINE_EXTERNAL_MEDIA_API
74#define WEBRTC_VOICE_ENGINE_FILE_API
75#define WEBRTC_VOICE_ENGINE_HARDWARE_API
76#define WEBRTC_VOICE_ENGINE_NETEQ_STATS_API
77#define WEBRTC_VOICE_ENGINE_RTP_RTCP_API
78#define WEBRTC_VOICE_ENGINE_VIDEO_SYNC_API
79#define WEBRTC_VOICE_ENGINE_VOLUME_CONTROL_API
80
81// ============================================================================
82//                       Platform specific configurations
83// ============================================================================
84
85// ----------------------------------------------------------------------------
86//  VideoEngine Windows
87// ----------------------------------------------------------------------------
88
89#if defined(_WIN32)
90#define DIRECT3D9_RENDERING  // Requires DirectX 9.
91#endif
92
93// ----------------------------------------------------------------------------
94//  VideoEngine MAC
95// ----------------------------------------------------------------------------
96
97#if defined(WEBRTC_MAC) && !defined(WEBRTC_IOS)
98// #define CARBON_RENDERING
99#define COCOA_RENDERING
100#endif
101
102// ----------------------------------------------------------------------------
103//  VideoEngine Mobile iPhone
104// ----------------------------------------------------------------------------
105
106#if defined(WEBRTC_IOS)
107#define EAGL_RENDERING
108#endif
109
110// ----------------------------------------------------------------------------
111//  Deprecated
112// ----------------------------------------------------------------------------
113
114// #define WEBRTC_DTMF_DETECTION
115
116#endif  // WEBRTC_ENGINE_CONFIGURATIONS_H_
117