Dialogic
®
Multimedia Software for ATCA Release 1.0 Release Update, Rev 06 — January 23, 2008 37
Dialogic Corporation
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 non-consecutive vocoder frames.
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.