提交 0b8fbb47 authored 作者: Brian West's avatar Brian West

FS-8891 #resolve [T38 fax fails between 2 freeswitch boxes, with high cpu usage…

FS-8891 #resolve [T38 fax fails between 2 freeswitch boxes, with high cpu usage (comparison overflow?)]
上级 041dc0a6
...@@ -1942,7 +1942,10 @@ static int check_rtcp_and_ice(switch_rtp_t *rtp_session) ...@@ -1942,7 +1942,10 @@ static int check_rtcp_and_ice(switch_rtp_t *rtp_session)
int rate = 0, nack_ttl = 0; int rate = 0, nack_ttl = 0;
uint32_t cur_nack[MAX_NACK] = { 0 }; uint32_t cur_nack[MAX_NACK] = { 0 };
if (rtp_session->flags[SWITCH_RTP_FLAG_AUTO_CNG] && rtp_session->send_msg.header.ts && rtp_session->cng_pt != INVALID_PT && if (!rtp_session->flags[SWITCH_RTP_FLAG_UDPTL] &&
rtp_session->flags[SWITCH_RTP_FLAG_AUTO_CNG] &&
rtp_session->send_msg.header.ts &&
rtp_session->cng_pt != INVALID_PT &&
(rtp_session->timer.samplecount - rtp_session->last_write_samplecount >= rtp_session->samples_per_interval * 60)) { (rtp_session->timer.samplecount - rtp_session->last_write_samplecount >= rtp_session->samples_per_interval * 60)) {
uint8_t data[10] = { 0 }; uint8_t data[10] = { 0 };
switch_frame_flag_t frame_flags = SFF_NONE; switch_frame_flag_t frame_flags = SFF_NONE;
...@@ -7080,11 +7083,13 @@ SWITCH_DECLARE(switch_status_t) switch_rtp_zerocopy_read_frame(switch_rtp_t *rtp ...@@ -7080,11 +7083,13 @@ SWITCH_DECLARE(switch_status_t) switch_rtp_zerocopy_read_frame(switch_rtp_t *rtp
if (bytes < 0) { if (bytes < 0) {
frame->datalen = 0; frame->datalen = 0;
return bytes == -2 ? SWITCH_STATUS_TIMEOUT : SWITCH_STATUS_GENERR; return bytes == -2 ? SWITCH_STATUS_TIMEOUT : SWITCH_STATUS_GENERR;
} else if (bytes < rtp_header_len) { } else if (!rtp_session->flags[SWITCH_RTP_FLAG_UDPTL]) {
frame->datalen = 0; if (bytes < rtp_header_len) {
return SWITCH_STATUS_BREAK; frame->datalen = 0;
} else { return SWITCH_STATUS_BREAK;
bytes -= rtp_header_len; } else {
bytes -= rtp_header_len;
}
} }
frame->datalen = bytes; frame->datalen = bytes;
...@@ -7201,8 +7206,9 @@ static int rtp_common_write(switch_rtp_t *rtp_session, ...@@ -7201,8 +7206,9 @@ static int rtp_common_write(switch_rtp_t *rtp_session,
if ((rtp_session->rtp_bugs & RTP_BUG_NEVER_SEND_MARKER)) { if ((rtp_session->rtp_bugs & RTP_BUG_NEVER_SEND_MARKER)) {
m = 0; m = 0;
} else { } else {
if ((!rtp_session->flags[SWITCH_RTP_FLAG_RESET] && (rtp_session->ts - rtp_session->last_write_ts > rtp_session->samples_per_interval * 10)) if (!rtp_session->flags[SWITCH_RTP_FLAG_UDPTL] &&
|| rtp_session->ts == rtp_session->samples_per_interval) { ((!rtp_session->flags[SWITCH_RTP_FLAG_RESET] && (rtp_session->ts - rtp_session->last_write_ts > rtp_session->samples_per_interval * 10))
|| rtp_session->ts == rtp_session->samples_per_interval)) {
m++; m++;
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论