Skip to content

webrtcbin: Expose more RTP stats (and fix some existing ones)

Some of the statistics that webrtcbin was returning were just not accurate, so I took a stab at improving the situation:

  • I went through the latest webrtc spec and looked all the of the RTP statistics, and I documented those are out of scope for webrtcbin (because they're about decoded data) and also all of those that we could have but where we don't have the information currently computed in our stack.
  • I stored the jitterbuffer to be able to extract statistics from it as this is where some of the stats are from
  • And I switch the code to use the RTPSource representing peer to get it's stats (using gst-plugins-good!776 (merged))
  • I put a copy of the "raw" GStreamer statistics inside the returned GstStructure as we also collect some interesting statistics that don't exist in the WebRTC spec. And without this, is is really painful to find which RTPSource/SSRC belongs to which pad.

I also implemented filtering the stats based on passing the bad to the action signal, so we can now get only the receiver or the sender stats as desired instead of a mix.

Merge request reports