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 67 #if !defined(WEBRTC_ANDROID) && !defined(WEBRTC_IOS) 68 #define WEBRTC_VOICE_ENGINE_TYPING_DETECTION // Typing detection 69 #endif 70 71 // ---------------------------------------------------------------------------- 72 // VoiceEngine sub-APIs 73 // ---------------------------------------------------------------------------- 74 75 #define WEBRTC_VOICE_ENGINE_AUDIO_PROCESSING_API 76 #define WEBRTC_VOICE_ENGINE_CODEC_API 77 #define WEBRTC_VOICE_ENGINE_DTMF_API 78 #define WEBRTC_VOICE_ENGINE_EXTERNAL_MEDIA_API 79 #define WEBRTC_VOICE_ENGINE_FILE_API 80 #define WEBRTC_VOICE_ENGINE_HARDWARE_API 81 #define WEBRTC_VOICE_ENGINE_NETEQ_STATS_API 82 #define WEBRTC_VOICE_ENGINE_RTP_RTCP_API 83 #define WEBRTC_VOICE_ENGINE_VIDEO_SYNC_API 84 #define WEBRTC_VOICE_ENGINE_VOLUME_CONTROL_API 85 86 // ============================================================================ 87 // VideoEngine 88 // ============================================================================ 89 90 // ---------------------------------------------------------------------------- 91 // Settings for special VideoEngine configurations 92 // ---------------------------------------------------------------------------- 93 // ---------------------------------------------------------------------------- 94 // VideoEngine sub-API:s 95 // ---------------------------------------------------------------------------- 96 97 #define WEBRTC_VIDEO_ENGINE_CAPTURE_API 98 #define WEBRTC_VIDEO_ENGINE_CODEC_API 99 #define WEBRTC_VIDEO_ENGINE_IMAGE_PROCESS_API 100 #define WEBRTC_VIDEO_ENGINE_RENDER_API 101 #define WEBRTC_VIDEO_ENGINE_RTP_RTCP_API 102 #define WEBRTC_VIDEO_ENGINE_EXTERNAL_CODEC_API 103 104 // Now handled by gyp: 105 // WEBRTC_VIDEO_ENGINE_FILE_API 106 107 // ============================================================================ 108 // Platform specific configurations 109 // ============================================================================ 110 111 // ---------------------------------------------------------------------------- 112 // VideoEngine Windows 113 // ---------------------------------------------------------------------------- 114 115 #if defined(_WIN32) 116 #define DIRECT3D9_RENDERING // Requires DirectX 9. 117 #endif 118 119 // ---------------------------------------------------------------------------- 120 // VideoEngine MAC 121 // ---------------------------------------------------------------------------- 122 123 #if defined(WEBRTC_MAC) && !defined(WEBRTC_IOS) 124 // #define CARBON_RENDERING 125 #define COCOA_RENDERING 126 #endif 127 128 // ---------------------------------------------------------------------------- 129 // VideoEngine Mobile iPhone 130 // ---------------------------------------------------------------------------- 131 132 #if defined(WEBRTC_IOS) 133 #define EAGL_RENDERING 134 #endif 135 136 // ---------------------------------------------------------------------------- 137 // Deprecated 138 // ---------------------------------------------------------------------------- 139 140 // #define WEBRTC_CODEC_G729 141 // #define WEBRTC_DTMF_DETECTION 142 143 #endif // WEBRTC_ENGINE_CONFIGURATIONS_H_ 144