rtcpbuffer: add support XR packet parsing
authorJustin Kim <justin.kim@collabora.com>
Wed, 1 Nov 2017 01:54:06 +0000 (10:54 +0900)
committerOlivier CrĂȘte <olivier.crete@collabora.com>
Thu, 13 Dec 2018 19:01:06 +0000 (14:01 -0500)
commit5303e2c32b18822f119fefb5eb9a00c5a33c0c76
tree68d19bee0b27bdcceb6bd536d0b4d81f7af16b3d
parent18c9babef93abda5572d6f66979de6bb587ed393
rtcpbuffer: add support XR packet parsing

According to RFC3611, the extended report blocks in XR packet can
have variable length. To visit each block, the iterator should look
into block header. Once XR type is extracted, users can parse the
detailed information by given functions.

Loss/Duplicate RLE
The Loss RLE and the Duplicate RLE have same format so
they can share parsers. For unit test, randomly generated
pseudo packet is used.

Packet Receipt Times
The packet receipt times report block has a list of receipt
times which are in [begin_seq, end_seq).

Receiver Reference Time paser for XR packet
The receiver reference time has ntptime which is 64 bit type.

DLRR
The DLRR report block consists of sub-blocks which has ssrc, last RR,
and delay since last RR. The number of sub-blocks should be calculated
from block length.

Statistics Summary
The Statistics Summary report block provides fixed length
information.

VoIP Metrics
VoIP Metrics consists of several metrics even though they are in
a report block. Data retrieving functions are added per metrics.

https://bugzilla.gnome.org/show_bug.cgi?id=789822
docs/libs/gst-plugins-base-libs-sections.txt
gst-libs/gst/rtp/gstrtcpbuffer.c
gst-libs/gst/rtp/gstrtcpbuffer.h
tests/check/libs/rtp.c