Group PJMED_G722

group PJMED_G722

Implementation of G.722 Codec.

This section describes functions to initialize and register G.722 codec factory to the codec manager. After the codec factory has been registered, application can use Codec Framework API to manipulate the codec.

The G.722 implementation uses 16-bit PCM with sampling rate 16000Hz and 20ms frame length resulting in 64kbps bitrate.

The G.722 codec implementation is provided as part of pjmedia-codec library, and does not depend on external G.722 codec implementation.

Codec Settings

General Settings

General codec settings for this codec such as VAD and PLC can be manipulated through the setting field in pjmedia_codec_param. Please see the documentation of pjmedia_codec_param for more info.

Codec Specific Settings

Currently none.


pj_status_t pjmedia_codec_g722_init(pjmedia_endpt *endpt)

Initialize and register G.722 codec factory to pjmedia endpoint.


endpt – The pjmedia endpoint.


PJ_SUCCESS on success.

pj_status_t pjmedia_codec_g722_deinit(void)

Unregister G.722 codec factory from pjmedia endpoint and cleanup resources allocated by the factory.


PJ_SUCCESS on success.

pj_status_t pjmedia_codec_g722_set_pcm_shift(unsigned val)

Set the G.722 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.

Default value is PJMEDIA_G722_DEFAULT_PCM_SHIFT.


val – The value


PJ_SUCCESS on success.