From 9a7479fb0d7f32fd21892982ecfc7277d9513cc9 Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Tue, 20 May 2014 13:58:20 +0200 Subject: [PATCH] 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 --- gst/rtp/gstrtpjpegpay.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gst/rtp/gstrtpjpegpay.c b/gst/rtp/gstrtpjpegpay.c index 4f58269431..3e820a0889 100644 --- a/gst/rtp/gstrtpjpegpay.c +++ b/gst/rtp/gstrtpjpegpay.c @@ -688,6 +688,7 @@ gst_rtp_jpeg_pay_handle_buffer (GstRTPBasePayload * basepayload, gboolean sos_found, sof_found, dqt_found, dri_found; gint i; GstBufferList *list = NULL; + gboolean discont; pay = GST_RTP_JPEG_PAY (basepayload); mtu = GST_RTP_BASE_PAYLOAD_MTU (pay); @@ -697,6 +698,7 @@ gst_rtp_jpeg_pay_handle_buffer (GstRTPBasePayload * basepayload, size = map.size; timestamp = GST_BUFFER_TIMESTAMP (buffer); offset = 0; + discont = GST_BUFFER_IS_DISCONT (buffer); GST_LOG_OBJECT (pay, "got buffer size %" G_GSIZE_FORMAT " , timestamp %" GST_TIME_FORMAT, size, GST_TIME_ARGS (timestamp)); @@ -895,6 +897,12 @@ gst_rtp_jpeg_pay_handle_buffer (GstRTPBasePayload * basepayload, GST_BUFFER_TIMESTAMP (outbuf) = timestamp; + if (discont) { + GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT); + /* Only the first outputted buffer has the DISCONT flag */ + discont = FALSE; + } + /* and add to list */ gst_buffer_list_insert (list, -1, outbuf);