Group pjmedia_codec_config

group pjmedia_codec_config

Various compile time settings such as to enable/disable codecs.

Defines

PJMEDIA_HAS_L16_CODEC

Unless specified otherwise, L16 codec is included by default.

PJMEDIA_CODEC_L16_HAS_8KHZ_MONO

Settings to enable L16 codec 8KHz, mono. By default it is disabled.

PJMEDIA_CODEC_L16_HAS_8KHZ_STEREO

Settings to enable L16 codec 8KHz, stereo. By default it is disabled.

PJMEDIA_CODEC_L16_HAS_16KHZ_MONO

Settings to enable L16 codec 16KHz, mono. By default it is disabled.

PJMEDIA_CODEC_L16_HAS_16KHZ_STEREO

Settings to enable L16 codec 16KHz, stereo. By default it is disabled.

PJMEDIA_CODEC_L16_HAS_48KHZ_MONO

Settings to enable L16 codec 48KHz, mono. By default it is disabled.

PJMEDIA_CODEC_L16_HAS_48KHZ_STEREO

Settings to enable L16 codec 48KHz, stereo. By default it is disabled.

PJMEDIA_HAS_GSM_CODEC

Unless specified otherwise, GSM codec is included by default.

PJMEDIA_HAS_SPEEX_CODEC

Unless specified otherwise, Speex codec is included by default.

PJMEDIA_CODEC_SPEEX_DEFAULT_COMPLEXITY

Speex codec default complexity setting.

PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY

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

PJMEDIA_HAS_ILBC_CODEC

Unless specified otherwise, iLBC codec is included by default.

PJMEDIA_HAS_G722_CODEC

Unless specified otherwise, G.722 codec is included by default.

PJMEDIA_POOL_LEN_G722_CODEC

Initial memory block for G.722 codec implementation.

PJMEDIA_POOL_INC_G722_CODEC

Memory increment for G.722 codec implementation.

PJMEDIA_G722_DEFAULT_PCM_SHIFT

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.

PJMEDIA_G722_STOP_PCM_SHIFT_ON_CLIPPING

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.

PJMEDIA_HAS_INTEL_IPP

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.

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.

PJMEDIA_HAS_INTEL_IPP_CODEC_AMR

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

PJMEDIA_HAS_INTEL_IPP_CODEC_AMRWB

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

PJMEDIA_HAS_INTEL_IPP_CODEC_G729

Enable Intel IPP G.729 codec. This option is only used when PJMEDIA_HAS_INTEL_IPP is enabled.

Default: 1

PJMEDIA_HAS_INTEL_IPP_CODEC_G723_1

Enable Intel IPP G.723.1 codec. This option is only used when PJMEDIA_HAS_INTEL_IPP is enabled.

Default: 1

PJMEDIA_HAS_INTEL_IPP_CODEC_G726

Enable Intel IPP G.726 codec. This option is only used when PJMEDIA_HAS_INTEL_IPP is enabled.

Default: 1

PJMEDIA_HAS_INTEL_IPP_CODEC_G728

Enable Intel IPP G.728 codec. This option is only used when PJMEDIA_HAS_INTEL_IPP is enabled.

Default: 1

PJMEDIA_HAS_INTEL_IPP_CODEC_G722_1

Enable Intel IPP G.722.1 codec. This option is only used when PJMEDIA_HAS_INTEL_IPP is enabled.

Default: 1

PJMEDIA_HAS_PASSTHROUGH_CODECS

Enable Passthrough codecs.

Default: 0

PJMEDIA_HAS_PASSTHROUGH_CODEC_AMR

Enable AMR passthrough codec.

Default: 1

PJMEDIA_HAS_PASSTHROUGH_CODEC_G729

Enable G.729 passthrough codec.

Default: 1

PJMEDIA_HAS_PASSTHROUGH_CODEC_ILBC

Enable iLBC passthrough codec.

Default: 1

PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMU

Enable PCMU passthrough codec.

Default: 1

PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMA

Enable PCMA passthrough codec.

Default: 1

