wavenc: Return not-negotiated if we got no caps or caps negotiation failed
authorSebastian Dröge <sebastian@centricular.com>
Thu, 10 Jul 2014 10:10:45 +0000 (12:10 +0200)
committerSebastian Dröge <sebastian@centricular.com>
Thu, 10 Jul 2014 12:37:31 +0000 (14:37 +0200)
And do it always, not inside a g_return_val_if_fail().

See https://bugzilla.gnome.org/show_bug.cgi?id=732939

gst/wavenc/gstwavenc.c

index fa82cf969e75424837e2504b98596f1c87a30864..9f62fc7ac4876b17d4af00f695c89131e43b29d5 100644 (file)
@@ -848,7 +848,10 @@ gst_wavenc_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
   GstWavEnc *wavenc = GST_WAVENC (parent);
   GstFlowReturn flow = GST_FLOW_OK;
 
-  g_return_val_if_fail (wavenc->channels > 0, GST_FLOW_FLUSHING);
+  if (wavenc->channels <= 0) {
+    GST_ERROR_OBJECT (wavenc, "Got data without caps");
+    return GST_FLOW_NOT_NEGOTIATED;
+  }
 
   if (G_UNLIKELY (!wavenc->sent_header)) {
     /* starting a file, means we have to finish it properly */