From 24fd80344dbc059b72e13d813ca82f414a9d6cce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olivier=20Cr=C3=AAte?= Date: Wed, 16 Jun 2021 15:06:57 -0400 Subject: videorate: Drop incoming buffers that are outside of the segment Part-of: --- gst/videorate/gstvideorate.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/gst/videorate/gstvideorate.c b/gst/videorate/gstvideorate.c index e12fe391c..3c4fe0b41 100644 --- a/gst/videorate/gstvideorate.c +++ b/gst/videorate/gstvideorate.c @@ -1521,6 +1521,10 @@ gst_video_rate_transform_ip (GstBaseTransform * trans, GstBuffer * buffer) goto invalid_buffer; } + if (!gst_segment_clip (&videorate->segment, GST_FORMAT_TIME, in_ts, + GST_CLOCK_TIME_NONE, NULL, NULL)) + goto outside_segment; + /* get the time of the next expected buffer timestamp, we use this when the * next buffer has -1 as a timestamp */ last_ts = videorate->last_ts; @@ -1787,6 +1791,13 @@ invalid_buffer: res = GST_BASE_TRANSFORM_FLOW_DROPPED; goto done; } + +outside_segment: + { + GST_WARNING_OBJECT (videorate, "Got buffer outide segment, discarding it"); + res = GST_BASE_TRANSFORM_FLOW_DROPPED; + goto done; + } } static gboolean -- cgit v1.2.1