Skip to content

Consumer classes: Add target layer retransmission buffer to avoid PLIs/FIRs when RTP packets containing a key frame arrive out of order#1550

Merged
ibc merged 11 commits intov3from
consumer-target-layer-retransmission-buffer-2
Jun 26, 2025
Merged

Consumer classes: Add target layer retransmission buffer to avoid PLIs/FIRs when RTP packets containing a key frame arrive out of order#1550
ibc merged 11 commits intov3from
consumer-target-layer-retransmission-buffer-2

Conversation

@ibc
Copy link
Member

@ibc ibc commented Jun 26, 2025

Details

  • Fixes Potential unrecoverable RTP packet upon un-order reception #1547.
  • Add a targetLayerRetransmissionBuffer to Consumer classes that holds RTP packets that presumably may contains chunks of a key frame so if they arrive before the first key frame packet (due to packets arriving out of order) they will be immediately sent once the first packet arrives.
  • Without this it may happen that a chunk of the key frame arrives before the first chunk of the key frame and it would be completely discarded so when later the receiver sends NACK we could not retransmit it, triggering a full PLI from the receiver and hence causing black video for a while.
  • For more details see the rlated issue Potential unrecoverable RTP packet upon un-order reception #1547.

Bonus Tracks

  • Properly include RtcLogger.hpp in files that use it.
  • mediasoup-worker CI: Add gcc and clang builds in which the worker is compiled with all the Meson ms_xxxx options enabled.

…LIs/FIRs when RTP packets containing a key frame arrive out of order

## Details

- Fixes #1547.
- Add a `targetLayerRetransmissionBuffer` to `Consumer` classes that holds RTP packets that presumably may contains chunks of a key frame so if they arrive before the first key frame packet (due to packets arriving out of order) they will be immediately sent once the first packet arrives.
- Without this it may happen that a chunk of the key frame arrives before the first chunk of the key frame and it would be completely discarded so when later the receiver sends NACK we could not retransmit it, triggering a full PLI from the receiver and hence causing black video for a while.
- For more details see the rlated issue #1547.
@ibc ibc requested a review from jmillan June 26, 2025 10:31
@ibc ibc merged commit 4333d93 into v3 Jun 26, 2025
65 of 74 checks passed
@ibc ibc deleted the consumer-target-layer-retransmission-buffer-2 branch June 26, 2025 13:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

Potential unrecoverable RTP packet upon un-order reception

2 participants