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 
     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