adding default values of sampling rate based on codec type

This commit is contained in:
Kapil Gupta 2012-08-07 05:56:09 -04:00
parent f7ca7ebb71
commit 4200a427c8

View File

@ -885,17 +885,59 @@ void mgco_handle_sdp_media_param(CmSdpMedPar *s, mg_termination_t* term, mgco_sd
if((NOTPRSNT != r->num.pres) && (0 != r->num.val) && (NULL != r->fmts[0])){
const char* name = mg_get_codec_name(mg_profile, r->fmts[0]->val.val);
if(name){
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, " Updating codec to[%d], name[%s] \n",
r->fmts[0]->val.val, name);
if(MG_TERM_RTP == term->type){
term->u.rtp.codec = name;
term->u.rtp.pt = r->fmts[0]->val.val;
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG,"Updating pt to [%d]\n",
term->u.rtp.pt);
/* Set default value of sampling rate depends on codec */
switch(megaco_codec_parse(name))
{
case MEGACO_CODEC_PCMA:
{
term->u.rtp.rate = 8000;
break;
}
case MEGACO_CODEC_PCMU:
{
/* TODO - proper values */
term->u.rtp.rate = 8000;
break;
}
case MEGACO_CODEC_G729:
{
/* TODO - proper values */
term->u.rtp.rate = 8000;
break;
}
case MEGACO_CODEC_G723_1:
{
/* TODO - proper values */
term->u.rtp.rate = 8000;
break;
}
case MEGACO_CODEC_ILBC:
{
/* TODO - proper values */
term->u.rtp.rate = 8000;
break;
}
default:
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR,
" not updating sampling rate \n");
break;
}
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG,
" Updating codec to[%d], name[%s] \n",
r->fmts[0]->val.val, name);
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG,
"Updating pt to [%d], rate to[%d]\n",
term->u.rtp.pt, term->u.rtp.rate);
}
}else{
/* ERROR */
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, " NO Codec Name found against iana[%d] \n", r->fmts[0]->val.val);
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR,
" NO Codec Name found against iana[%d] \n", r->fmts[0]->val.val);
}
}