Skip to content
Snippets Groups Projects
Commit dda130c3 authored by Mark Spencer's avatar Mark Spencer
Browse files

Set "MARK" whenever SSRC changes (bug #6934)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@26759 65c4cc65-6c06-0410-ace0-fbb531ad65f3
parent c16bf2c7
Branches
Tags
No related merge requests found
......@@ -93,6 +93,7 @@ struct ast_rtp {
struct ast_frame f;
unsigned char rawdata[8192 + AST_FRIENDLY_OFFSET];
unsigned int ssrc; /*!< Synchronization source, RFC 3550, page 10. */
unsigned int rxssrc;
unsigned int lastts;
unsigned int lastdigitts;
unsigned int lastrxts;
......@@ -430,6 +431,7 @@ struct ast_frame *ast_rtp_read(struct ast_rtp *rtp)
int ext;
int x;
char iabuf[INET_ADDRSTRLEN];
unsigned int ssrc;
unsigned int timestamp;
unsigned int *rtpheader;
struct rtpPayloadType rtpPT;
......@@ -485,6 +487,14 @@ struct ast_frame *ast_rtp_read(struct ast_rtp *rtp)
ext = seqno & (1 << 28);
seqno &= 0xffff;
timestamp = ntohl(rtpheader[1]);
ssrc = ntohl(rtpheader[2]);
if (!mark && rtp->rxssrc && rtp->rxssrc != ssrc) {
ast_log(LOG_WARNING, "Forcing Marker bit, because SSRC has changed\n");
mark = 1;
}
rtp->rxssrc = ssrc;
if (padding) {
/* Remove padding bytes */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment