From ff9e37ea668e06b13ab4b739f0eb87a3607310e3 Mon Sep 17 00:00:00 2001 From: Thiago Santos Date: Mon, 26 May 2014 12:44:48 -0300 Subject: [PATCH] videodecoder: return EOS when segment is over if a buffer is clipped by being completely out of segment, check if this buffer is after the end of the segment and return EOS upstream https://bugzilla.gnome.org/show_bug.cgi?id=709224 --- gst-libs/gst/video/gstvideodecoder.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gst-libs/gst/video/gstvideodecoder.c b/gst-libs/gst/video/gstvideodecoder.c index c278e801d9..7a45a5103c 100644 --- a/gst-libs/gst/video/gstvideodecoder.c +++ b/gst-libs/gst/video/gstvideodecoder.c @@ -2721,6 +2721,12 @@ gst_video_decoder_clip_and_push_buf (GstVideoDecoder * decoder, GstBuffer * buf) GST_TIME_ARGS (start), GST_TIME_ARGS (stop), GST_TIME_ARGS (segment->start), GST_TIME_ARGS (segment->stop), GST_TIME_ARGS (segment->time)); + if (segment->rate >= 0) { + if (GST_BUFFER_PTS (buf) >= segment->stop) + ret = GST_FLOW_EOS; + } else if (GST_BUFFER_PTS (buf) < segment->start) { + ret = GST_FLOW_EOS; + } gst_buffer_unref (buf); goto done; }