config.h
来自「基于sip协议的网络电话源码」· C头文件 代码 · 共 351 行
H
351 行
/* $Id: config.h 1071 2007-03-15 21:56:33Z bennylp $ *//* * Copyright (C) 2003-2007 Benny Prijono <benny@prijono.org> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */#ifndef __PJMEDIA_CONFIG_H__#define __PJMEDIA_CONFIG_H__/** * @file pjmedia/config.h Compile time config * @brief Contains some compile time constants. */#include <pj/config.h>/** * @defgroup PJMEDIA_BASE Base Types and Configurations * @ingroup PJMEDIA *//** * @defgroup PJMEDIA_CONFIG Compile time configuration * @ingroup PJMEDIA_BASE * @brief Some compile time configuration settings. * @{ *//* * Include config_auto.h if autoconf is used (PJ_AUTOCONF is set) */#if defined(PJ_AUTOCONF)# include <pjmedia/config_auto.h>#endif/* * Types of sound stream backends. *//** Constant for NULL sound backend. */#define PJMEDIA_SOUND_NULL_SOUND 0/** Constant for PortAudio sound backend. */#define PJMEDIA_SOUND_PORTAUDIO_SOUND 1/** Constant for Win32 DirectSound sound backend. */#define PJMEDIA_SOUND_WIN32_DIRECT_SOUND 2/** * Unless specified otherwise, sound device uses PortAudio implementation * by default. */#ifndef PJMEDIA_SOUND_IMPLEMENTATION# if defined(PJ_WIN32) && PJ_WIN32!=0/*# define PJMEDIA_SOUND_IMPLEMENTATION PJMEDIA_SOUND_WIN32_DIRECT_SOUND*/# define PJMEDIA_SOUND_IMPLEMENTATION PJMEDIA_SOUND_PORTAUDIO_SOUND# else# define PJMEDIA_SOUND_IMPLEMENTATION PJMEDIA_SOUND_PORTAUDIO_SOUND# endif#endif/** * Specify number of sound buffers. Larger number is better for sound * stability and to accomodate sound devices that are unable to send frames * in timely manner, however it would take more memory. One individual * buffer is about 10 or 20 ms long. * * Default: 16 */#ifndef PJMEDIA_SOUND_BUFFER_COUNT# define PJMEDIA_SOUND_BUFFER_COUNT 16#endif/** * Specify which A-law/U-law conversion algorithm to use. * By default the conversion algorithm uses A-law/U-law table which gives * the best performance, at the expense of 33 KBytes of static data. * If this option is disabled, a smaller but slower algorithm will be used. */#ifndef PJMEDIA_HAS_ALAW_ULAW_TABLE# define PJMEDIA_HAS_ALAW_ULAW_TABLE 1#endif/** * Unless specified otherwise, G711 codec is included by default. */#ifndef PJMEDIA_HAS_G711_CODEC# define PJMEDIA_HAS_G711_CODEC 1#endif/** * Include small filter table in resample. * This adds about 9KB in rdata. */#ifndef PJMEDIA_HAS_SMALL_FILTER# define PJMEDIA_HAS_SMALL_FILTER 1#endif/** * Include large filter table in resample. * This adds about 32KB in rdata. */#ifndef PJMEDIA_HAS_LARGE_FILTER# define PJMEDIA_HAS_LARGE_FILTER 1#endif/** * Default file player/writer buffer size. */#ifndef PJMEDIA_FILE_PORT_BUFSIZE# define PJMEDIA_FILE_PORT_BUFSIZE 4000#endif/** * Maximum frame duration (in msec) to be supported. * This (among other thing) will affect the size of buffers to be allocated * for outgoing packets. */#ifndef PJMEDIA_MAX_FRAME_DURATION_MS # define PJMEDIA_MAX_FRAME_DURATION_MS 200#endif/** * Max packet size to support. */#ifndef PJMEDIA_MAX_MTU # define PJMEDIA_MAX_MTU 1500#endif/** * DTMF/telephone-event duration, in timestamp. */#ifndef PJMEDIA_DTMF_DURATION # define PJMEDIA_DTMF_DURATION 1600 /* in timestamp */#endif/** * Number of packets received from different source IP address from the * remote address required to make the stream switch transmission * to the source address. */#ifndef PJMEDIA_RTP_NAT_PROBATION_CNT # define PJMEDIA_RTP_NAT_PROBATION_CNT 10#endif/** * Interval to send RTCP packets, in msec */#ifndef PJMEDIA_RTCP_INTERVAL# define PJMEDIA_RTCP_INTERVAL 5000 /* msec*/#endif/** * Tell RTCP to ignore the first N packets when calculating the * jitter statistics. From experimentation, the first few packets * (25 or so) have relatively big jitter, possibly because during * this time, the program is also busy setting up the signaling, * so they make the average jitter big. * * Default: 25. */#ifndef PJMEDIA_RTCP_IGNORE_FIRST_PACKETS# define PJMEDIA_RTCP_IGNORE_FIRST_PACKETS 25#endif/** * Specify how long (in miliseconds) the stream should suspend the * silence detector/voice activity detector (VAD) during the initial * period of the session. This feature is useful to open bindings in * all NAT routers between local and remote endpoint since most NATs * do not allow incoming packet to get in before local endpoint sends * outgoing packets. * * Specify zero to disable this feature. * * Default: 600 msec (which gives good probability that some RTP * packets will reach the destination, but without * filling up the jitter buffer on the remote end). */#ifndef PJMEDIA_STREAM_VAD_SUSPEND_MSEC# define PJMEDIA_STREAM_VAD_SUSPEND_MSEC 600#endif/** * Specify the maximum duration of silence period in the codec. * This is useful for example to keep NAT binding open in the firewall * and to prevent server from disconnecting the call because no * RTP packet is received. * * This only applies to codecs that use PJMEDIA's VAD (pretty much * everything including iLBC, except Speex, which has its own DTX * mechanism). * * Use (-1) to disable this feature. * * Default: 8000 (one second on 8KHz). * */#ifndef PJMEDIA_CODEC_MAX_SILENCE_PERIOD# define PJMEDIA_CODEC_MAX_SILENCE_PERIOD 8000#endif/** * Suggested or default threshold to be set for fixed silence detection * or as starting threshold for adaptive silence detection. The threshold * has the range from zero to 255. */#ifndef PJMEDIA_SILENCE_DET_THRESHOLD# define PJMEDIA_SILENCE_DET_THRESHOLD 4#endif/** * Enable Steve Underwood's PLC. */#ifndef PJMEDIA_HAS_STEVEU_PLC# define PJMEDIA_HAS_STEVEU_PLC PJ_HAS_FLOATING_POINT#endif/** * Speex Accoustic Echo Cancellation (AEC). * By default is enabled. */#ifndef PJMEDIA_HAS_SPEEX_AEC# define PJMEDIA_HAS_SPEEX_AEC 1#endif/** * Initial signal threshold to be applied to echo suppressor. When * playback signal level is greater than this threshold, the microphone * signal will be reduced or cut. */#ifndef PJMEDIA_ECHO_SUPPRESS_THRESHOLD# define PJMEDIA_ECHO_SUPPRESS_THRESHOLD PJMEDIA_SILENCE_DET_THRESHOLD#endif/** * The signal reduction factor to be applied into the microphone signal * when the mic signal needs to be reduced. Valid values are [1-16], where * 1 will leave signal as it is (thus probably transmitting the echo) and * 16 will effectively zero the signal. */#ifndef PJMEDIA_ECHO_SUPPRESS_FACTOR# define PJMEDIA_ECHO_SUPPRESS_FACTOR 4#endif/** * This specifies the behavior of the SDP negotiator when responding to an * offer, whether it should rather use the codec preference as set by * remote, or should it rather use the codec preference as specified by * local endpoint. * * For example, suppose incoming call has codec order "8 0 3", while * local codec order is "3 0 8". If remote codec order is preferable, * the selected codec will be 8, while if local codec order is preferable, * the selected codec will be 3. * * If set to non-zero, the negotiator will use the codec order as specified * by remote in the offer. * * Note that this behavior can be changed during run-time by calling * pjmedia_sdp_neg_set_prefer_remote_codec_order(). * * Default is 1 (to maintain backward compatibility) */#ifndef PJMEDIA_SDP_NEG_PREFER_REMOTE_CODEC_ORDER# define PJMEDIA_SDP_NEG_PREFER_REMOTE_CODEC_ORDER 1#endif/** * Support for sending and decoding RTCP port in SDP (RFC 3605). * Default is yes. */#ifndef PJMEDIA_HAS_RTCP_IN_SDP# define PJMEDIA_HAS_RTCP_IN_SDP 1#endif/** * This macro declares the payload type for telephone-event * that is advertised by PJMEDIA for outgoing SDP. If this macro * is set to zero, telephone events would not be advertised nor * supported. * * If this value is changed to other number, please update the * PJMEDIA_RTP_PT_TELEPHONE_EVENTS_STR too. */#ifndef PJMEDIA_RTP_PT_TELEPHONE_EVENTS# define PJMEDIA_RTP_PT_TELEPHONE_EVENTS 101#endif/** * Macro to get the string representation of the telephone-event * payload type. */#ifndef PJMEDIA_RTP_PT_TELEPHONE_EVENTS_STR# define PJMEDIA_RTP_PT_TELEPHONE_EVENTS_STR "101"#endif/** * Maximum tones/digits that can be enqueued in the tone generator. */#ifndef PJMEDIA_TONEGEN_MAX_DIGITS# define PJMEDIA_TONEGEN_MAX_DIGITS 32#endif/** * @} */#endif /* __PJMEDIA_CONFIG_H__ */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?