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
This commit is contained in:
Sebastian Dröge 2013-06-30 18:16:35 +02:00
parent a9e4750674
commit 50fd867a43

View file

@ -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;
}
}