gst/audiorate/gstaudiorate.c: Properly return GstFlowReturn from gst_pad_push in...
authorEdward Hervey <bilboed@bilboed.com>
Sat, 26 Nov 2005 11:34:15 +0000 (11:34 +0000)
committerEdward Hervey <bilboed@bilboed.com>
Sat, 26 Nov 2005 11:34:15 +0000 (11:34 +0000)
Original commit message from CVS:
* gst/audiorate/gstaudiorate.c: (gst_audiorate_chain):
Properly return GstFlowReturn from gst_pad_push in chain functions.

ChangeLog
gst/audiorate/gstaudiorate.c

index 58f5258..1328494 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2005-11-26  Edward Hervey  <edward@fluendo.com>
+
+       * gst/audiorate/gstaudiorate.c: (gst_audiorate_chain):
+       Properly return GstFlowReturn from gst_pad_push in chain functions.
+
 2005-11-25  Michael Smith  <msmith@fluendo.com>
 
        * ext/ogg/gstoggdemux.c: (gst_ogg_pad_query_convert),
index 3959f04..2abc7e9 100644 (file)
@@ -247,6 +247,7 @@ gst_audiorate_chain (GstPad * pad, GstBuffer * buf)
   GstClockTime in_time, in_duration;
   guint64 in_offset, in_offset_end;
   gint in_size;
+  GstFlowReturn ret = GST_FLOW_OK;
 
   audiorate = GST_AUDIORATE (gst_pad_get_parent (pad));
 
@@ -281,7 +282,8 @@ gst_audiorate_chain (GstPad * pad, GstBuffer * buf)
     GST_BUFFER_OFFSET (fill) = audiorate->next_offset;
     GST_BUFFER_OFFSET_END (fill) = in_offset;
 
-    gst_pad_push (audiorate->srcpad, fill);
+    if ((ret = gst_pad_push (audiorate->srcpad, fill) != GST_FLOW_OK))
+      goto beach;
     audiorate->out++;
     audiorate->add += fillsamples;
 
@@ -302,7 +304,7 @@ gst_audiorate_chain (GstPad * pad, GstBuffer * buf)
       if (!audiorate->silent)
         g_object_notify (G_OBJECT (audiorate), "drop");
 
-      return GST_FLOW_OK;
+      goto beach;
     } else {
       guint64 truncsamples, truncsize, leftsize;
       GstBuffer *trunc;
@@ -327,11 +329,12 @@ gst_audiorate_chain (GstPad * pad, GstBuffer * buf)
       audiorate->drop += truncsamples;
     }
   }
-  gst_pad_push (audiorate->srcpad, buf);
+  ret = gst_pad_push (audiorate->srcpad, buf);
   audiorate->out++;
 
   audiorate->next_offset = in_offset_end;
-  return GST_FLOW_OK;
+beach:
+  return ret;
 }
 
 static void