rtpbasepayload: do not forget delayed segment when forwarding gaps
authorMathieu Duponchelle <mathieu@centricular.com>
Fri, 21 Aug 2020 01:06:04 +0000 (03:06 +0200)
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Tue, 8 Sep 2020 23:01:46 +0000 (23:01 +0000)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/797>

gst-libs/gst/rtp/gstrtpbasepayload.c

index 58ad6d6..0f5feb4 100644 (file)
@@ -559,6 +559,17 @@ gst_rtp_base_payload_sink_event_default (GstRTPBasePayload * rtpbasepayload,
       }
       break;
     }
+    case GST_EVENT_GAP:
+    {
+      if (G_UNLIKELY (rtpbasepayload->priv->pending_segment)) {
+        gst_pad_push_event (rtpbasepayload->srcpad,
+            rtpbasepayload->priv->pending_segment);
+        rtpbasepayload->priv->pending_segment = FALSE;
+        rtpbasepayload->priv->delay_segment = FALSE;
+      }
+      res = gst_pad_event_default (rtpbasepayload->sinkpad, parent, event);
+      break;
+    }
     default:
       res = gst_pad_event_default (rtpbasepayload->sinkpad, parent, event);
       break;