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
GstAudioDecoderPrivate *priv;
GstAudioDecoderContext *ctx;
GstFlowReturn ret = GST_FLOW_OK;
+ GstClockTime ts;
klass = GST_AUDIO_DECODER_GET_CLASS (dec);
priv = dec->priv;
}
ctx->had_output_data = TRUE;
+ ts = GST_BUFFER_TIMESTAMP (buf);
GST_LOG_OBJECT (dec,
"clipping buffer of size %" G_GSIZE_FORMAT " with ts %" GST_TIME_FORMAT
ctx->info.bpf);
if (G_UNLIKELY (!buf)) {
GST_DEBUG_OBJECT (dec, "no data after clipping to segment");
+ if (dec->output_segment.rate >= 0) {
+ if (ts >= dec->output_segment.stop)
+ ret = GST_FLOW_EOS;
+ } else if (ts < dec->output_segment.start) {
+ ret = GST_FLOW_EOS;
+ }
goto exit;
}