rtopuspay: Set marker bit inside RTP packet too
authorOlivier Crête <olivier.crete@collabora.com>
Fri, 10 Sep 2021 22:03:55 +0000 (18:03 -0400)
committerOlivier Crête <olivier.crete@collabora.com>
Tue, 12 Oct 2021 21:18:19 +0000 (17:18 -0400)
At the end of a talk spurt, not only set the marker flag on the
GstBuffer, but also set the bit inside the RTP header as recommended
by the RFC.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1124>

subprojects/gst-plugins-good/gst/rtp/gstrtpopuspay.c

index 0bcdc6a..f08b0f5 100644 (file)
@@ -353,6 +353,12 @@ gst_rtp_opus_pay_handle_buffer (GstRTPBasePayload * basepayload,
   GST_BUFFER_DURATION (outbuf) = duration;
 
   if (self->marker) {
+    GstRTPBuffer rtp = GST_RTP_BUFFER_INIT;
+
+    gst_rtp_buffer_map (outbuf, GST_MAP_READWRITE, &rtp);
+    gst_rtp_buffer_set_marker (&rtp, TRUE);
+    gst_rtp_buffer_unmap (&rtp);
+
     GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_MARKER);
     self->marker = FALSE;
   }