From 50fd867a43c6ec11306f21ea0053b4a8cef7ebd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Sun, 30 Jun 2013 18:16:35 +0200 Subject: [PATCH] audioencoder: Don't return not-negotiated if flushing If the pad is flushing after a failed negotiation, return GST_FLOW_FLUSHING instead from finish_frame(). https://bugzilla.gnome.org/show_bug.cgi?id=701763 --- gst-libs/gst/audio/gstaudioencoder.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gst-libs/gst/audio/gstaudioencoder.c b/gst-libs/gst/audio/gstaudioencoder.c index 43f47e3191..bc78b6bc58 100644 --- a/gst-libs/gst/audio/gstaudioencoder.c +++ b/gst-libs/gst/audio/gstaudioencoder.c @@ -627,7 +627,10 @@ gst_audio_encoder_finish_frame (GstAudioEncoder * enc, GstBuffer * buf, if (G_UNLIKELY (ctx->output_caps_changed || gst_pad_check_reconfigure (enc->srcpad))) { if (!gst_audio_encoder_negotiate (enc)) { - ret = GST_FLOW_NOT_NEGOTIATED; + if (GST_PAD_IS_FLUSHING (enc->srcpad)) + ret = GST_FLOW_FLUSHING; + else + ret = GST_FLOW_NOT_NEGOTIATED; goto exit; } }