After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 789822 - rtcpbuffer: Add XR parsing APIs
rtcpbuffer: Add XR parsing APIs
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other other
: Normal enhancement
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks: 791354
 
 
Reported: 2017-11-02 14:56 UTC by Justin Kim
Modified: 2018-11-03 12:01 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
[1/7] rtcpbuffer: add XR packet iterator (9.46 KB, patch)
2017-11-02 14:57 UTC, Justin Kim
none Details | Review
[2/7] rtcpbuffer: add Loss/Duplicate RLE parser for XR packet (7.60 KB, patch)
2017-11-02 14:58 UTC, Justin Kim
none Details | Review
[3/7] rtcpbuffer: add Packet Receipt Times parser for XR packet (6.02 KB, patch)
2017-11-02 14:59 UTC, Justin Kim
none Details | Review
[4/7] rtcpbuffer: add Receiver Reference Time paser for XR (3.80 KB, patch)
2017-11-02 14:59 UTC, Justin Kim
none Details | Review
[5/7] rtcpbuffer: add DLRR parser for XR packet (5.03 KB, patch)
2017-11-02 15:00 UTC, Justin Kim
none Details | Review
[6/7] rtcpbuffer: add Statistics Summary parser for XR packet (11.62 KB, patch)
2017-11-02 15:00 UTC, Justin Kim
none Details | Review
[7/7] rtcpbuffer: add VoIP Metrics parser for XR packet (15.95 KB, patch)
2017-11-02 15:01 UTC, Justin Kim
none Details | Review
rtcpbuffer: add support XR packet parsing (49.80 KB, patch)
2017-12-07 15:59 UTC, Justin Kim
none Details | Review
rtcpbuffer: add support XR packet parsing (50.53 KB, patch)
2018-07-16 20:40 UTC, Olivier Crête
none Details | Review
rtcpbuffer: add support XR packet parsing (50.96 KB, patch)
2018-07-16 20:53 UTC, Olivier Crête
none Details | Review

Description Justin Kim 2017-11-02 14:56:22 UTC
I propose the patches to implement RFC3611 (RTCP XR).
The patches are split by the extended report block type for easier reviewing.
Comment 1 Justin Kim 2017-11-02 14:57:44 UTC
Created attachment 362828 [details] [review]
[1/7] rtcpbuffer: add XR packet iterator

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.
Comment 2 Justin Kim 2017-11-02 14:58:25 UTC
Created attachment 362829 [details] [review]
[2/7] rtcpbuffer: add Loss/Duplicate RLE parser for XR packet

The Loss RLE and the Duplicate RLE have same format so
they can share parsers. For unit test, randomly generated
pseudo packet is used.
Comment 3 Justin Kim 2017-11-02 14:59:06 UTC
Created attachment 362830 [details] [review]
[3/7] rtcpbuffer: add Packet Receipt Times parser for XR packet

The packet receipt times report block has a list of receipt
times which are in [begin_seq, end_seq).
Comment 4 Justin Kim 2017-11-02 14:59:44 UTC
Created attachment 362831 [details] [review]
[4/7] rtcpbuffer: add Receiver Reference Time paser for XR

The receiver reference time has ntptime which is 64 bit type.
Comment 5 Justin Kim 2017-11-02 15:00:16 UTC
Created attachment 362832 [details] [review]
[5/7] rtcpbuffer: add DLRR parser for XR packet

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.
Comment 6 Justin Kim 2017-11-02 15:00:52 UTC
Created attachment 362833 [details] [review]
[6/7] rtcpbuffer: add Statistics Summary parser for XR packet

The Statistics Summary report block provides fixed length
information.
Comment 7 Justin Kim 2017-11-02 15:01:28 UTC
Created attachment 362834 [details] [review]
[7/7] rtcpbuffer: add VoIP Metrics parser for XR packet

According to RFC3611, VoIP Metrics consists of several metrics even
though they are in a report block. Data retrieving functions are
added per metrics.
Comment 8 Matthew Waters (ystreet00) 2017-11-03 07:03:40 UTC
Do you also have a user of these new API's ?
Comment 9 Justin Kim 2017-11-03 07:14:00 UTC
Sometimes, WebRTC in chrome sends us XR packets so I parse them first.
If these APIs are acceptable, I'll try to make RTCP XR recognizable in rtpsesson rather than ignoring.
Comment 10 Sebastian Dröge (slomo) 2017-11-03 09:37:11 UTC
Please first make use of these APIs in rtpsession. How would you otherwise know that they're usable at all? :)
Comment 11 Justin Kim 2017-12-07 15:59:49 UTC
Created attachment 365207 [details] [review]
rtcpbuffer: add support XR packet parsing

Rebased and squashed.
Also, it defines enum type for GstRTCPXRType to use in GstStructure.
Comment 12 Justin Kim 2018-01-10 06:28:35 UTC
any advice for this proposal and #791354?
Comment 13 Olivier Crête 2018-07-16 20:40:12 UTC
Created attachment 373069 [details] [review]
rtcpbuffer: add support XR packet parsing

Updated with docs and fixed some typos. If not one yells, I'll merge as-is.
Comment 14 Olivier Crête 2018-07-16 20:53:04 UTC
Created attachment 373070 [details] [review]
rtcpbuffer: add support XR packet parsing

Also added Since: tag to the comments.
Comment 15 GStreamer system administrator 2018-11-03 12:01:06 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/395.