123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789 |
- /*
- * 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__ */
|