videorate: Drop incoming buffers that are outside of the segment

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/767>
This commit is contained in:
Olivier Crête 2021-06-16 15:06:57 -04:00 committed by Olivier Crête
parent 6f7922b4db
commit 24fd80344d

View file

@ -1521,6 +1521,10 @@ gst_video_rate_transform_ip (GstBaseTransform * trans, GstBuffer * buffer)
goto invalid_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 /* get the time of the next expected buffer timestamp, we use this when the
* next buffer has -1 as a timestamp */ * next buffer has -1 as a timestamp */
last_ts = videorate->last_ts; last_ts = videorate->last_ts;
@ -1787,6 +1791,13 @@ invalid_buffer:
res = GST_BASE_TRANSFORM_FLOW_DROPPED; res = GST_BASE_TRANSFORM_FLOW_DROPPED;
goto done; goto done;
} }
outside_segment:
{
GST_WARNING_OBJECT (videorate, "Got buffer outide segment, discarding it");
res = GST_BASE_TRANSFORM_FLOW_DROPPED;
goto done;
}
} }
static gboolean static gboolean