PJMEDIA_HAS_G7221_CODEC

G.722.1 codec is disabled by default.

PJMEDIA_HAS_OPENCORE_AMRNB_CODEC

Enable OpenCORE AMR-NB codec. See https://github.com/pjsip/pjproject/issues/1388 for some info.

Default: 0

PJMEDIA_HAS_OPENCORE_AMRWB_CODEC

Enable OpenCORE AMR-WB codec. See https://github.com/pjsip/pjproject/issues/1608 for some info.

Default: 0

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

PJMEDIA_OPENCORE_AMR_BUILT_WITH_GCC

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

PJMEDIA_G7221_DEFAULT_PCM_SHIFT

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().

PJMEDIA_HAS_SILK_CODEC

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. Enable SILK codec.

Default: 0

PJMEDIA_CODEC_SILK_DEFAULT_COMPLEXITY

SILK codec default complexity setting, valid values are 0 (lowest), 1, and 2.

Default: 2

PJMEDIA_CODEC_SILK_DEFAULT_QUALITY

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

PJMEDIA_HAS_OPUS_CODEC

Enable OPUS codec.

Default: 0

PJMEDIA_CODEC_OPUS_DEFAULT_SAMPLE_RATE

OPUS codec sample rate.

Default: 48000

PJMEDIA_CODEC_OPUS_DEFAULT_BIT_RATE

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

PJMEDIA_CODEC_OPUS_DEFAULT_COMPLEXITY

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

PJMEDIA_CODEC_OPUS_DEFAULT_CBR

OPUS default CBR (constant bit rate) setting

Default: PJ_FALSE (which means Opus will use VBR (variable bit rate))

PJMEDIA_HAS_BCG729

Enable G.729 codec using BCG729 backend.

Default: 0

PJMEDIA_HAS_FFMPEG_CODEC

Specify if FFMPEG codecs are available.

Default: PJMEDIA_HAS_LIBAVFORMAT

PJMEDIA_HAS_FFMPEG_VID_CODEC

Specify if FFMPEG video codecs are available.

Default: PJMEDIA_HAS_FFMPEG_CODEC

PJMEDIA_HAS_FFMPEG_CODEC_H263P

Enable FFMPEG H263+/H263-1998 codec.

Default: 1

PJMEDIA_HAS_FFMPEG_CODEC_H264

Enable FFMPEG H264 codec (requires libx264).

Default: disabled when OpenH264 is used, otherwise it is set to PJMEDIA_HAS_FFMPEG_VID_CODEC

PJMEDIA_HAS_FFMPEG_CODEC_VP8

Enable FFMPEG VPX codec (requires libvpx)

PJMEDIA_HAS_FFMPEG_CODEC_VP9
PJMEDIA_CODEC_OPENH264_LOG_LEVEL

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.

PJMEDIA_HAS_VPX_CODEC_VP8

Enable VPX VP8 codec.

Default: 1

PJMEDIA_HAS_VPX_CODEC_VP9

Enable VPX VP9 codec.

Default: 0 (disabled)

PJMEDIA_HAS_AND_MEDIA_AMRNB

Enable Android MediaCodec AMRNB codec.

Default: 1

PJMEDIA_HAS_AND_MEDIA_AMRWB

Enable Android MediaCodec AMRWB codec.

Default: 1

PJMEDIA_HAS_AND_MEDIA_H264

Enable Android MediaCodec AVC/H264 codec.

Default: 1

PJMEDIA_HAS_AND_MEDIA_VP8

Enable Android MediaCodec VP8 codec.

Default: 1

PJMEDIA_HAS_AND_MEDIA_VP9

Enable Android MediaCodec VP9 codec.

Default: 1

PJMEDIA_AND_MEDIA_PRIO_SW_VID_ENC

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

PJMEDIA_AND_MEDIA_PRIO_SW_VID_DEC

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

PJMEDIA_CODEC_VID_TOOLBOX_MAX_KEYFRAME_INTERVAL

Maximum interval between keyframes for Apple VideoToolbox codecs, in second.

Default: 5 (seconds)