diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2022-09-28 19:01:53 +0200 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2022-09-29 11:49:47 +0200 |
commit | de68bc9065120b1407edf05890cad11e4b15c1f0 (patch) | |
tree | c6986111c753edfd07364acf10c6ad49916bb4e4 | |
parent | dc4e8747e921bbdc502451d89bf33ca2c66d6c36 (diff) |
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
-rw-r--r-- | src/osmux.c | 2 | ||||
-rw-r--r-- | tests/osmux/osmux_output_test.ok | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/osmux.c b/src/osmux.c index 20b6798..ec5712d 100644 --- a/src/osmux.c +++ b/src/osmux.c @@ -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)); diff --git a/tests/osmux/osmux_output_test.ok b/tests/osmux/osmux_output_test.ok index f69c0a9..f08748f 100644 --- a/tests/osmux/osmux_output_test.ok +++ b/tests/osmux/osmux_output_test.ok @@ -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 |