ipmMediaInfo.MediaData[unCount].mediaInfo.AudioCoderInfo.eCoderType = CODER_TYPE_AMRNB_7_4k; ipmMediaInfo.MediaData[unCount].mediaInfo.AudioCoderInfo.eFrameSize = CODER_FRAMESIZE_20; ipmMediaInfo.MediaData[unCount].mediaInfo.AudioCoderInfo.unFramesPerPkt = 1; ipmMediaInfo.MediaData[unCount].mediaInfo.AudioCoderInfo.eVadEnable = CODER_VAD_ENABLE ipmMediaInfo.MediaData[unCount].mediaInfo.AudioCoderInfo.unCoderPayloadType = 96; ipmMediaInfo.MediaData[unCount].mediaInfo.AudioCoderInfo.unRedPayloadType = 0
unCount++;
ipmMediaInfo.MediaData[unCount].eMediaType = MEDIATYPE_AUDIO_LOCAL_CODER_OPTIONS_INFO; ipmMediaInfo.MediaData[unCount].mediaInfo.AudioCoderOptionsInfo = {0}; ipmMediaInfo.MediaData[unCount].mediaInfo.AudioCoderOptionsInfo.unVersion =
IPM_AUDIO_CODER_OPTIONS_INFO_VERSION;
ipmMediaInfo.MediaData[unCount].mediaInfo.AudioCoderOptionsInfo.unCoderOptions=
CODER_OPT_AMR_CMR_LIMIT CODER_OPT_AMR_EFFICIENT;
unCount++;
ipmMediaInfo.MediaData[unCount].eMediaType = MEDIATYPE_AUDIO_REMOTE_CODER_OPTIONS_INFO; ipmMediaInfo.MediaData[unCount].mediaInfo.AudioCoderOptionsInfo = {0}; ipmMediaInfo.MediaData[unCount].mediaInfo.AudioCoderOptionsInfo.unVersion =
IPM_AUDIO_CODER_OPTIONS_INFO_VERSION;
ipmMediaInfo.MediaData[unCount].mediaInfo.AudioCoderOptionsInfo.unCoderOptions=
CODER_OPT_AMR_EFFICIENT;
unCount++
ipmMediaInfo.unCount = unCount;
Using Enhanced Variable Rate Codecs
Enhanced Variable Rate Codecs (EVRCs) as specified in RFC 3558 - RTP Payload Format for Enhanced Variable Rate Codecs (EVRC) and Selectable Mode Vocoders (SMV) are supported.
When using EVRCs, more than one codec data frame may be included in a single interleaved/bundled packet by a sender. This is accomplished by:
•Bundling - A technique used to spread the transmission overhead of the RTP and payload header over multiple vocoder frames.
•Interleaving - A technique used to reduce the listener’s perception of data loss by spreading such a loss over
EVRC and similar vocoders can compensate for an occasional lost frame, but speech quality degrades exponentially with consecutive frame loss.
Bundling is done using the Frames Per Packet field in the
MEDIATYPE_AUDIO_REMOTE_CODER_INFO structure, as is the case with most codecs. Frames per packet values of 1 to 3 are allowed. Note that the RFC definition of bundle describes the number of additional frames per packet, so a frame per packet value of 1 would be the same as a bundle value of 0.
Interleaving is accomplished using parameter 1 of the
MEDIATYPE_AUDIO_REMOTE_CODER_OPTIONS_INFO structure. This parameter can be set from 0 to 7; 0 indicates do not use interleaving. Interleaving should only be used when the frames per packet value is 2 or more.
When using the IP Media Library API, interleaving option can be specified in the
IPM_AUDIO_CODER_OPTIONS_INFO data structure.
Dialogic® Multimedia Software for ATCA Release 1.0 Release Update, Rev 06 — January 23, 2008 | 37 |
Dialogic Corporation |
|