rtprtxsend: mark RTX buffers with GST_RTP_BUFFER_FLAG_RETRANSMISSION
authorHavard Graff <havard.graff@gmail.com>
Mon, 1 Feb 2021 09:36:42 +0000 (10:36 +0100)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Fri, 22 Apr 2022 19:27:45 +0000 (19:27 +0000)
It is useful for elements downstream from rtxsend to know if the RTP
buffer they are dealing with is an RTX buffer or not.

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

subprojects/gst-plugins-good/gst/rtpmanager/gstrtprtxsend.c
subprojects/gst-plugins-good/tests/check/elements/rtprtx.c

index adad57c..5e92e25 100644 (file)
@@ -734,6 +734,9 @@ gst_rtp_rtx_buffer_new (GstRtpRtxSend * rtx, GstBuffer * buffer)
   /* Copy over timestamps */
   gst_buffer_copy_into (new_buffer, buffer, GST_BUFFER_COPY_TIMESTAMPS, 0, -1);
 
+  /* mark this is a RETRANSMISSION buffer */
+  GST_BUFFER_FLAG_SET (new_buffer, GST_RTP_BUFFER_FLAG_RETRANSMISSION);
+
   return new_buffer;
 }
 
index 6206574..4eec054 100644 (file)
@@ -33,6 +33,8 @@
     } else {                                                                     \
       fail_unless_equals_int (GST_READ_UINT16_BE (gst_rtp_buffer_get_payload     \
               (&_rtp)), expected_seqnum);                                        \
+      fail_unless (GST_BUFFER_FLAG_IS_SET (buf,                                  \
+          GST_RTP_BUFFER_FLAG_RETRANSMISSION));                                  \
     }                                                                            \
     gst_rtp_buffer_unmap (&_rtp);                                                \
   } G_STMT_END