Home | History | Annotate | Download | only in webrtc
      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