git-svn-id: http://webrtc.googlecode.com/svn/trunk@167 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
parent
5adc73aad3
commit
5740135c6d
@ -1,13 +0,0 @@
|
|||||||
Name: WebRTC
|
|
||||||
URL: http://www.webrtc.org
|
|
||||||
Version: 90
|
|
||||||
License: BSD
|
|
||||||
License File: LICENSE
|
|
||||||
|
|
||||||
Description:
|
|
||||||
WebRTC provides real time voice and video processing
|
|
||||||
functionality to enable the implementation of
|
|
||||||
PeerConnection/MediaStream.
|
|
||||||
|
|
||||||
Third party code used in this project is described
|
|
||||||
in the file LICENSE_THIRD_PARTY.
|
|
@ -1,21 +0,0 @@
|
|||||||
# Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
|
|
||||||
#
|
|
||||||
# Use of this source code is governed by a BSD-style license
|
|
||||||
# that can be found in the LICENSE file in the root of the source
|
|
||||||
# tree. An additional intellectual property rights grant can be found
|
|
||||||
# in the file PATENTS. All contributing project authors may
|
|
||||||
# be found in the AUTHORS file in the root of the source tree.
|
|
||||||
|
|
||||||
# Placeholder until all gyp files point to build/common.gypi instead.
|
|
||||||
|
|
||||||
{
|
|
||||||
'includes': [
|
|
||||||
'build/common.gypi',
|
|
||||||
],
|
|
||||||
}
|
|
||||||
|
|
||||||
# Local Variables:
|
|
||||||
# tab-width:2
|
|
||||||
# indent-tabs-mode:nil
|
|
||||||
# End:
|
|
||||||
# vim: set expandtab tabstop=2 shiftwidth=2:
|
|
595
common_types.h
595
common_types.h
@ -1,595 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* Use of this source code is governed by a BSD-style license
|
|
||||||
* that can be found in the LICENSE file in the root of the source
|
|
||||||
* tree. An additional intellectual property rights grant can be found
|
|
||||||
* in the file PATENTS. All contributing project authors may
|
|
||||||
* be found in the AUTHORS file in the root of the source tree.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef WEBRTC_COMMON_TYPES_H
|
|
||||||
#define WEBRTC_COMMON_TYPES_H
|
|
||||||
|
|
||||||
#include "typedefs.h"
|
|
||||||
|
|
||||||
#ifdef WEBRTC_EXPORT
|
|
||||||
#define WEBRTC_DLLEXPORT _declspec(dllexport)
|
|
||||||
#elif WEBRTC_DLL
|
|
||||||
#define WEBRTC_DLLEXPORT _declspec(dllimport)
|
|
||||||
#else
|
|
||||||
#define WEBRTC_DLLEXPORT
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef NULL
|
|
||||||
#define NULL 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
namespace webrtc {
|
|
||||||
|
|
||||||
class InStream
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
virtual int Read(void *buf,int len) = 0;
|
|
||||||
virtual int Rewind() {return -1;}
|
|
||||||
virtual ~InStream() {}
|
|
||||||
protected:
|
|
||||||
InStream() {}
|
|
||||||
};
|
|
||||||
|
|
||||||
class OutStream
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
virtual bool Write(const void *buf,int len) = 0;
|
|
||||||
virtual int Rewind() {return -1;}
|
|
||||||
virtual ~OutStream() {}
|
|
||||||
protected:
|
|
||||||
OutStream() {}
|
|
||||||
};
|
|
||||||
|
|
||||||
enum TraceModule
|
|
||||||
{
|
|
||||||
// not a module, triggered from the engine code
|
|
||||||
kTraceVoice = 0x0001,
|
|
||||||
// not a module, triggered from the engine code
|
|
||||||
kTraceVideo = 0x0002,
|
|
||||||
// not a module, triggered from the utility code
|
|
||||||
kTraceUtility = 0x0003,
|
|
||||||
kTraceRtpRtcp = 0x0004,
|
|
||||||
kTraceTransport = 0x0005,
|
|
||||||
kTraceSrtp = 0x0006,
|
|
||||||
kTraceAudioCoding = 0x0007,
|
|
||||||
kTraceAudioMixerServer = 0x0008,
|
|
||||||
kTraceAudioMixerClient = 0x0009,
|
|
||||||
kTraceFile = 0x000a,
|
|
||||||
kTraceAudioProcessing = 0x000b,
|
|
||||||
kTraceVideoCoding = 0x0010,
|
|
||||||
kTraceVideoMixer = 0x0011,
|
|
||||||
kTraceAudioDevice = 0x0012,
|
|
||||||
kTraceVideoRenderer = 0x0014,
|
|
||||||
kTraceVideoCapture = 0x0015,
|
|
||||||
kTraceVideoPreocessing = 0x0016
|
|
||||||
};
|
|
||||||
|
|
||||||
enum TraceLevel
|
|
||||||
{
|
|
||||||
kTraceNone = 0x0000, // no trace
|
|
||||||
kTraceStateInfo = 0x0001,
|
|
||||||
kTraceWarning = 0x0002,
|
|
||||||
kTraceError = 0x0004,
|
|
||||||
kTraceCritical = 0x0008,
|
|
||||||
kTraceApiCall = 0x0010,
|
|
||||||
kTraceDefault = 0x00ff,
|
|
||||||
|
|
||||||
kTraceModuleCall = 0x0020,
|
|
||||||
kTraceMemory = 0x0100, // memory info
|
|
||||||
kTraceTimer = 0x0200, // timing info
|
|
||||||
kTraceStream = 0x0400, // "continuous" stream of data
|
|
||||||
|
|
||||||
// used for debug purposes
|
|
||||||
kTraceDebug = 0x0800, // debug
|
|
||||||
kTraceInfo = 0x1000, // debug info
|
|
||||||
|
|
||||||
kTraceAll = 0xffff
|
|
||||||
};
|
|
||||||
|
|
||||||
// External Trace API
|
|
||||||
class TraceCallback
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
virtual void Print(const TraceLevel level,
|
|
||||||
const char *traceString,
|
|
||||||
const int length) = 0;
|
|
||||||
protected:
|
|
||||||
virtual ~TraceCallback() {}
|
|
||||||
TraceCallback() {}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
enum FileFormats
|
|
||||||
{
|
|
||||||
kFileFormatWavFile = 1,
|
|
||||||
kFileFormatCompressedFile = 2,
|
|
||||||
kFileFormatAviFile = 3,
|
|
||||||
kFileFormatPreencodedFile = 4,
|
|
||||||
kFileFormatPcm16kHzFile = 7,
|
|
||||||
kFileFormatPcm8kHzFile = 8,
|
|
||||||
kFileFormatPcm32kHzFile = 9
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
enum ProcessingTypes
|
|
||||||
{
|
|
||||||
kPlaybackPerChannel = 0,
|
|
||||||
kPlaybackAllChannelsMixed,
|
|
||||||
kRecordingPerChannel,
|
|
||||||
kRecordingAllChannelsMixed
|
|
||||||
};
|
|
||||||
|
|
||||||
// Encryption enums
|
|
||||||
enum CipherTypes
|
|
||||||
{
|
|
||||||
kCipherNull = 0,
|
|
||||||
kCipherAes128CounterMode = 1
|
|
||||||
};
|
|
||||||
|
|
||||||
enum AuthenticationTypes
|
|
||||||
{
|
|
||||||
kAuthNull = 0,
|
|
||||||
kAuthHmacSha1 = 3
|
|
||||||
};
|
|
||||||
|
|
||||||
enum SecurityLevels
|
|
||||||
{
|
|
||||||
kNoProtection = 0,
|
|
||||||
kEncryption = 1,
|
|
||||||
kAuthentication = 2,
|
|
||||||
kEncryptionAndAuthentication = 3
|
|
||||||
};
|
|
||||||
|
|
||||||
class Encryption
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
virtual void encrypt(
|
|
||||||
int channel_no,
|
|
||||||
unsigned char* in_data,
|
|
||||||
unsigned char* out_data,
|
|
||||||
int bytes_in,
|
|
||||||
int* bytes_out) = 0;
|
|
||||||
|
|
||||||
virtual void decrypt(
|
|
||||||
int channel_no,
|
|
||||||
unsigned char* in_data,
|
|
||||||
unsigned char* out_data,
|
|
||||||
int bytes_in,
|
|
||||||
int* bytes_out) = 0;
|
|
||||||
|
|
||||||
virtual void encrypt_rtcp(
|
|
||||||
int channel_no,
|
|
||||||
unsigned char* in_data,
|
|
||||||
unsigned char* out_data,
|
|
||||||
int bytes_in,
|
|
||||||
int* bytes_out) = 0;
|
|
||||||
|
|
||||||
virtual void decrypt_rtcp(
|
|
||||||
int channel_no,
|
|
||||||
unsigned char* in_data,
|
|
||||||
unsigned char* out_data,
|
|
||||||
int bytes_in,
|
|
||||||
int* bytes_out) = 0;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
virtual ~Encryption() {}
|
|
||||||
Encryption() {}
|
|
||||||
};
|
|
||||||
|
|
||||||
// External transport callback interface
|
|
||||||
class Transport
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
virtual int SendPacket(int channel, const void *data, int len) = 0;
|
|
||||||
virtual int SendRTCPPacket(int channel, const void *data, int len) = 0;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
virtual ~Transport() {}
|
|
||||||
Transport() {}
|
|
||||||
};
|
|
||||||
|
|
||||||
// ==================================================================
|
|
||||||
// Voice specific types
|
|
||||||
// ==================================================================
|
|
||||||
|
|
||||||
// Each codec supported can be described by this structure.
|
|
||||||
struct CodecInst
|
|
||||||
{
|
|
||||||
int pltype;
|
|
||||||
char plname[32];
|
|
||||||
int plfreq;
|
|
||||||
int pacsize;
|
|
||||||
int channels;
|
|
||||||
int rate;
|
|
||||||
};
|
|
||||||
|
|
||||||
enum FrameType
|
|
||||||
{
|
|
||||||
kFrameEmpty = 0,
|
|
||||||
kAudioFrameSpeech = 1,
|
|
||||||
kAudioFrameCN = 2,
|
|
||||||
kVideoFrameKey = 3, // independent frame
|
|
||||||
kVideoFrameDelta = 4, // depends on the previus frame
|
|
||||||
kVideoFrameGolden = 5, // depends on a old known previus frame
|
|
||||||
kVideoFrameAltRef = 6
|
|
||||||
};
|
|
||||||
|
|
||||||
// RTP
|
|
||||||
enum {kRtpCsrcSize = 15}; // RFC 3550 page 13
|
|
||||||
|
|
||||||
enum RTPDirections
|
|
||||||
{
|
|
||||||
kRtpIncoming = 0,
|
|
||||||
kRtpOutgoing
|
|
||||||
};
|
|
||||||
|
|
||||||
enum PayloadFrequencies
|
|
||||||
{
|
|
||||||
kFreq8000Hz = 8000,
|
|
||||||
kFreq16000Hz = 16000,
|
|
||||||
kFreq32000Hz = 32000
|
|
||||||
};
|
|
||||||
|
|
||||||
enum VadModes // degree of bandwidth reduction
|
|
||||||
{
|
|
||||||
kVadConventional = 0, // lowest reduction
|
|
||||||
kVadAggressiveLow,
|
|
||||||
kVadAggressiveMid,
|
|
||||||
kVadAggressiveHigh // highest reduction
|
|
||||||
};
|
|
||||||
|
|
||||||
struct NetworkStatistics // NETEQ statistics
|
|
||||||
{
|
|
||||||
// current jitter buffer size in ms
|
|
||||||
WebRtc_UWord16 currentBufferSize;
|
|
||||||
// preferred (optimal) buffer size in ms
|
|
||||||
WebRtc_UWord16 preferredBufferSize;
|
|
||||||
// loss rate (network + late) in percent (in Q14)
|
|
||||||
WebRtc_UWord16 currentPacketLossRate;
|
|
||||||
// late loss rate in percent (in Q14)
|
|
||||||
WebRtc_UWord16 currentDiscardRate;
|
|
||||||
// fraction (of original stream) of synthesized speech inserted through
|
|
||||||
// expansion (in Q14)
|
|
||||||
WebRtc_UWord16 currentExpandRate;
|
|
||||||
// fraction of synthesized speech inserted through pre-emptive expansion
|
|
||||||
// (in Q14)
|
|
||||||
WebRtc_UWord16 currentPreemptiveRate;
|
|
||||||
// fraction of data removed through acceleration (in Q14)
|
|
||||||
WebRtc_UWord16 currentAccelerateRate;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct JitterStatistics
|
|
||||||
{
|
|
||||||
// smallest Jitter Buffer size during call in ms
|
|
||||||
WebRtc_UWord32 jbMinSize;
|
|
||||||
// largest Jitter Buffer size during call in ms
|
|
||||||
WebRtc_UWord32 jbMaxSize;
|
|
||||||
// the average JB size, measured over time - ms
|
|
||||||
WebRtc_UWord32 jbAvgSize;
|
|
||||||
// number of times the Jitter Buffer changed (using Accelerate or
|
|
||||||
// Pre-emptive Expand)
|
|
||||||
WebRtc_UWord32 jbChangeCount;
|
|
||||||
// amount (in ms) of audio data received late
|
|
||||||
WebRtc_UWord32 lateLossMs;
|
|
||||||
// milliseconds removed to reduce jitter buffer size
|
|
||||||
WebRtc_UWord32 accelerateMs;
|
|
||||||
// milliseconds discarded through buffer flushing
|
|
||||||
WebRtc_UWord32 flushedMs;
|
|
||||||
// milliseconds of generated silence
|
|
||||||
WebRtc_UWord32 generatedSilentMs;
|
|
||||||
// milliseconds of synthetic audio data (non-background noise)
|
|
||||||
WebRtc_UWord32 interpolatedVoiceMs;
|
|
||||||
// milliseconds of synthetic audio data (background noise level)
|
|
||||||
WebRtc_UWord32 interpolatedSilentMs;
|
|
||||||
// count of tiny expansions in output audio
|
|
||||||
WebRtc_UWord32 countExpandMoreThan120ms;
|
|
||||||
// count of small expansions in output audio
|
|
||||||
WebRtc_UWord32 countExpandMoreThan250ms;
|
|
||||||
// count of medium expansions in output audio
|
|
||||||
WebRtc_UWord32 countExpandMoreThan500ms;
|
|
||||||
// count of long expansions in output audio
|
|
||||||
WebRtc_UWord32 countExpandMoreThan2000ms;
|
|
||||||
// duration of longest audio drop-out
|
|
||||||
WebRtc_UWord32 longestExpandDurationMs;
|
|
||||||
// count of times we got small network outage (inter-arrival time in
|
|
||||||
// [500, 1000) ms)
|
|
||||||
WebRtc_UWord32 countIAT500ms;
|
|
||||||
// count of times we got medium network outage (inter-arrival time in
|
|
||||||
// [1000, 2000) ms)
|
|
||||||
WebRtc_UWord32 countIAT1000ms;
|
|
||||||
// count of times we got large network outage (inter-arrival time >=
|
|
||||||
// 2000 ms)
|
|
||||||
WebRtc_UWord32 countIAT2000ms;
|
|
||||||
// longest packet inter-arrival time in ms
|
|
||||||
WebRtc_UWord32 longestIATms;
|
|
||||||
// min time incoming Packet "waited" to be played
|
|
||||||
WebRtc_UWord32 minPacketDelayMs;
|
|
||||||
// max time incoming Packet "waited" to be played
|
|
||||||
WebRtc_UWord32 maxPacketDelayMs;
|
|
||||||
// avg time incoming Packet "waited" to be played
|
|
||||||
WebRtc_UWord32 avgPacketDelayMs;
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
int min; // minumum
|
|
||||||
int max; // maximum
|
|
||||||
int average; // average
|
|
||||||
} StatVal;
|
|
||||||
|
|
||||||
typedef struct // All levels are reported in dBm0
|
|
||||||
{
|
|
||||||
StatVal speech_rx; // long-term speech levels on receiving side
|
|
||||||
StatVal speech_tx; // long-term speech levels on transmitting side
|
|
||||||
StatVal noise_rx; // long-term noise/silence levels on receiving side
|
|
||||||
StatVal noise_tx; // long-term noise/silence levels on transmitting side
|
|
||||||
} LevelStatistics;
|
|
||||||
|
|
||||||
typedef struct // All levels are reported in dB
|
|
||||||
{
|
|
||||||
StatVal erl; // Echo Return Loss
|
|
||||||
StatVal erle; // Echo Return Loss Enhancement
|
|
||||||
StatVal rerl; // RERL = ERL + ERLE
|
|
||||||
// Echo suppression inside EC at the point just before its NLP
|
|
||||||
StatVal a_nlp;
|
|
||||||
} EchoStatistics;
|
|
||||||
|
|
||||||
enum TelephoneEventDetectionMethods
|
|
||||||
{
|
|
||||||
kInBand = 0,
|
|
||||||
kOutOfBand = 1,
|
|
||||||
kInAndOutOfBand = 2
|
|
||||||
};
|
|
||||||
|
|
||||||
enum NsModes // type of Noise Suppression
|
|
||||||
{
|
|
||||||
kNsUnchanged = 0, // previously set mode
|
|
||||||
kNsDefault, // platform default
|
|
||||||
kNsConference, // conferencing default
|
|
||||||
kNsLowSuppression, // lowest suppression
|
|
||||||
kNsModerateSuppression,
|
|
||||||
kNsHighSuppression,
|
|
||||||
kNsVeryHighSuppression, // highest suppression
|
|
||||||
};
|
|
||||||
|
|
||||||
enum AgcModes // type of Automatic Gain Control
|
|
||||||
{
|
|
||||||
kAgcUnchanged = 0, // previously set mode
|
|
||||||
kAgcDefault, // platform default
|
|
||||||
// adaptive mode for use when analog volume control exists (e.g. for
|
|
||||||
// PC softphone)
|
|
||||||
kAgcAdaptiveAnalog,
|
|
||||||
// scaling takes place in the digital domain (e.g. for conference servers
|
|
||||||
// and embedded devices)
|
|
||||||
kAgcAdaptiveDigital,
|
|
||||||
// can be used on embedded devices where the the capture signal is level
|
|
||||||
// is predictable
|
|
||||||
kAgcFixedDigital
|
|
||||||
};
|
|
||||||
|
|
||||||
// EC modes
|
|
||||||
enum EcModes // type of Echo Control
|
|
||||||
{
|
|
||||||
kEcUnchanged = 0, // previously set mode
|
|
||||||
kEcDefault, // platform default
|
|
||||||
kEcConference, // conferencing default (aggressive AEC)
|
|
||||||
kEcAec, // Acoustic Echo Cancellation
|
|
||||||
kEcAecm, // AEC mobile
|
|
||||||
};
|
|
||||||
|
|
||||||
// AECM modes
|
|
||||||
enum AecmModes // mode of AECM
|
|
||||||
{
|
|
||||||
kAecmQuietEarpieceOrHeadset = 0,
|
|
||||||
// Quiet earpiece or headset use
|
|
||||||
kAecmEarpiece, // most earpiece use
|
|
||||||
kAecmLoudEarpiece, // Loud earpiece or quiet speakerphone use
|
|
||||||
kAecmSpeakerphone, // most speakerphone use (default)
|
|
||||||
kAecmLoudSpeakerphone // Loud speakerphone
|
|
||||||
};
|
|
||||||
|
|
||||||
// AGC configuration
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
unsigned short targetLeveldBOv;
|
|
||||||
unsigned short digitalCompressionGaindB;
|
|
||||||
bool limiterEnable;
|
|
||||||
} AgcConfig; // AGC configuration parameters
|
|
||||||
|
|
||||||
enum StereoChannel
|
|
||||||
{
|
|
||||||
kStereoLeft = 0,
|
|
||||||
kStereoRight,
|
|
||||||
kStereoBoth
|
|
||||||
};
|
|
||||||
|
|
||||||
// Audio device layers
|
|
||||||
enum AudioLayers
|
|
||||||
{
|
|
||||||
kAudioPlatformDefault = 0,
|
|
||||||
kAudioWindowsWave = 1,
|
|
||||||
kAudioWindowsCore = 2,
|
|
||||||
kAudioLinuxAlsa = 3,
|
|
||||||
kAudioLinuxPulse = 4
|
|
||||||
};
|
|
||||||
|
|
||||||
enum NetEqModes // NetEQ playout configurations
|
|
||||||
{
|
|
||||||
// Optimized trade-off between low delay and jitter robustness for two-way
|
|
||||||
// communication.
|
|
||||||
kNetEqDefault = 0,
|
|
||||||
// Improved jitter robustness at the cost of increased delay. Can be
|
|
||||||
// used in one-way communication.
|
|
||||||
kNetEqStreaming = 1,
|
|
||||||
// Optimzed for decodability of fax signals rather than for perceived audio
|
|
||||||
// quality.
|
|
||||||
kNetEqFax = 2,
|
|
||||||
};
|
|
||||||
|
|
||||||
enum NetEqBgnModes // NetEQ Background Noise (BGN) configurations
|
|
||||||
{
|
|
||||||
// BGN is always on and will be generated when the incoming RTP stream
|
|
||||||
// stops (default).
|
|
||||||
kBgnOn = 0,
|
|
||||||
// The BGN is faded to zero (complete silence) after a few seconds.
|
|
||||||
kBgnFade = 1,
|
|
||||||
// BGN is not used at all. Silence is produced after speech extrapolation
|
|
||||||
// has faded.
|
|
||||||
kBgnOff = 2,
|
|
||||||
};
|
|
||||||
|
|
||||||
enum OnHoldModes // On Hold direction
|
|
||||||
{
|
|
||||||
kHoldSendAndPlay = 0, // Put both sending and playing in on-hold state.
|
|
||||||
kHoldSendOnly, // Put only sending in on-hold state.
|
|
||||||
kHoldPlayOnly // Put only playing in on-hold state.
|
|
||||||
};
|
|
||||||
|
|
||||||
enum AmrMode
|
|
||||||
{
|
|
||||||
kRfc3267BwEfficient = 0,
|
|
||||||
kRfc3267OctetAligned = 1,
|
|
||||||
kRfc3267FileStorage = 2,
|
|
||||||
};
|
|
||||||
|
|
||||||
// ==================================================================
|
|
||||||
// Video specific types
|
|
||||||
// ==================================================================
|
|
||||||
|
|
||||||
// Raw video types
|
|
||||||
enum RawVideoType
|
|
||||||
{
|
|
||||||
kVideoI420 = 0,
|
|
||||||
kVideoYV12 = 1,
|
|
||||||
kVideoYUY2 = 2,
|
|
||||||
kVideoUYVY = 3,
|
|
||||||
kVideoIYUV = 4,
|
|
||||||
kVideoARGB = 5,
|
|
||||||
kVideoRGB24 = 6,
|
|
||||||
kVideoRGB565 = 7,
|
|
||||||
kVideoARGB4444 = 8,
|
|
||||||
kVideoARGB1555 = 9,
|
|
||||||
kVideoMJPEG = 10,
|
|
||||||
kVideoNV12 = 11,
|
|
||||||
kVideoNV21 = 12,
|
|
||||||
kVideoUnknown = 99
|
|
||||||
};
|
|
||||||
|
|
||||||
// Video codec
|
|
||||||
enum { kConfigParameterSize = 128};
|
|
||||||
enum { kPayloadNameSize = 32};
|
|
||||||
|
|
||||||
// H.263 specific
|
|
||||||
struct VideoCodecH263
|
|
||||||
{
|
|
||||||
char quality;
|
|
||||||
};
|
|
||||||
|
|
||||||
// H.264 specific
|
|
||||||
enum H264Packetization
|
|
||||||
{
|
|
||||||
kH264SingleMode = 0,
|
|
||||||
kH264NonInterleavedMode = 1
|
|
||||||
};
|
|
||||||
|
|
||||||
enum VideoCodecComplexity
|
|
||||||
{
|
|
||||||
kComplexityNormal = 0,
|
|
||||||
kComplexityHigh = 1,
|
|
||||||
kComplexityHigher = 2,
|
|
||||||
kComplexityMax = 3
|
|
||||||
};
|
|
||||||
|
|
||||||
enum VideoCodecProfile
|
|
||||||
{
|
|
||||||
kProfileBase = 0x00,
|
|
||||||
kProfileMain = 0x01
|
|
||||||
};
|
|
||||||
|
|
||||||
struct VideoCodecH264
|
|
||||||
{
|
|
||||||
H264Packetization packetization;
|
|
||||||
VideoCodecComplexity complexity;
|
|
||||||
VideoCodecProfile profile;
|
|
||||||
char level;
|
|
||||||
char quality;
|
|
||||||
|
|
||||||
bool useFMO;
|
|
||||||
|
|
||||||
unsigned char configParameters[kConfigParameterSize];
|
|
||||||
unsigned char configParametersSize;
|
|
||||||
};
|
|
||||||
|
|
||||||
// VP8 specific
|
|
||||||
struct VideoCodecVP8
|
|
||||||
{
|
|
||||||
bool pictureLossIndicationOn;
|
|
||||||
bool feedbackModeOn;
|
|
||||||
VideoCodecComplexity complexity;
|
|
||||||
};
|
|
||||||
|
|
||||||
// MPEG-4 specific
|
|
||||||
struct VideoCodecMPEG4
|
|
||||||
{
|
|
||||||
unsigned char configParameters[kConfigParameterSize];
|
|
||||||
unsigned char configParametersSize;
|
|
||||||
char level;
|
|
||||||
};
|
|
||||||
|
|
||||||
// Unknown specific
|
|
||||||
struct VideoCodecGeneric
|
|
||||||
{
|
|
||||||
};
|
|
||||||
|
|
||||||
// Video codec types
|
|
||||||
enum VideoCodecType
|
|
||||||
{
|
|
||||||
kVideoCodecH263,
|
|
||||||
kVideoCodecH264,
|
|
||||||
kVideoCodecVP8,
|
|
||||||
kVideoCodecMPEG4,
|
|
||||||
kVideoCodecI420,
|
|
||||||
kVideoCodecRED,
|
|
||||||
kVideoCodecULPFEC,
|
|
||||||
kVideoCodecUnknown
|
|
||||||
};
|
|
||||||
|
|
||||||
union VideoCodecUnion
|
|
||||||
{
|
|
||||||
VideoCodecH263 H263;
|
|
||||||
VideoCodecH264 H264;
|
|
||||||
VideoCodecVP8 VP8;
|
|
||||||
VideoCodecMPEG4 MPEG4;
|
|
||||||
VideoCodecGeneric Generic;
|
|
||||||
};
|
|
||||||
|
|
||||||
// Common video codec properties
|
|
||||||
struct VideoCodec
|
|
||||||
{
|
|
||||||
VideoCodecType codecType;
|
|
||||||
char plName[kPayloadNameSize];
|
|
||||||
unsigned char plType;
|
|
||||||
|
|
||||||
unsigned short width;
|
|
||||||
unsigned short height;
|
|
||||||
|
|
||||||
unsigned int startBitrate;
|
|
||||||
unsigned int maxBitrate;
|
|
||||||
unsigned int minBitrate;
|
|
||||||
unsigned char maxFramerate;
|
|
||||||
|
|
||||||
VideoCodecUnion codecSpecific;
|
|
||||||
|
|
||||||
unsigned int qpMax;
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace webrtc
|
|
||||||
|
|
||||||
#endif // WEBRTC_COMMON_TYPES_H
|
|
@ -1,131 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* Use of this source code is governed by a BSD-style license
|
|
||||||
* that can be found in the LICENSE file in the root of the source
|
|
||||||
* tree. An additional intellectual property rights grant can be found
|
|
||||||
* in the file PATENTS. All contributing project authors may
|
|
||||||
* be found in the AUTHORS file in the root of the source tree.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef WEBRTC_ENGINE_CONFIGURATIONS_H_
|
|
||||||
#define WEBRTC_ENGINE_CONFIGURATIONS_H_
|
|
||||||
|
|
||||||
// ============================================================================
|
|
||||||
// Voice and Video
|
|
||||||
// ============================================================================
|
|
||||||
|
|
||||||
// #define WEBRTC_EXTERNAL_TRANSPORT
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// [Voice] Codec settings
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#define WEBRTC_CODEC_ILBC
|
|
||||||
#define WEBRTC_CODEC_ISAC // floating-point iSAC implementation (default)
|
|
||||||
// #define WEBRTC_CODEC_ISACFX // fix-point iSAC implementation
|
|
||||||
#define WEBRTC_CODEC_G722
|
|
||||||
#define WEBRTC_CODEC_PCM16
|
|
||||||
#define WEBRTC_CODEC_RED
|
|
||||||
#define WEBRTC_CODEC_AVT
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// [Video] Codec settings
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#define VIDEOCODEC_I420
|
|
||||||
#define VIDEOCODEC_VP8
|
|
||||||
|
|
||||||
// ============================================================================
|
|
||||||
// VoiceEngine
|
|
||||||
// ============================================================================
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// Settings for VoiceEngine
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#define WEBRTC_VOICE_ENGINE_AGC // Near-end AGC
|
|
||||||
#define WEBRTC_VOICE_ENGINE_ECHO // Near-end AEC
|
|
||||||
#define WEBRTC_VOICE_ENGINE_NR // Near-end NS
|
|
||||||
#define WEBRTC_VOICE_ENGINE_TYPING_DETECTION
|
|
||||||
#define WEBRTC_VOE_EXTERNAL_REC_AND_PLAYOUT
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// VoiceEngine sub-APIs
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#define WEBRTC_VOICE_ENGINE_AUDIO_PROCESSING_API
|
|
||||||
#define WEBRTC_VOICE_ENGINE_CALL_REPORT_API
|
|
||||||
#define WEBRTC_VOICE_ENGINE_CODEC_API
|
|
||||||
#define WEBRTC_VOICE_ENGINE_DTMF_API
|
|
||||||
#define WEBRTC_VOICE_ENGINE_ENCRYPTION_API
|
|
||||||
#define WEBRTC_VOICE_ENGINE_EXTERNAL_MEDIA_API
|
|
||||||
#define WEBRTC_VOICE_ENGINE_FILE_API
|
|
||||||
#define WEBRTC_VOICE_ENGINE_HARDWARE_API
|
|
||||||
#define WEBRTC_VOICE_ENGINE_NETEQ_STATS_API
|
|
||||||
#define WEBRTC_VOICE_ENGINE_NETWORK_API
|
|
||||||
#define WEBRTC_VOICE_ENGINE_RTP_RTCP_API
|
|
||||||
#define WEBRTC_VOICE_ENGINE_VIDEO_SYNC_API
|
|
||||||
#define WEBRTC_VOICE_ENGINE_VOLUME_CONTROL_API
|
|
||||||
|
|
||||||
// ============================================================================
|
|
||||||
// VideoEngine
|
|
||||||
// ============================================================================
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// Settings for special VideoEngine configurations
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// VideoEngine sub-API:s
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#define WEBRTC_VIDEO_ENGINE_CAPTURE_API
|
|
||||||
#define WEBRTC_VIDEO_ENGINE_CODEC_API
|
|
||||||
#define WEBRTC_VIDEO_ENGINE_ENCRYPTION_API
|
|
||||||
#define WEBRTC_VIDEO_ENGINE_FILE_API
|
|
||||||
#define WEBRTC_VIDEO_ENGINE_IMAGE_PROCESS_API
|
|
||||||
#define WEBRTC_VIDEO_ENGINE_NETWORK_API
|
|
||||||
#define WEBRTC_VIDEO_ENGINE_RENDER_API
|
|
||||||
#define WEBRTC_VIDEO_ENGINE_RTP_RTCP_API
|
|
||||||
// #define WEBRTC_VIDEO_ENGINE_EXTERNAL_CODEC_API
|
|
||||||
|
|
||||||
// ============================================================================
|
|
||||||
// Platform specific configurations
|
|
||||||
// ============================================================================
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// VideoEngine Windows
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#if defined(_WIN32)
|
|
||||||
// #define DIRECTDRAW_RENDERING
|
|
||||||
#define DIRECT3D9_RENDERING // Requires DirectX 9.
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// VideoEngine MAC
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#if defined(WEBRTC_MAC) && !defined(MAC_IPHONE)
|
|
||||||
// #define CARBON_RENDERING
|
|
||||||
#define COCOA_RENDERING
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// VideoEngine Mobile iPhone
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#if defined(MAC_IPHONE)
|
|
||||||
#define EAGL_RENDERING
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// Deprecated
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// #define WEBRTC_CODEC_G729
|
|
||||||
// #define WEBRTC_DTMF_DETECTION
|
|
||||||
// #define WEBRTC_SRTP
|
|
||||||
// #define WEBRTC_SRTP_ALLOW_ROC_ITERATION
|
|
||||||
|
|
||||||
#endif // WEBRTC_ENGINE_CONFIGURATIONS_H_
|
|
107
typedefs.h
107
typedefs.h
@ -1,107 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* Use of this source code is governed by a BSD-style license
|
|
||||||
* that can be found in the LICENSE file in the root of the source
|
|
||||||
* tree. An additional intellectual property rights grant can be found
|
|
||||||
* in the file PATENTS. All contributing project authors may
|
|
||||||
* be found in the AUTHORS file in the root of the source tree.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
* This file contains type definitions used in all WebRtc APIs.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Reserved words definitions */
|
|
||||||
#define WEBRTC_EXTERN extern
|
|
||||||
#define G_CONST const
|
|
||||||
#define WEBRTC_INLINE extern __inline
|
|
||||||
|
|
||||||
#ifndef WEBRTC_TYPEDEFS_H
|
|
||||||
#define WEBRTC_TYPEDEFS_H
|
|
||||||
|
|
||||||
/* Define WebRtc preprocessor identifiers based on the current build platform */
|
|
||||||
#if defined(WIN32)
|
|
||||||
// Windows & Windows Mobile
|
|
||||||
#if !defined(WEBRTC_TARGET_PC)
|
|
||||||
#define WEBRTC_TARGET_PC
|
|
||||||
#endif
|
|
||||||
#elif defined(__APPLE__)
|
|
||||||
// Mac OS X
|
|
||||||
#if defined(__LITTLE_ENDIAN__ ) //TODO: is this used?
|
|
||||||
#if !defined(WEBRTC_TARGET_MAC_INTEL)
|
|
||||||
#define WEBRTC_TARGET_MAC_INTEL
|
|
||||||
#endif
|
|
||||||
#else
|
|
||||||
#if !defined(WEBRTC_TARGET_MAC)
|
|
||||||
#define WEBRTC_TARGET_MAC
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#else
|
|
||||||
// Linux etc.
|
|
||||||
#if !defined(WEBRTC_TARGET_PC)
|
|
||||||
#define WEBRTC_TARGET_PC
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(WEBRTC_TARGET_PC)
|
|
||||||
|
|
||||||
#if !defined(_MSC_VER)
|
|
||||||
#include <stdint.h>
|
|
||||||
#else
|
|
||||||
// Define C99 equivalent types.
|
|
||||||
// Since MSVC doesn't include these headers, we have to write our own
|
|
||||||
// version to provide a compatibility layer between MSVC and the WebRTC
|
|
||||||
// headers.
|
|
||||||
typedef signed char int8_t;
|
|
||||||
typedef signed short int16_t;
|
|
||||||
typedef signed int int32_t;
|
|
||||||
typedef signed long long int64_t;
|
|
||||||
typedef unsigned char uint8_t;
|
|
||||||
typedef unsigned short uint16_t;
|
|
||||||
typedef unsigned int uint32_t;
|
|
||||||
typedef unsigned long long uint64_t;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(WIN32)
|
|
||||||
typedef __int64 WebRtc_Word64;
|
|
||||||
typedef unsigned __int64 WebRtc_UWord64;
|
|
||||||
#else
|
|
||||||
typedef int64_t WebRtc_Word64;
|
|
||||||
typedef uint64_t WebRtc_UWord64;
|
|
||||||
#endif
|
|
||||||
typedef int32_t WebRtc_Word32;
|
|
||||||
typedef uint32_t WebRtc_UWord32;
|
|
||||||
typedef int16_t WebRtc_Word16;
|
|
||||||
typedef uint16_t WebRtc_UWord16;
|
|
||||||
typedef char WebRtc_Word8;
|
|
||||||
typedef uint8_t WebRtc_UWord8;
|
|
||||||
|
|
||||||
/* Define endian for the platform */
|
|
||||||
#define WEBRTC_LITTLE_ENDIAN
|
|
||||||
|
|
||||||
#elif defined(WEBRTC_TARGET_MAC_INTEL)
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
typedef int64_t WebRtc_Word64;
|
|
||||||
typedef uint64_t WebRtc_UWord64;
|
|
||||||
typedef int32_t WebRtc_Word32;
|
|
||||||
typedef uint32_t WebRtc_UWord32;
|
|
||||||
typedef int16_t WebRtc_Word16;
|
|
||||||
typedef char WebRtc_Word8;
|
|
||||||
typedef uint16_t WebRtc_UWord16;
|
|
||||||
typedef uint8_t WebRtc_UWord8;
|
|
||||||
|
|
||||||
/* Define endian for the platform */
|
|
||||||
#define WEBRTC_LITTLE_ENDIAN
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
#error "No platform defined for WebRtc type definitions (webrtc_typedefs.h)"
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#endif // WEBRTC_TYPEDEFS_H
|
|
@ -1,17 +0,0 @@
|
|||||||
# Copyright (c) 2009 The Chromium Authors. All rights reserved.
|
|
||||||
# Use of this source code is governed by a BSD-style license that can be
|
|
||||||
# found in the LICENSE file.
|
|
||||||
|
|
||||||
{
|
|
||||||
'includes': [
|
|
||||||
'common_settings.gypi', # Common settings
|
|
||||||
# Defines target vie_auto_test
|
|
||||||
'video_engine/main/test/AutoTest/vie_auto_test.gypi',
|
|
||||||
],
|
|
||||||
}
|
|
||||||
|
|
||||||
# Local Variables:
|
|
||||||
# tab-width:2
|
|
||||||
# indent-tabs-mode:nil
|
|
||||||
# End:
|
|
||||||
# vim: set expandtab tabstop=2 shiftwidth=2:
|
|
163
voice_engine.gyp
163
voice_engine.gyp
@ -1,163 +0,0 @@
|
|||||||
# Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
|
|
||||||
#
|
|
||||||
# Use of this source code is governed by a BSD-style license
|
|
||||||
# that can be found in the LICENSE file in the root of the source
|
|
||||||
# tree. An additional intellectual property rights grant can be found
|
|
||||||
# in the file PATENTS. All contributing project authors may
|
|
||||||
# be found in the AUTHORS file in the root of the source tree.
|
|
||||||
|
|
||||||
{
|
|
||||||
'includes': [
|
|
||||||
'common_settings.gypi',
|
|
||||||
],
|
|
||||||
'targets': [
|
|
||||||
# Auto test - command line test for all platforms
|
|
||||||
{
|
|
||||||
'target_name': 'voe_auto_test',
|
|
||||||
'type': 'executable',
|
|
||||||
'dependencies': [
|
|
||||||
'voice_engine/main/source/voice_engine_core.gyp:voice_engine_core',
|
|
||||||
'system_wrappers/source/system_wrappers.gyp:system_wrappers',
|
|
||||||
],
|
|
||||||
'include_dirs': [
|
|
||||||
'voice_engine/main/test/auto_test',
|
|
||||||
],
|
|
||||||
'sources': [
|
|
||||||
'voice_engine/main/test/auto_test/voe_cpu_test.cc',
|
|
||||||
'voice_engine/main/test/auto_test/voe_cpu_test.h',
|
|
||||||
'voice_engine/main/test/auto_test/voe_extended_test.cc',
|
|
||||||
'voice_engine/main/test/auto_test/voe_extended_test.h',
|
|
||||||
'voice_engine/main/test/auto_test/voe_standard_test.cc',
|
|
||||||
'voice_engine/main/test/auto_test/voe_standard_test.h',
|
|
||||||
'voice_engine/main/test/auto_test/voe_stress_test.cc',
|
|
||||||
'voice_engine/main/test/auto_test/voe_stress_test.h',
|
|
||||||
'voice_engine/main/test/auto_test/voe_test_defines.h',
|
|
||||||
'voice_engine/main/test/auto_test/voe_test_interface.h',
|
|
||||||
'voice_engine/main/test/auto_test/voe_unit_test.cc',
|
|
||||||
'voice_engine/main/test/auto_test/voe_unit_test.h',
|
|
||||||
],
|
|
||||||
'conditions': [
|
|
||||||
['OS=="linux" or OS=="mac"', {
|
|
||||||
'actions': [
|
|
||||||
{
|
|
||||||
'action_name': 'copy audio file',
|
|
||||||
'inputs': [
|
|
||||||
'test/data/voice_engine/audio_long16.pcm',
|
|
||||||
],
|
|
||||||
'outputs': [
|
|
||||||
'/tmp/audio_long16.pcm',
|
|
||||||
],
|
|
||||||
'action': [
|
|
||||||
'/bin/sh', '-c',
|
|
||||||
'cp -f test/data/voice_engine/audio_* /tmp/;'\
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
}],
|
|
||||||
['OS=="win"', {
|
|
||||||
'dependencies': [
|
|
||||||
'voice_engine.gyp:voe_ui_win_test',
|
|
||||||
],
|
|
||||||
}],
|
|
||||||
['OS=="win"', {
|
|
||||||
'actions': [
|
|
||||||
{
|
|
||||||
'action_name': 'copy audio file',
|
|
||||||
'inputs': [
|
|
||||||
'test/data/voice_engine/audio_long16.pcm',
|
|
||||||
],
|
|
||||||
'outputs': [
|
|
||||||
'/tmp/audio_long16.pcm',
|
|
||||||
],
|
|
||||||
'action': [
|
|
||||||
'cmd', '/c',
|
|
||||||
'xcopy /Y /R .\\test\\data\\voice_engine\\audio_* \\tmp',
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
}],
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
# command line test that should work on linux/mac/win
|
|
||||||
'target_name': 'voe_cmd_test',
|
|
||||||
'type': 'executable',
|
|
||||||
'dependencies': [
|
|
||||||
'voice_engine/main/source/voice_engine_core.gyp:voice_engine_core',
|
|
||||||
'system_wrappers/source/system_wrappers.gyp:system_wrappers',
|
|
||||||
],
|
|
||||||
'sources': [
|
|
||||||
'voice_engine/main/test/cmd_test/voe_cmd_test.cc',
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
'conditions': [
|
|
||||||
['OS=="win"', {
|
|
||||||
'targets': [
|
|
||||||
# WinTest - GUI test for Windows
|
|
||||||
{
|
|
||||||
'target_name': 'voe_ui_win_test',
|
|
||||||
'type': 'executable',
|
|
||||||
'dependencies': [
|
|
||||||
'voice_engine/main/source/voice_engine_core.gyp:voice_engine_core',
|
|
||||||
'system_wrappers/source/system_wrappers.gyp:system_wrappers',
|
|
||||||
],
|
|
||||||
'include_dirs': [
|
|
||||||
'voice_engine/main/test/win_test',
|
|
||||||
],
|
|
||||||
'sources': [
|
|
||||||
'voice_engine/main/test/win_test/Resource.h',
|
|
||||||
'voice_engine/main/test/win_test/WinTest.cpp',
|
|
||||||
'voice_engine/main/test/win_test/WinTest.h',
|
|
||||||
'voice_engine/main/test/win_test/WinTest.rc',
|
|
||||||
'voice_engine/main/test/win_test/WinTestDlg.cpp',
|
|
||||||
'voice_engine/main/test/win_test/WinTestDlg.h',
|
|
||||||
'voice_engine/main/test/win_test/res/WinTest.ico',
|
|
||||||
'voice_engine/main/test/win_test/res/WinTest.rc2',
|
|
||||||
'voice_engine/main/test/win_test/stdafx.cpp',
|
|
||||||
'voice_engine/main/test/win_test/stdafx.h',
|
|
||||||
],
|
|
||||||
'actions': [
|
|
||||||
{
|
|
||||||
'action_name': 'copy audio file',
|
|
||||||
'inputs': [
|
|
||||||
'test/data/voice_engine/audio_tiny11.wav',
|
|
||||||
],
|
|
||||||
'outputs': [
|
|
||||||
'/tmp/audio_tiny11.wav',
|
|
||||||
],
|
|
||||||
'action': [
|
|
||||||
'cmd', '/c',
|
|
||||||
'xcopy /Y /R .\\test\\data\\voice_engine\\audio_* \\tmp',
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
'configurations': {
|
|
||||||
'Common_Base': {
|
|
||||||
'msvs_configuration_attributes': {
|
|
||||||
'conditions': [
|
|
||||||
['component=="shared_library"', {
|
|
||||||
'UseOfMFC': '2', # Shared DLL
|
|
||||||
},{
|
|
||||||
'UseOfMFC': '1', # Static
|
|
||||||
}],
|
|
||||||
],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
'msvs_settings': {
|
|
||||||
'VCLinkerTool': {
|
|
||||||
'SubSystem': '2', # Windows
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
}],
|
|
||||||
],
|
|
||||||
}
|
|
||||||
|
|
||||||
# Local Variables:
|
|
||||||
# tab-width:2
|
|
||||||
# indent-tabs-mode:nil
|
|
||||||
# End:
|
|
||||||
# vim: set expandtab tabstop=2 shiftwidth=2:
|
|
Loading…
x
Reference in New Issue
Block a user