WARNING: The online documentation has moved to https://docs.pjsip.org.

Visit the new documentation at https://docs.pjsip.org:

BLOG | DOCUMENTATION | GITHUB

Home --> Documentations --> PJMEDIA Reference

Implementation of BCG729 codecs. More...

Functions

pj_status_t pjmedia_codec_bcg729_init (pjmedia_endpt *endpt)
 
pj_status_t pjmedia_codec_bcg729_deinit (void)
 

Detailed Description

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

This codec factory contains G.729 codec.

BCG729

BCG729 is compliant with ITU-T G.729 and Annexes A, B specifications.

BCGG729 supports 16-bit PCM audio signal with sampling rate 8000Hz, frame length 10ms, and resulting in bitrate 8000bps.

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

Note that G.729 VAD status should be signalled in SDP, see more description below.

Annex B

The capability of VAD/DTX is specified in Annex B.

By default, Annex B is enabled. This default setting of Annex B can be modified using pjmedia_codec_mgr_set_default_param().

In pjmedia_codec_param, Annex B is configured via VAD setting and format parameter "annexb" in the SDP "a=fmtp" attribute in decoding fmtp field. Valid values are "yes" and "no", the implementation default is "yes". When this parameter is omitted in the SDP, the value will be "yes" (RFC 4856 Section 2.1.9).

Here is an example of modifying default setting of Annex B to be disabled using pjmedia_codec_mgr_set_default_param():

...
// Set VAD
param.setting.vad = 0;
// Set SDP format parameter
param.setting.dec_fmtp.cnt = 1;
param.setting.dec_fmtp.param[0].name = pj_str("annexb");
param.setting.dec_fmtp.param[0].val = pj_str("no");
...
pjmedia_codec_mgr_set_default_param(.., &param);
pj_status_t pjmedia_codec_mgr_get_default_param(pjmedia_codec_mgr *mgr, const pjmedia_codec_info *info, pjmedia_codec_param *param)
pj_str_t pj_str(char *str)
pj_str_t val
Definition: codec.h:253
pj_str_t name
Definition: codec.h:252
pj_uint8_t cnt
Definition: codec.h:250
struct pjmedia_codec_fmtp::param param[PJMEDIA_CODEC_MAX_FMTP_CNT]
Definition: codec.h:268
pjmedia_codec_fmtp dec_fmtp
Definition: codec.h:306
struct pjmedia_codec_param::@9 setting
Note
The difference of Annex B status in SDP offer/answer may be considered as incompatible codec in SDP negotiation.

Function Documentation

◆ pjmedia_codec_bcg729_init()

pj_status_t pjmedia_codec_bcg729_init ( pjmedia_endpt endpt)

Initialize and register BCG729 codec factory to pjmedia endpoint.

Parameters
endptThe pjmedia endpoint.
Returns
PJ_SUCCESS on success.

◆ pjmedia_codec_bcg729_deinit()

pj_status_t pjmedia_codec_bcg729_deinit ( void  )

Unregister BCG729 codec factory from pjmedia endpoint and deinitialize the BCG729 codec library.

Returns
PJ_SUCCESS on success.

References PJ_END_DECL.

 


PJMEDIA small footprint Open Source media stack
Copyright (C) 2006-2008 Teluu Inc.