790 lines
19 KiB
C
790 lines
19 KiB
C
/*
|
|
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
|
* Copyright (C) 2003-2008 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_CODEC_CONFIG_H__
|
|
#define __PJMEDIA_CODEC_CONFIG_H__
|
|
|
|
/**
|
|
* @file config.h
|
|
* @brief PJMEDIA-CODEC compile time settings
|
|
*/
|
|
|
|
/**
|
|
* @defgroup pjmedia_codec_config PJMEDIA-CODEC Compile Time Settings
|
|
* @ingroup PJMEDIA_CODEC
|
|
* @brief Various compile time settings such as to enable/disable codecs
|
|
* @{
|
|
*/
|
|
|
|
#include <pjmedia/types.h>
|
|
|
|
/*
|
|
* Include config_auto.h if autoconf is used (PJ_AUTOCONF is set)
|
|
*/
|
|
#if defined(PJ_AUTOCONF)
|
|
# include <pjmedia-codec/config_auto.h>
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Unless specified otherwise, L16 codec is included by default.
|
|
*/
|
|
#ifndef PJMEDIA_HAS_L16_CODEC
|
|
# define PJMEDIA_HAS_L16_CODEC 1
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Settings to enable L16 codec 8KHz, mono. By default it is disabled.
|
|
*/
|
|
#ifndef PJMEDIA_CODEC_L16_HAS_8KHZ_MONO
|
|
# define PJMEDIA_CODEC_L16_HAS_8KHZ_MONO 0
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Settings to enable L16 codec 8KHz, stereo. By default it is disabled.
|
|
*/
|
|
#ifndef PJMEDIA_CODEC_L16_HAS_8KHZ_STEREO
|
|
# define PJMEDIA_CODEC_L16_HAS_8KHZ_STEREO 0
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Settings to enable L16 codec 16KHz, mono. By default it is disabled.
|
|
*/
|
|
#ifndef PJMEDIA_CODEC_L16_HAS_16KHZ_MONO
|
|
# define PJMEDIA_CODEC_L16_HAS_16KHZ_MONO 0
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Settings to enable L16 codec 16KHz, stereo. By default it is disabled.
|
|
*/
|
|
#ifndef PJMEDIA_CODEC_L16_HAS_16KHZ_STEREO
|
|
# define PJMEDIA_CODEC_L16_HAS_16KHZ_STEREO 0
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Settings to enable L16 codec 48KHz, mono. By default it is disabled.
|
|
*/
|
|
#ifndef PJMEDIA_CODEC_L16_HAS_48KHZ_MONO
|
|
# define PJMEDIA_CODEC_L16_HAS_48KHZ_MONO 0
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Settings to enable L16 codec 48KHz, stereo. By default it is disabled.
|
|
*/
|
|
#ifndef PJMEDIA_CODEC_L16_HAS_48KHZ_STEREO
|
|
# define PJMEDIA_CODEC_L16_HAS_48KHZ_STEREO 0
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Unless specified otherwise, GSM codec is included by default.
|
|
*/
|
|
#ifndef PJMEDIA_HAS_GSM_CODEC
|
|
# define PJMEDIA_HAS_GSM_CODEC 1
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Unless specified otherwise, Speex codec is included by default.
|
|
*/
|
|
#ifndef PJMEDIA_HAS_SPEEX_CODEC
|
|
# define PJMEDIA_HAS_SPEEX_CODEC 1
|
|
#endif
|
|
|
|
/**
|
|
* Speex codec default complexity setting.
|
|
*/
|
|
#ifndef PJMEDIA_CODEC_SPEEX_DEFAULT_COMPLEXITY
|
|
# define PJMEDIA_CODEC_SPEEX_DEFAULT_COMPLEXITY 2
|
|
#endif
|
|
|
|
/**
|
|
* Speex codec default quality setting. Please note that pjsua-lib may override
|
|
* this setting via its codec quality setting (i.e PJSUA_DEFAULT_CODEC_QUALITY).
|
|
*/
|
|
#ifndef PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY
|
|
# define PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY 8
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Unless specified otherwise, iLBC codec is included by default.
|
|
*/
|
|
#ifndef PJMEDIA_HAS_ILBC_CODEC
|
|
# define PJMEDIA_HAS_ILBC_CODEC 1
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Unless specified otherwise, G.722 codec is included by default.
|
|
*/
|
|
#ifndef PJMEDIA_HAS_G722_CODEC
|
|
# define PJMEDIA_HAS_G722_CODEC 1
|
|
#endif
|
|
|
|
/**
|
|
* Initial memory block for G.722 codec implementation.
|
|
*/
|
|
#ifndef PJMEDIA_POOL_LEN_G722_CODEC
|
|
# define PJMEDIA_POOL_LEN_G722_CODEC 1000
|
|
#endif
|
|
|
|
/**
|
|
* Memory increment for G.722 codec implementation.
|
|
*/
|
|
#ifndef PJMEDIA_POOL_INC_G722_CODEC
|
|
# define PJMEDIA_POOL_INC_G722_CODEC 1000
|
|
#endif
|
|
|
|
/**
|
|
* Default G.722 codec encoder and decoder level adjustment. The G.722
|
|
* specifies that it uses 14 bit PCM for input and output, while PJMEDIA
|
|
* normally uses 16 bit PCM, so the conversion is done by applying
|
|
* level adjustment. If the value is non-zero, then PCM input samples to
|
|
* the encoder will be shifted right by this value, and similarly PCM
|
|
* output samples from the decoder will be shifted left by this value.
|
|
*
|
|
* This can be changed at run-time after initialization by calling
|
|
* #pjmedia_codec_g722_set_pcm_shift().
|
|
*
|
|
* Default: 2.
|
|
*/
|
|
#ifndef PJMEDIA_G722_DEFAULT_PCM_SHIFT
|
|
# define PJMEDIA_G722_DEFAULT_PCM_SHIFT 2
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Specifies whether G.722 PCM shifting should be stopped when clipping
|
|
* detected in the decoder. Enabling this feature can be useful when
|
|
* talking to G.722 implementation that uses 16 bit PCM for G.722 input/
|
|
* output (for any reason it seems to work) and the PCM shifting causes
|
|
* audio clipping.
|
|
*
|
|
* See also #PJMEDIA_G722_DEFAULT_PCM_SHIFT.
|
|
*
|
|
* Default: enabled.
|
|
*/
|
|
#ifndef PJMEDIA_G722_STOP_PCM_SHIFT_ON_CLIPPING
|
|
# define PJMEDIA_G722_STOP_PCM_SHIFT_ON_CLIPPING 1
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Enable the features provided by Intel IPP libraries, for example
|
|
* codecs such as G.729, G.723.1, G.726, G.728, G.722.1, and AMR.
|
|
*
|
|
* By default this is disabled. Please follow the instructions in
|
|
* http://trac.pjsip.org/repos/wiki/Intel_IPP_Codecs on how to setup
|
|
* Intel IPP with PJMEDIA.
|
|
*/
|
|
#ifndef PJMEDIA_HAS_INTEL_IPP
|
|
# define PJMEDIA_HAS_INTEL_IPP 0
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Visual Studio only: when this option is set, the Intel IPP libraries
|
|
* will be automatically linked to application using pragma(comment)
|
|
* constructs. This is convenient, however it will only link with
|
|
* the stub libraries and the Intel IPP DLL's will be required when
|
|
* distributing the application.
|
|
*
|
|
* If application wants to link with the different types of the Intel IPP
|
|
* libraries (for example, the static libraries), it must set this option
|
|
* to zero and specify the Intel IPP libraries in the application's input
|
|
* library specification manually.
|
|
*
|
|
* Default 1.
|
|
*/
|
|
#ifndef PJMEDIA_AUTO_LINK_IPP_LIBS
|
|
# define PJMEDIA_AUTO_LINK_IPP_LIBS 1
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Enable Intel IPP AMR codec. This also needs to be enabled when AMR WB
|
|
* codec is enabled. This option is only used when PJMEDIA_HAS_INTEL_IPP
|
|
* is enabled.
|
|
*
|
|
* Default: 1
|
|
*/
|
|
#ifndef PJMEDIA_HAS_INTEL_IPP_CODEC_AMR
|
|
# define PJMEDIA_HAS_INTEL_IPP_CODEC_AMR 1
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Enable Intel IPP AMR wideband codec. The PJMEDIA_HAS_INTEL_IPP_CODEC_AMR
|
|
* option must also be enabled to use this codec. This option is only used
|
|
* when PJMEDIA_HAS_INTEL_IPP is enabled.
|
|
*
|
|
* Default: 1
|
|
*/
|
|
#ifndef PJMEDIA_HAS_INTEL_IPP_CODEC_AMRWB
|
|
# define PJMEDIA_HAS_INTEL_IPP_CODEC_AMRWB 1
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Enable Intel IPP G.729 codec. This option is only used when
|
|
* PJMEDIA_HAS_INTEL_IPP is enabled.
|
|
*
|
|
* Default: 1
|
|
*/
|
|
#ifndef PJMEDIA_HAS_INTEL_IPP_CODEC_G729
|
|
# define PJMEDIA_HAS_INTEL_IPP_CODEC_G729 1
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Enable Intel IPP G.723.1 codec. This option is only used when
|
|
* PJMEDIA_HAS_INTEL_IPP is enabled.
|
|
*
|
|
* Default: 1
|
|
*/
|
|
#ifndef PJMEDIA_HAS_INTEL_IPP_CODEC_G723_1
|
|
# define PJMEDIA_HAS_INTEL_IPP_CODEC_G723_1 1
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Enable Intel IPP G.726 codec. This option is only used when
|
|
* PJMEDIA_HAS_INTEL_IPP is enabled.
|
|
*
|
|
* Default: 1
|
|
*/
|
|
#ifndef PJMEDIA_HAS_INTEL_IPP_CODEC_G726
|
|
# define PJMEDIA_HAS_INTEL_IPP_CODEC_G726 1
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Enable Intel IPP G.728 codec. This option is only used when
|
|
* PJMEDIA_HAS_INTEL_IPP is enabled.
|
|
*
|
|
* Default: 1
|
|
*/
|
|
#ifndef PJMEDIA_HAS_INTEL_IPP_CODEC_G728
|
|
# define PJMEDIA_HAS_INTEL_IPP_CODEC_G728 1
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Enable Intel IPP G.722.1 codec. This option is only used when
|
|
* PJMEDIA_HAS_INTEL_IPP is enabled.
|
|
*
|
|
* Default: 1
|
|
*/
|
|
#ifndef PJMEDIA_HAS_INTEL_IPP_CODEC_G722_1
|
|
# define PJMEDIA_HAS_INTEL_IPP_CODEC_G722_1 1
|
|
#endif
|
|
|
|
/**
|
|
* Enable Passthrough codecs.
|
|
*
|
|
* Default: 0
|
|
*/
|
|
#ifndef PJMEDIA_HAS_PASSTHROUGH_CODECS
|
|
# define PJMEDIA_HAS_PASSTHROUGH_CODECS 0
|
|
#endif
|
|
|
|
/**
|
|
* Enable AMR passthrough codec.
|
|
*
|
|
* Default: 1
|
|
*/
|
|
#ifndef PJMEDIA_HAS_PASSTHROUGH_CODEC_AMR
|
|
# define PJMEDIA_HAS_PASSTHROUGH_CODEC_AMR 1
|
|
#endif
|
|
|
|
/**
|
|
* Enable G.729 passthrough codec.
|
|
*
|
|
* Default: 1
|
|
*/
|
|
#ifndef PJMEDIA_HAS_PASSTHROUGH_CODEC_G729
|
|
# define PJMEDIA_HAS_PASSTHROUGH_CODEC_G729 1
|
|
#endif
|
|
|
|
/**
|
|
* Enable iLBC passthrough codec.
|
|
*
|
|
* Default: 1
|
|
*/
|
|
#ifndef PJMEDIA_HAS_PASSTHROUGH_CODEC_ILBC
|
|
# define PJMEDIA_HAS_PASSTHROUGH_CODEC_ILBC 1
|
|
#endif
|
|
|
|
/**
|
|
* Enable PCMU passthrough codec.
|
|
*
|
|
* Default: 1
|
|
*/
|
|
#ifndef PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMU
|
|
# define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMU 1
|
|
#endif
|
|
|
|
/**
|
|
* Enable PCMA passthrough codec.
|
|
*
|
|
* Default: 1
|
|
*/
|
|
#ifndef PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMA
|
|
# define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMA 1
|
|
#endif
|
|
|
|
/* If passthrough and PCMU/PCMA are enabled, disable the software
|
|
* G.711 codec
|
|
*/
|
|
#if PJMEDIA_HAS_PASSTHROUGH_CODECS && \
|
|
(PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMU || PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMA)
|
|
# undef PJMEDIA_HAS_G711_CODEC
|
|
# define PJMEDIA_HAS_G711_CODEC 0
|
|
#endif
|
|
|
|
|
|
/**
|
|
* G.722.1 codec is disabled by default.
|
|
*/
|
|
#ifndef PJMEDIA_HAS_G7221_CODEC
|
|
# define PJMEDIA_HAS_G7221_CODEC 0
|
|
#endif
|
|
|
|
/**
|
|
* Enable OpenCORE AMR-NB codec.
|
|
* See https://github.com/pjsip/pjproject/issues/1388 for some info.
|
|
*
|
|
* Default: 0
|
|
*/
|
|
#ifndef PJMEDIA_HAS_OPENCORE_AMRNB_CODEC
|
|
# define PJMEDIA_HAS_OPENCORE_AMRNB_CODEC 0
|
|
#endif
|
|
|
|
/**
|
|
* Enable OpenCORE AMR-WB codec.
|
|
* See https://github.com/pjsip/pjproject/issues/1608 for some info.
|
|
*
|
|
* Default: 0
|
|
*/
|
|
#ifndef PJMEDIA_HAS_OPENCORE_AMRWB_CODEC
|
|
# define PJMEDIA_HAS_OPENCORE_AMRWB_CODEC 0
|
|
#endif
|
|
|
|
/**
|
|
* Link with libopencore-amrXX via pragma comment on Visual Studio.
|
|
* This option only makes sense if PJMEDIA_HAS_OPENCORE_AMRNB/WB_CODEC
|
|
* is enabled.
|
|
*
|
|
* Default: 1
|
|
*/
|
|
#ifndef PJMEDIA_AUTO_LINK_OPENCORE_AMR_LIBS
|
|
# define PJMEDIA_AUTO_LINK_OPENCORE_AMR_LIBS 1
|
|
#endif
|
|
|
|
/**
|
|
* Link with libopencore-amrXX.a that has been produced with gcc.
|
|
* This option only makes sense if PJMEDIA_HAS_OPENCORE_AMRNB/WB_CODEC
|
|
* and PJMEDIA_AUTO_LINK_OPENCORE_AMR_LIBS are enabled.
|
|
*
|
|
* Default: 1
|
|
*/
|
|
#ifndef PJMEDIA_OPENCORE_AMR_BUILT_WITH_GCC
|
|
# define PJMEDIA_OPENCORE_AMR_BUILT_WITH_GCC 1
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Default G.722.1 codec encoder and decoder level adjustment.
|
|
* If the value is non-zero, then PCM input samples to the encoder will
|
|
* be shifted right by this value, and similarly PCM output samples from
|
|
* the decoder will be shifted left by this value.
|
|
*
|
|
* This can be changed at run-time after initialization by calling
|
|
* #pjmedia_codec_g7221_set_pcm_shift().
|
|
*/
|
|
#ifndef PJMEDIA_G7221_DEFAULT_PCM_SHIFT
|
|
# define PJMEDIA_G7221_DEFAULT_PCM_SHIFT 1
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Enabling both G.722.1 codec implementations, internal PJMEDIA and IPP,
|
|
* may cause problem in SDP, i.e: payload types duplications. So, let's
|
|
* just trap such case here at compile time.
|
|
*
|
|
* Application can control which implementation to be used by manipulating
|
|
* PJMEDIA_HAS_G7221_CODEC and PJMEDIA_HAS_INTEL_IPP_CODEC_G722_1 in
|
|
* config_site.h.
|
|
*/
|
|
#if (PJMEDIA_HAS_G7221_CODEC != 0) && (PJMEDIA_HAS_INTEL_IPP != 0) && \
|
|
(PJMEDIA_HAS_INTEL_IPP_CODEC_G722_1 != 0)
|
|
# error Only one G.722.1 implementation can be enabled at the same time. \
|
|
Please use PJMEDIA_HAS_G7221_CODEC and \
|
|
PJMEDIA_HAS_INTEL_IPP_CODEC_G722_1 in your config_site.h \
|
|
to control which implementation to be used.
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Enable SILK codec.
|
|
*
|
|
* Default: 0
|
|
*/
|
|
#ifndef PJMEDIA_HAS_SILK_CODEC
|
|
# define PJMEDIA_HAS_SILK_CODEC 0
|
|
#endif
|
|
|
|
|
|
/**
|
|
* SILK codec default complexity setting, valid values are 0 (lowest), 1,
|
|
* and 2.
|
|
*
|
|
* Default: 2
|
|
*/
|
|
#ifndef PJMEDIA_CODEC_SILK_DEFAULT_COMPLEXITY
|
|
# define PJMEDIA_CODEC_SILK_DEFAULT_COMPLEXITY 2
|
|
#endif
|
|
|
|
/**
|
|
* SILK codec default quality setting, valid values are ranging from
|
|
* 0 (lowest) to 10. Please note that pjsua-lib may override this setting
|
|
* via its codec quality setting (i.e PJSUA_DEFAULT_CODEC_QUALITY).
|
|
*
|
|
* Default: 10
|
|
*/
|
|
#ifndef PJMEDIA_CODEC_SILK_DEFAULT_QUALITY
|
|
# define PJMEDIA_CODEC_SILK_DEFAULT_QUALITY 10
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Enable OPUS codec.
|
|
*
|
|
* Default: 0
|
|
*/
|
|
#ifndef PJMEDIA_HAS_OPUS_CODEC
|
|
# define PJMEDIA_HAS_OPUS_CODEC 0
|
|
#endif
|
|
|
|
/**
|
|
* OPUS codec sample rate.
|
|
*
|
|
* Default: 48000
|
|
*/
|
|
#ifndef PJMEDIA_CODEC_OPUS_DEFAULT_SAMPLE_RATE
|
|
# define PJMEDIA_CODEC_OPUS_DEFAULT_SAMPLE_RATE 48000
|
|
#endif
|
|
|
|
/**
|
|
* OPUS codec default maximum average bit rate.
|
|
*
|
|
* Default: 0 (leave it to default value specified by Opus, which will
|
|
* take into account factors such as media content (speech/music), sample
|
|
* rate, channel count, etc).
|
|
*/
|
|
#ifndef PJMEDIA_CODEC_OPUS_DEFAULT_BIT_RATE
|
|
# define PJMEDIA_CODEC_OPUS_DEFAULT_BIT_RATE 0
|
|
#endif
|
|
|
|
|
|
/**
|
|
* OPUS default encoding complexity, which is an integer from
|
|
* 0 to 10, where 0 is the lowest complexity and 10 is the highest.
|
|
*
|
|
* Default: 5
|
|
*/
|
|
#ifndef PJMEDIA_CODEC_OPUS_DEFAULT_COMPLEXITY
|
|
# define PJMEDIA_CODEC_OPUS_DEFAULT_COMPLEXITY 5
|
|
#endif
|
|
|
|
|
|
/**
|
|
* OPUS default CBR (constant bit rate) setting
|
|
*
|
|
* Default: PJ_FALSE (which means Opus will use VBR (variable bit rate))
|
|
*/
|
|
#ifndef PJMEDIA_CODEC_OPUS_DEFAULT_CBR
|
|
# define PJMEDIA_CODEC_OPUS_DEFAULT_CBR PJ_FALSE
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Enable G.729 codec using BCG729 backend.
|
|
*
|
|
* Default: 0
|
|
*/
|
|
#ifndef PJMEDIA_HAS_BCG729
|
|
# define PJMEDIA_HAS_BCG729 0
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Enable Lyra codec.
|
|
*
|
|
* Default: 0
|
|
*/
|
|
#ifndef PJMEDIA_HAS_LYRA_CODEC
|
|
# define PJMEDIA_HAS_LYRA_CODEC 0
|
|
#endif
|
|
|
|
/**
|
|
* Lyra default bitrate setting
|
|
*
|
|
* Default: 3200 (available bitrate:3200, 6000, 9200)
|
|
*/
|
|
#ifndef PJMEDIA_CODEC_LYRA_DEFAULT_BIT_RATE
|
|
# define PJMEDIA_CODEC_LYRA_DEFAULT_BIT_RATE 3200
|
|
#endif
|
|
|
|
/**
|
|
* Lyra default model path containing lyra_config.binarypb, lyragan.tflite,
|
|
* quantizer.tflite and soundstream_encoder.tflite file. If autoconf is used,
|
|
* it will be set to "[lyra src folder]/model_coeffs".
|
|
*
|
|
* Default: "model_coeffs"
|
|
*/
|
|
#ifndef PJMEDIA_CODEC_LYRA_DEFAULT_MODEL_PATH
|
|
# define PJMEDIA_CODEC_LYRA_DEFAULT_MODEL_PATH "model_coeffs"
|
|
#endif
|
|
|
|
/**
|
|
* Settings to enable Lyra codec 8KHz. This option is only used
|
|
* when PJMEDIA_HAS_LYRA_CODEC is enabled.
|
|
*
|
|
* Default: 0
|
|
*/
|
|
#ifndef PJMEDIA_CODEC_LYRA_HAS_8KHZ
|
|
# define PJMEDIA_CODEC_LYRA_HAS_8KHZ 0
|
|
#endif
|
|
|
|
/**
|
|
* Settings to enable Lyra codec 16KHz. This option is only used
|
|
* when PJMEDIA_HAS_LYRA_CODEC is enabled.
|
|
*
|
|
* Default: 1
|
|
*/
|
|
#ifndef PJMEDIA_CODEC_LYRA_HAS_16KHZ
|
|
# define PJMEDIA_CODEC_LYRA_HAS_16KHZ 1
|
|
#endif
|
|
|
|
/**
|
|
* Settings to enable Lyra codec 32KHz. This option is only used
|
|
* when PJMEDIA_HAS_LYRA_CODEC is enabled.
|
|
*
|
|
* Default: 0
|
|
*/
|
|
#ifndef PJMEDIA_CODEC_LYRA_HAS_32KHZ
|
|
# define PJMEDIA_CODEC_LYRA_HAS_32KHZ 0
|
|
#endif
|
|
|
|
/**
|
|
* Settings to enable Lyra codec 48KHz. This option is only used
|
|
* when PJMEDIA_HAS_LYRA_CODEC is enabled.
|
|
*
|
|
* Default: 0
|
|
*/
|
|
#ifndef PJMEDIA_CODEC_LYRA_HAS_48KHZ
|
|
# define PJMEDIA_CODEC_LYRA_HAS_48KHZ 0
|
|
#endif
|
|
|
|
/**
|
|
* Specify if FFMPEG codecs are available.
|
|
*
|
|
* Default: PJMEDIA_HAS_LIBAVFORMAT
|
|
*/
|
|
#ifndef PJMEDIA_HAS_FFMPEG_CODEC
|
|
# define PJMEDIA_HAS_FFMPEG_CODEC PJMEDIA_HAS_LIBAVFORMAT
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Specify if FFMPEG video codecs are available.
|
|
*
|
|
* Default: PJMEDIA_HAS_FFMPEG_CODEC
|
|
*/
|
|
#ifndef PJMEDIA_HAS_FFMPEG_VID_CODEC
|
|
# define PJMEDIA_HAS_FFMPEG_VID_CODEC PJMEDIA_HAS_FFMPEG_CODEC
|
|
#endif
|
|
|
|
/**
|
|
* Enable FFMPEG H263+/H263-1998 codec.
|
|
*
|
|
* Default: 1
|
|
*/
|
|
#ifndef PJMEDIA_HAS_FFMPEG_CODEC_H263P
|
|
# define PJMEDIA_HAS_FFMPEG_CODEC_H263P PJMEDIA_HAS_FFMPEG_VID_CODEC
|
|
#endif
|
|
|
|
/**
|
|
* Enable FFMPEG H264 codec (requires libx264).
|
|
*
|
|
* Default: disabled when OpenH264 is used, otherwise it is set to
|
|
* PJMEDIA_HAS_FFMPEG_VID_CODEC
|
|
*/
|
|
#ifndef PJMEDIA_HAS_FFMPEG_CODEC_H264
|
|
# if defined(PJMEDIA_HAS_OPENH264_CODEC) && PJMEDIA_HAS_OPENH264_CODEC != 0
|
|
# define PJMEDIA_HAS_FFMPEG_CODEC_H264 0
|
|
# else
|
|
# define PJMEDIA_HAS_FFMPEG_CODEC_H264 PJMEDIA_HAS_FFMPEG_VID_CODEC
|
|
# endif
|
|
#endif
|
|
|
|
/**
|
|
* Enable FFMPEG VPX codec (requires libvpx)
|
|
*/
|
|
#ifndef PJMEDIA_HAS_FFMPEG_CODEC_VP8
|
|
# if defined(PJMEDIA_HAS_VPX_CODEC) && PJMEDIA_HAS_VPX_CODEC != 0
|
|
# define PJMEDIA_HAS_FFMPEG_CODEC_VP8 0
|
|
# else
|
|
# define PJMEDIA_HAS_FFMPEG_CODEC_VP8 1
|
|
# endif
|
|
#endif
|
|
|
|
#ifndef PJMEDIA_HAS_FFMPEG_CODEC_VP9
|
|
# if defined(PJMEDIA_HAS_VPX_CODEC) && PJMEDIA_HAS_VPX_CODEC != 0
|
|
# define PJMEDIA_HAS_FFMPEG_CODEC_VP9 0
|
|
# else
|
|
# define PJMEDIA_HAS_FFMPEG_CODEC_VP9 1
|
|
# endif
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Determine the log level of the native openH264 log which will be forwarded
|
|
* to the library's log.
|
|
* Set to WELS_LOG_QUIET to disable logging, or WELS_LOG_DETAIL for debugging.
|
|
*
|
|
* Default: WELS_LOG_ERROR.
|
|
*/
|
|
#ifndef PJMEDIA_CODEC_OPENH264_LOG_LEVEL
|
|
# define PJMEDIA_CODEC_OPENH264_LOG_LEVEL WELS_LOG_ERROR
|
|
#endif
|
|
|
|
/**
|
|
* Enable VPX VP8 codec.
|
|
*
|
|
* Default: 1
|
|
*/
|
|
#ifndef PJMEDIA_HAS_VPX_CODEC_VP8
|
|
# define PJMEDIA_HAS_VPX_CODEC_VP8 1
|
|
#endif
|
|
|
|
/**
|
|
* Enable VPX VP9 codec.
|
|
*
|
|
* Default: 0 (disabled)
|
|
*/
|
|
#ifndef PJMEDIA_HAS_VPX_CODEC_VP9
|
|
# define PJMEDIA_HAS_VPX_CODEC_VP9 0
|
|
#endif
|
|
|
|
/**
|
|
* Enable Android MediaCodec AMRNB codec.
|
|
*
|
|
* Default: 1
|
|
*/
|
|
#ifndef PJMEDIA_HAS_AND_MEDIA_AMRNB
|
|
# define PJMEDIA_HAS_AND_MEDIA_AMRNB 1
|
|
#endif
|
|
|
|
/**
|
|
* Enable Android MediaCodec AMRWB codec.
|
|
*
|
|
* Default: 1
|
|
*/
|
|
#ifndef PJMEDIA_HAS_AND_MEDIA_AMRWB
|
|
# define PJMEDIA_HAS_AND_MEDIA_AMRWB 1
|
|
#endif
|
|
|
|
/**
|
|
* Enable Android MediaCodec AVC/H264 codec.
|
|
*
|
|
* Default: 1
|
|
*/
|
|
#ifndef PJMEDIA_HAS_AND_MEDIA_H264
|
|
# define PJMEDIA_HAS_AND_MEDIA_H264 1
|
|
#endif
|
|
|
|
/**
|
|
* Enable Android MediaCodec VP8 codec.
|
|
*
|
|
* Default: 1
|
|
*/
|
|
#ifndef PJMEDIA_HAS_AND_MEDIA_VP8
|
|
# define PJMEDIA_HAS_AND_MEDIA_VP8 1
|
|
#endif
|
|
|
|
/**
|
|
* Enable Android MediaCodec VP9 codec.
|
|
*
|
|
* Default: 1
|
|
*/
|
|
#ifndef PJMEDIA_HAS_AND_MEDIA_VP9
|
|
# define PJMEDIA_HAS_AND_MEDIA_VP9 1
|
|
#endif
|
|
|
|
/**
|
|
* Prioritize to use software video encoder on Android MediaCodec.
|
|
* Set to 0 to prioritize Hardware encoder.
|
|
* Note: based on test, software encoder configuration provided the most stable
|
|
* configuration.
|
|
*
|
|
* Default: 1
|
|
*/
|
|
#ifndef PJMEDIA_AND_MEDIA_PRIO_SW_VID_ENC
|
|
# define PJMEDIA_AND_MEDIA_PRIO_SW_VID_ENC 1
|
|
#endif
|
|
|
|
/**
|
|
* Prioritize to use software video encoder on Android MediaCodec.
|
|
* Set to 0 to prioritize Hardware encoder.
|
|
* Note: based on test, software decoder configuration provided the most stable
|
|
* configuration.
|
|
*
|
|
* Default: 1
|
|
*/
|
|
#ifndef PJMEDIA_AND_MEDIA_PRIO_SW_VID_DEC
|
|
# define PJMEDIA_AND_MEDIA_PRIO_SW_VID_DEC 1
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Maximum interval between keyframes for Apple VideoToolbox codecs,
|
|
* in second.
|
|
*
|
|
* Default: 5 (seconds)
|
|
*/
|
|
#ifndef PJMEDIA_CODEC_VID_TOOLBOX_MAX_KEYFRAME_INTERVAL
|
|
# define PJMEDIA_CODEC_VID_TOOLBOX_MAX_KEYFRAME_INTERVAL 5
|
|
#endif
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
|
|
|
|
#endif /* __PJMEDIA_CODEC_CONFIG_H__ */
|