Skip to content

rtp: add support for RTCP XR DLRR in the sender side

This PR adds support for RTCP XR RRT reading + DLRR writing in the sender side https://datatracker.ietf.org/doc/html/rfc3611

The XR RRT + DLRR is a replica of the SR + RR schema, which allows the sender compute the round trip time, but with the roles reversed. With XR RRT + DLRR, it's the receiver who sends XR RRT packets and the sender responds to those messages with XR DLRR packets for the receiver to estimate the round trip time

The protocol, then, follows this steps:

  • The media sender receives XR RRT packets, which contains the NTP time of the receiver
  • It stores the NTP values in a double buffer, like the SR + RR combo does, along with the time of reception of the XR packet
  • When the media sender sends a RTCP packet, it creates a XR DLRR with the NTP time and reception time. Note that we send the same XR DLRR packet for each media SSRC of the sender

What this PR does:

  • Handles the reception of XR RRT packets
  • Implements a writer for XR DLRR packets
  • Adds the necessary data in RTPSource to store the NTP and reception time
  • Adds unit tests for writing XR DLRR packets

What this PR does NOT do:

  • Send XR RRT packets
  • Read XR DLRR packets

Merge request reports