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 730563 - Propagate DISCONT and DELTAUNIT flags through H264 and Jpeg payloaders
Propagate DISCONT and DELTAUNIT flags through H264 and Jpeg payloaders
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
unspecified
Other Linux
: Normal enhancement
: 1.3.3
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-05-22 09:12 UTC by Guillaume Desmottes
Modified: 2014-06-19 10:27 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
rtph264pay: propagate the GST_BUFFER_FLAG_DELTA_UNIT flag (6.65 KB, patch)
2014-05-22 09:13 UTC, Guillaume Desmottes
none Details | Review
rtph264pay: propagate the GST_BUFFER_FLAG_DISCONT flag (6.95 KB, patch)
2014-05-22 09:13 UTC, Guillaume Desmottes
none Details | Review
rtpjpegpay: propagate the GST_BUFFER_FLAG_DISCONT flag (1.62 KB, patch)
2014-05-22 09:13 UTC, Guillaume Desmottes
committed Details | Review
gstrtpmp4gpay: propagate the GST_BUFFER_FLAG_DISCONT flag (1.80 KB, patch)
2014-05-27 09:28 UTC, Guillaume Desmottes
committed Details | Review
rtph264pay: propagate the GST_BUFFER_FLAG_DISCONT flag (7.00 KB, patch)
2014-06-05 08:40 UTC, Guillaume Desmottes
rejected Details | Review
rtph264pay: propagate the GST_BUFFER_FLAG_DELTA_UNIT flag (6.71 KB, patch)
2014-06-05 08:40 UTC, Guillaume Desmottes
rejected Details | Review
gstrtpmp4gpay: propagate the GST_BUFFER_FLAG_DISCONT flag (1.80 KB, patch)
2014-06-19 08:47 UTC, Guillaume Desmottes
none Details | Review
gstrtpmp4gpay: propagate the GST_BUFFER_FLAG_DISCONT flag (1.80 KB, patch)
2014-06-19 08:48 UTC, Guillaume Desmottes
none Details | Review
rtph264pay: propagate the GST_BUFFER_FLAG_DELTA_UNIT flag (6.67 KB, patch)
2014-06-19 08:49 UTC, Guillaume Desmottes
committed Details | Review
rtph264pay: propagate the GST_BUFFER_FLAG_DISCONT flag (6.96 KB, patch)
2014-06-19 08:49 UTC, Guillaume Desmottes
committed Details | Review

Description Guillaume Desmottes 2014-05-22 09:12:54 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.
Comment 1 Guillaume Desmottes 2014-05-22 09:13:22 UTC
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.
Comment 2 Guillaume Desmottes 2014-05-22 09:13:26 UTC
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.
Comment 3 Guillaume Desmottes 2014-05-22 09:13:30 UTC
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.
Comment 4 Guillaume Desmottes 2014-05-27 09:28:22 UTC
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.
Comment 5 Guillaume Desmottes 2014-06-05 08:40:16 UTC
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.
Comment 6 Guillaume Desmottes 2014-06-05 08:40:43 UTC
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.
Comment 7 Guillaume Desmottes 2014-06-17 09:57:33 UTC
(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.
Comment 8 Wim Taymans 2014-06-18 14:36:13 UTC
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
Comment 9 Wim Taymans 2014-06-18 14:37:37 UTC
The h264pay patches don't apply, please rebase against master.
Comment 10 Guillaume Desmottes 2014-06-19 08:47:47 UTC
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.
Comment 11 Guillaume Desmottes 2014-06-19 08:48:56 UTC
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.
Comment 12 Guillaume Desmottes 2014-06-19 08:49:21 UTC
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.
Comment 13 Guillaume Desmottes 2014-06-19 08:49:27 UTC
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.
Comment 14 Guillaume Desmottes 2014-06-19 08:50:13 UTC
Here are these two patches rebased on top of master.
Comment 15 Wim Taymans 2014-06-19 10:27:31 UTC
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