rtpbasepayload: Don't write header extensions if there's no corresponding input buffe...
authorSebastian Dröge <sebastian@centricular.com>
Fri, 15 Apr 2022 16:55:34 +0000 (19:55 +0300)
committerSebastian Dröge <sebastian@centricular.com>
Fri, 15 Apr 2022 16:56:49 +0000 (19:56 +0300)
The GstRTPHeaderExtension API requires the input buffer to exist.

This can happen if the output packet is generated e.g. from a caps or
tags event like in the case for rtpgstpay.

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

subprojects/gst-plugins-base/gst-libs/gst/rtp/gstrtpbasepayload.c

index fc2fda5..2c5728e 100644 (file)
@@ -1718,7 +1718,8 @@ set_headers (GstBuffer ** buffer, guint idx, gpointer user_data)
   gst_rtp_buffer_set_timestamp (&rtp, data->rtptime);
 
   GST_OBJECT_LOCK (data->payload);
-  if (data->payload->priv->header_exts->len > 0) {
+  if (data->payload->priv->header_exts->len > 0
+      && data->payload->priv->input_meta_buffer) {
     guint wordlen;
     gsize extlen;
     guint16 bit_pattern;