GNOME Bugzilla – Bug 730563
Propagate DISCONT and DELTAUNIT flags through H264 and Jpeg payloaders
Last modified: 2014-06-19 10:27:57 UTC
In order to implement the RTP extension defined in http://www.onvif.org/specs/stream/ONVIF-Streaming-Spec-v241.pdf (6.2) a downstream element may be interested knowing if the outpout from a payloader contains a DISCONT or DELTAUNIT buffer. The following patches implement this for rtph264pay and rtpjpegpay.
Created attachment 276972 [details] [review] rtph264pay: propagate the GST_BUFFER_FLAG_DELTA_UNIT flag Downstream elements may be interested knowing if a RTP packet is the start of a key frame (to implement a RTP extension as defined in the ONVIF Streaming Spec for example). We do this by checking the GST_BUFFER_FLAG_DELTA_UNIT flag we receive from upstream and propagate it to the *first* RTP packet outputted to transfer this buffer.
Created attachment 276973 [details] [review] rtph264pay: propagate the GST_BUFFER_FLAG_DISCONT flag Similarly to what we did with the DELTA_UNIT flag, this patch propagates the DISCONT flag to the first RTP packet being used to transfer a DISCONT buffer.
Created attachment 276974 [details] [review] rtpjpegpay: propagate the GST_BUFFER_FLAG_DISCONT flag Propagate the DISCONT flag to the first RTP packet being used to transfer a DISCONT buffer.
Created attachment 277266 [details] [review] gstrtpmp4gpay: propagate the GST_BUFFER_FLAG_DISCONT flag Propagate the DISCONT flag to the first RTP packet being used to transfer a DISCONT buffer.
Created attachment 277935 [details] [review] rtph264pay: propagate the GST_BUFFER_FLAG_DISCONT flag Similarly to what we did with the DELTA_UNIT flag, this patch propagates the DISCONT flag to the first RTP packet being used to transfer a DISCONT buffer.
Created attachment 277936 [details] [review] rtph264pay: propagate the GST_BUFFER_FLAG_DELTA_UNIT flag Downstream elements may be interested knowing if a RTP packet is the start of a key frame (to implement a RTP extension as defined in the ONVIF Streaming Spec for example). We do this by checking the GST_BUFFER_FLAG_DELTA_UNIT flag we receive from upstream and propagate it to the *first* RTP packet outputted to transfer this buffer.
(In reply to comment #0) > In order to implement the RTP extension defined in > http://www.onvif.org/specs/stream/ONVIF-Streaming-Spec-v241.pdf (6.2) a > downstream element may be interested knowing if the outpout from a payloader > contains a DISCONT or DELTAUNIT buffer. See also bug #731769 implementing this RTP extension.
commit 42ff6423728b4453aa8761e0753471a255421c3b Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> Date: Tue May 20 13:58:20 2014 +0200 gstrtpmp4gpay: propagate the GST_BUFFER_FLAG_DISCONT flag Propagate the DISCONT flag to the first RTP packet being used to transfer a DISCONT buffer. https://bugzilla.gnome.org/show_bug.cgi?id=730563 commit 9a7479fb0d7f32fd21892982ecfc7277d9513cc9 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> Date: Tue May 20 13:58:20 2014 +0200 rtpjpegpay: propagate the GST_BUFFER_FLAG_DISCONT flag Propagate the DISCONT flag to the first RTP packet being used to transfer a DISCONT buffer. https://bugzilla.gnome.org/show_bug.cgi?id=730563
The h264pay patches don't apply, please rebase against master.
Created attachment 278743 [details] [review] gstrtpmp4gpay: propagate the GST_BUFFER_FLAG_DISCONT flag Propagate the DISCONT flag to the first RTP packet being used to transfer a DISCONT buffer.
Created attachment 278744 [details] [review] gstrtpmp4gpay: propagate the GST_BUFFER_FLAG_DISCONT flag Propagate the DISCONT flag to the first RTP packet being used to transfer a DISCONT buffer.
Created attachment 278745 [details] [review] rtph264pay: propagate the GST_BUFFER_FLAG_DELTA_UNIT flag Downstream elements may be interested knowing if a RTP packet is the start of a key frame (to implement a RTP extension as defined in the ONVIF Streaming Spec for example). We do this by checking the GST_BUFFER_FLAG_DELTA_UNIT flag we receive from upstream and propagate it to the *first* RTP packet outputted to transfer this buffer.
Created attachment 278746 [details] [review] rtph264pay: propagate the GST_BUFFER_FLAG_DISCONT flag Similarly to what we did with the DELTA_UNIT flag, this patch propagates the DISCONT flag to the first RTP packet being used to transfer a DISCONT buffer.
Here are these two patches rebased on top of master.
commit f00c2b71557a5115a60a642244717d2ef7a3fc8e Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> Date: Tue May 20 12:39:31 2014 +0200 rtph264pay: propagate the GST_BUFFER_FLAG_DISCONT flag Similarly to what we did with the DELTA_UNIT flag, this patch propagates the DISCONT flag to the first RTP packet being used to transfer a DISCONT buffer. https://bugzilla.gnome.org/show_bug.cgi?id=730563 commit 4be99ec7d54a49a99b5cfd50c036b15c22dc54cd Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> Date: Tue May 6 17:42:14 2014 +0200 rtph264pay: propagate the GST_BUFFER_FLAG_DELTA_UNIT flag Downstream elements may be interested knowing if a RTP packet is the start of a key frame (to implement a RTP extension as defined in the ONVIF Streaming Spec for example). We do this by checking the GST_BUFFER_FLAG_DELTA_UNIT flag we receive from upstream and propagate it to the *first* RTP packet outputted to transfer this buffer. https://bugzilla.gnome.org/show_bug.cgi?id=730563