Merge pull request #351 in FS/freeswitch from ~DRAGOS_OANCEA/freeswitch-dragos:rtcp_loss_fraction_codec_control-fix to master
* commit '18b47b8e781818e758bb0604b4b8e6ca2302497e': FS-7844: packet loss fraction fix when calculating loss average
This commit is contained in:
commit
d569b4ab98
|
@ -5674,12 +5674,12 @@ static switch_status_t process_rtcp_report(switch_rtp_t *rtp_session, rtcp_msg_t
|
||||||
for (i = 0; i < (int)msg->header.count && i < MAX_REPORT_BLOCKS ; i++) {
|
for (i = 0; i < (int)msg->header.count && i < MAX_REPORT_BLOCKS ; i++) {
|
||||||
struct switch_rtcp_report_block *report = (struct switch_rtcp_report_block *) (msg->body + (sizeof(struct switch_rtcp_sr_head) + (i * sizeof(struct switch_rtcp_report_block))));
|
struct switch_rtcp_report_block *report = (struct switch_rtcp_report_block *) (msg->body + (sizeof(struct switch_rtcp_sr_head) + (i * sizeof(struct switch_rtcp_report_block))));
|
||||||
uint32_t old_avg = rtp_session->rtcp_frame.reports[i].loss_avg;
|
uint32_t old_avg = rtp_session->rtcp_frame.reports[i].loss_avg;
|
||||||
|
uint8_t percent_fraction = (uint8_t)report->fraction * 100 / 256 ;
|
||||||
if (!rtp_session->rtcp_frame.reports[i].loss_avg) {
|
if (!rtp_session->rtcp_frame.reports[i].loss_avg) {
|
||||||
rtp_session->rtcp_frame.reports[i].loss_avg = (uint8_t)report->fraction;
|
rtp_session->rtcp_frame.reports[i].loss_avg = (uint8_t)percent_fraction;
|
||||||
} else {
|
} else {
|
||||||
rtp_session->rtcp_frame.reports[i].loss_avg = (uint32_t)(((float)rtp_session->rtcp_frame.reports[i].loss_avg * .7) +
|
rtp_session->rtcp_frame.reports[i].loss_avg = (uint32_t)(((float)rtp_session->rtcp_frame.reports[i].loss_avg * .7) +
|
||||||
((float)(uint8_t)report->fraction * .3));
|
((float)(uint8_t)percent_fraction * .3));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!rtp_session->flags[SWITCH_RTP_FLAG_VIDEO] && rtp_session->rtcp_frame.reports[i].loss_avg != old_avg) {
|
if (!rtp_session->flags[SWITCH_RTP_FLAG_VIDEO] && rtp_session->rtcp_frame.reports[i].loss_avg != old_avg) {
|
||||||
|
|
Loading…
Reference in New Issue