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