Revert "audiodecoder: Error out earlier in a few places if something goes wrong"
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Mon, 4 Jun 2012 08:01:42 +0000 (10:01 +0200)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Mon, 4 Jun 2012 08:01:42 +0000 (10:01 +0200)
This reverts commit eb68a2d5a7e4e9598df6eb812589c092fe2cc89a.

This sometimes errors out too early now, needs some more thoughts.

gst-libs/gst/audio/gstaudiodecoder.c

index 3b1284e..e036356 100644 (file)
@@ -772,11 +772,8 @@ again:
     }
 
     if (inbuf) {
-      if (ret == GST_FLOW_OK) {
-        buf = inbuf;
-        goto again;
-      }
-      gst_buffer_unref (inbuf);
+      buf = inbuf;
+      goto again;
     }
   }
 
@@ -1053,6 +1050,7 @@ gst_audio_decoder_push_buffers (GstAudioDecoder * dec, gboolean force)
   GST_DEBUG_OBJECT (dec, "available: %d", av);
 
   while (ret == GST_FLOW_OK) {
+
     flush = 0;
     ctx->eos = force;
 
@@ -1152,21 +1150,15 @@ gst_audio_decoder_drain (GstAudioDecoder * dec)
   if (dec->priv->drained && !dec->priv->gather)
     return GST_FLOW_OK;
   else {
-    GstFlowReturn ret2;
-
     /* dispatch reverse pending buffers */
     /* chain eventually calls upon drain as well, but by that time
      * gather list should be clear, so ok ... */
     if (dec->output_segment.rate < 0.0 && dec->priv->gather)
       gst_audio_decoder_chain_reverse (dec, NULL);
-    /* have subclass give all it can, if this fails we
-     * still want the subclass to output everything it
-     * can but we will return the error from here */
-    ret2 = gst_audio_decoder_push_buffers (dec, TRUE);
+    /* have subclass give all it can */
+    ret = gst_audio_decoder_push_buffers (dec, TRUE);
     /* ensure all output sent */
     ret = gst_audio_decoder_output (dec, NULL);
-    if (ret2 != GST_FLOW_OK)
-      ret = ret2;
     /* everything should be away now */
     if (dec->priv->frames.length) {
       /* not fatal/impossible though if subclass/codec eats stuff */
@@ -1342,8 +1334,6 @@ gst_audio_decoder_flush_decode (GstAudioDecoder * dec)
     /* decode buffer, resulting data prepended to output queue */
     gst_buffer_ref (buf);
     res = gst_audio_decoder_chain_forward (dec, buf);
-    if (res != GST_FLOW_OK)
-      return res;
 
     /* if we generated output, we can discard the buffer, else we
      * keep it in the queue */