osmux: Fix unwanted RTP marker bit upon rx of osmux seqnum wrap around

The wrap around case was not properly considered in the condition
setting the Marker bit. Let's fix it.

Related: SYS#5987
Change-Id: I6e01f29a6239f930c9be2bcb2efe447e5de8fedf
changes/21/29521/3
Pau Espin 2 months ago
parent dc4e8747e9
commit de68bc9065
  1. 2
      src/osmux.c
  2. 2
      tests/osmux/osmux_output_test.ok

@ -156,7 +156,7 @@ osmux_rebuild_rtp(struct osmux_out_handle *h, struct osmux_hdr *osmuxh,
* steady increase of delay
*/
rtph->marker = first_pkt &&
(osmuxh->rtp_m || (osmuxh->seq != h->osmux_seq_ack + 1));
(osmuxh->rtp_m || (osmuxh->seq != ((h->osmux_seq_ack + 1) & 0xff)));
msgb_put(out_msg, sizeof(struct rtp_hdr));

@ -108,7 +108,7 @@ sys={0.040000}, mono={0.040000}: dequeue: seq=61 ts=2260 enqueued=0
===test_output_seqnum_wraparound===
sys={0.000000}, mono={0.000000}: clock_override_set
sys={0.000000}, mono={0.000000}: Sending osmux frame with seqnum=0
sys={0.000000}, mono={0.000000}: dequeue: seq=50 ts=500 M enqueued=5
sys={0.000000}, mono={0.000000}: dequeue: seq=50 ts=500 enqueued=5
sys={0.040000}, mono={0.040000}: clock_override_add
sys={0.040000}, mono={0.040000}: dequeue: seq=51 ts=660 enqueued=4
sys={0.040000}, mono={0.040000}: dequeue: seq=52 ts=820 enqueued=3

Loading…
Cancel
Save