From f9c5db7d5696c3ec9742c235fa771ebfa83ac5c1 Mon Sep 17 00:00:00 2001 From: Jan Schmidt Date: Sat, 29 Sep 2018 00:49:46 +1000 Subject: [PATCH] audiobasesink: Handle an extra case of buffers being out of segment It's possible that a buffer might be within the segment proper, but not within the "valid" part we're playing, which is only things after the 'offset' part of the segment. In that case, the running-times of the buffer-start and buffer-stop will be GST_CLOCK_TIME_NONE, and we'd better not schedule playback that far in the future. --- gst-libs/gst/audio/gstaudiobasesink.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gst-libs/gst/audio/gstaudiobasesink.c b/gst-libs/gst/audio/gstaudiobasesink.c index 649a5c7..7ce15cd 100644 --- a/gst-libs/gst/audio/gstaudiobasesink.c +++ b/gst-libs/gst/audio/gstaudiobasesink.c @@ -1989,6 +1989,9 @@ gst_audio_base_sink_render (GstBaseSink * bsink, GstBuffer * buf) render_stop = gst_segment_to_running_time (&bsink->segment, GST_FORMAT_TIME, stop); + if (render_start == GST_CLOCK_TIME_NONE || render_stop == GST_CLOCK_TIME_NONE) + goto too_late; + GST_DEBUG_OBJECT (sink, "running: start %" GST_TIME_FORMAT " - stop %" GST_TIME_FORMAT, GST_TIME_ARGS (render_start), GST_TIME_ARGS (render_stop)); -- 2.7.4