mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-03-13 12:40:17 +00:00
Merge pull request #533 in FS/freeswitch from ~COREY BURKE/freeswitch:bugfix/FS-8283-handle-rtp-contributing-source-identifiers to master
* commit 'c0677b53b175430b8871576073d44dbea17fb8b2': Handle RTP Contributing Source Identifiers (CSRC)
This commit is contained in:
commit
a0238e4bad
@ -5322,16 +5322,20 @@ static switch_status_t read_rtp_packet(switch_rtp_t *rtp_session, switch_size_t
|
||||
|
||||
|
||||
if (rtp_session->recv_msg.header.version == 2) {
|
||||
if (rtp_session->recv_msg.header.cc > 0) { /* Contributing Source Identifiers (4 bytes = sizeof CSRC header)*/
|
||||
rtp_session->recv_msg.ebody = RTP_BODY(rtp_session) + (rtp_session->recv_msg.header.cc * 4);
|
||||
}
|
||||
|
||||
/* recalculate body length in case rtp extension used */
|
||||
if (!rtp_session->flags[SWITCH_RTP_FLAG_PROXY_MEDIA] && !rtp_session->flags[SWITCH_RTP_FLAG_UDPTL] &&
|
||||
rtp_session->recv_msg.header.version == 2 && rtp_session->recv_msg.header.x) { /* header extensions */
|
||||
uint16_t length;
|
||||
|
||||
rtp_session->recv_msg.ext = (switch_rtp_hdr_ext_t *) rtp_session->recv_msg.body;
|
||||
rtp_session->recv_msg.ext = (switch_rtp_hdr_ext_t *) RTP_BODY(rtp_session);
|
||||
length = ntohs((uint16_t)rtp_session->recv_msg.ext->length);
|
||||
|
||||
if (length < SWITCH_RTP_MAX_BUF_LEN_WORDS) {
|
||||
rtp_session->recv_msg.ebody = rtp_session->recv_msg.body + (length * 4) + 4;
|
||||
rtp_session->recv_msg.ebody = (char *)rtp_session->recv_msg.ext + (length * 4) + 4;
|
||||
if (*bytes > (length * 4 + 4)) {
|
||||
*bytes -= (length * 4 + 4);
|
||||
} else {
|
||||
|
Loading…
x
Reference in New Issue
Block a user