osmux: dup in RTP pkt: check before applying queue flush due to Marker bit
We need to filter duplicate messages before checking the Mark bit and returning 1 to tell the user to deliver the current batchset content. Otherwise, a repeated RTP packet with an M bit would trigger delivery, which is wrong. Change-Id: I4a01b0935f112d650d8fc161b3389eda6c8e75ec
This commit is contained in:
parent
2fca99c7cf
commit
710d304208
|
@ -452,12 +452,6 @@ osmux_link_add(struct osmux_link *link, const struct osmux_in_req *req)
|
|||
link->ndummy--;
|
||||
}
|
||||
|
||||
/* Init of talkspurt (RTP M marker bit) needs to be in the first AMR slot
|
||||
* of the OSMUX packet, enforce sending previous batch if required:
|
||||
*/
|
||||
if (req->rtph->marker && req->circuit->nmsgs != 0)
|
||||
return 1;
|
||||
|
||||
/* Extra validation: check if this message already exists, should not
|
||||
* happen but make sure we don't propagate duplicated messages.
|
||||
*/
|
||||
|
@ -473,6 +467,12 @@ osmux_link_add(struct osmux_link *link, const struct osmux_in_req *req)
|
|||
}
|
||||
}
|
||||
|
||||
/* Init of talkspurt (RTP M marker bit) needs to be in the first AMR slot
|
||||
* of the OSMUX packet, enforce sending previous batch if required:
|
||||
*/
|
||||
if (req->rtph->marker && req->circuit->nmsgs != 0)
|
||||
return 1;
|
||||
|
||||
/* First check if there is room for this message in the batch */
|
||||
/* First in batch comes after the batch header: */
|
||||
if (req->circuit->nmsgs == 0)
|
||||
|
|
Loading…
Reference in New Issue