Group PJMED_OPUS¶
- group PJMED_OPUS
Opus codec wrapper.
This section describes functions to initialize and register Opus codec factory to the codec manager. After the codec factory has been registered, application can use Codec Framework API to manipulate the codec.
Opus codec uses multiple bit rates, and supports fullband (48 kHz sampling rate), super wideband (24 kHz sampling rate), wideband (16 kHz sampling rate), medium band (12kHz sampling rate), and narrowband (8 kHz sampling rate).
Codec Settings¶
General codec settings for this codec such as VAD and PLC can be manipulated through the
setting
field in pjmedia_codec_param (see the documentation of pjmedia_codec_param for more info).For Opus codec specific settings, such as sample rate, channel count, bit rate, complexity, and CBR, can be configured in pjmedia_codec_opus_config. The default setting of sample rate is specified in PJMEDIA_CODEC_OPUS_DEFAULT_SAMPLE_RATE. The default setting of bitrate is specified in PJMEDIA_CODEC_OPUS_DEFAULT_BIT_RATE. And the default setting of complexity is specified in PJMEDIA_CODEC_OPUS_DEFAULT_COMPLEXITY.
After modifying any of these settings, application needs to call pjmedia_codec_opus_set_default_param(), which will generate the appropriate decoding fmtp attributes.
Here is an example of modifying the codec settings:
pjmedia_codec_param param; pjmedia_codec_opus_config opus_cfg; pjmedia_codec_mgr_get_default_param(.., ¶m); pjmedia_codec_opus_get_config(&opus_cfg); ... // Set VAD param.setting.vad = 1; // Set PLC param.setting.vad = 1; // Set sample rate opus_cfg.sample_rate = 16000; // Set channel count opus_cfg.channel_cnt = 2; // Set bit rate opus_cfg.bit_rate = 20000; ... pjmedia_codec_opus_set_default_param(&opus_cfg, ¶m);
Functions
-
pj_status_t pjmedia_codec_opus_init(pjmedia_endpt *endpt)¶
Initialize and register Opus codec factory to pjmedia endpoint.
- Parameters
endpt – The pjmedia endpoint.
- Returns
PJ_SUCCESS on success.
-
pj_status_t pjmedia_codec_opus_deinit(void)¶
Unregister Opus codec factory from pjmedia endpoint and deinitialize the Opus codec library.
- Returns
PJ_SUCCESS on success.
-
pj_status_t pjmedia_codec_opus_get_config(pjmedia_codec_opus_config *cfg)¶
Get the default Opus configuration.
- Parameters
cfg – Opus codec configuration.
- Returns
PJ_SUCCESS on success.
-
pj_status_t pjmedia_codec_opus_set_default_param(const pjmedia_codec_opus_config *cfg, pjmedia_codec_param *param)¶
Set the default Opus configuration and set the default Opus codec param. Note that the function will call pjmedia_codec_mgr_set_default_param().
- Parameters
cfg – Opus codec configuration.
param – On input, the default Opus codec parameter to be set. On output, the current default Opus codec parameter after setting. This may be different from the input because some settings can be rejected, or overwritten by the Opus codec configuration above.
- Returns
PJ_SUCCESS on success.
-
struct pjmedia_codec_opus_config¶
- #include <opus.h>
Opus codec configuration.
-
pj_status_t pjmedia_codec_opus_init(pjmedia_endpt *endpt)¶