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 #define VIDEOCODEC_H264 55 56 // ============================================================================ 57 // VoiceEngine 58 // ============================================================================ 59 60 // ---------------------------------------------------------------------------- 61 // Settings for VoiceEngine 62 // ---------------------------------------------------------------------------- 63 64 #define WEBRTC_VOICE_ENGINE_AGC // Near-end AGC 65 #define WEBRTC_VOICE_ENGINE_ECHO // Near-end AEC 66 #define WEBRTC_VOICE_ENGINE_NR // Near-end NS 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 // ============================================================================ 88 // VideoEngine 89 // ============================================================================ 90 91 // ---------------------------------------------------------------------------- 92 // Settings for special VideoEngine configurations 93 // ---------------------------------------------------------------------------- 94 // ---------------------------------------------------------------------------- 95 // VideoEngine sub-API:s 96 // ---------------------------------------------------------------------------- 97 98 #define WEBRTC_VIDEO_ENGINE_CAPTURE_API 99 #define WEBRTC_VIDEO_ENGINE_CODEC_API 100 #define WEBRTC_VIDEO_ENGINE_IMAGE_PROCESS_API 101 #define WEBRTC_VIDEO_ENGINE_RENDER_API 102 #define WEBRTC_VIDEO_ENGINE_RTP_RTCP_API 103 #define WEBRTC_VIDEO_ENGINE_EXTERNAL_CODEC_API 104 105 // Now handled by gyp: 106 // WEBRTC_VIDEO_ENGINE_FILE_API 107 108 // ============================================================================ 109 // Platform specific configurations 110 // ============================================================================ 111 112 // ---------------------------------------------------------------------------- 113 // VideoEngine Windows 114 // ---------------------------------------------------------------------------- 115 116 #if defined(_WIN32) 117 #define DIRECT3D9_RENDERING // Requires DirectX 9. 118 #endif 119 120 // ---------------------------------------------------------------------------- 121 // VideoEngine MAC 122 // ---------------------------------------------------------------------------- 123 124 #if defined(WEBRTC_MAC) && !defined(WEBRTC_IOS) 125 // #define CARBON_RENDERING 126 #define COCOA_RENDERING 127 #endif 128 129 // ---------------------------------------------------------------------------- 130 // VideoEngine Mobile iPhone 131 // ---------------------------------------------------------------------------- 132 133 #if defined(WEBRTC_IOS) 134 #define EAGL_RENDERING 135 #endif 136 137 // ---------------------------------------------------------------------------- 138 // Deprecated 139 // ---------------------------------------------------------------------------- 140 141 // #define WEBRTC_CODEC_G729 142 // #define WEBRTC_DTMF_DETECTION 143 144 #endif // WEBRTC_ENGINE_CONFIGURATIONS_H_ 145