gst/: Don't ignore _push() return values.
authorWim Taymans <wim.taymans@gmail.com>
Thu, 5 May 2005 09:49:08 +0000 (09:49 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Thu, 5 May 2005 09:49:08 +0000 (09:49 +0000)
Original commit message from CVS:
* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_chain),
(gst_audio_convert_caps_remove_format_info),
(gst_audio_convert_setcaps), (gst_audio_convert_fixate),
(gst_audio_convert_change_state), (gst_audio_convert_channels):
* gst/videotestsrc/gstvideotestsrc.c:
(gst_videotestsrc_src_negotiate), (gst_videotestsrc_src_link),
(gst_videotestsrc_parse_caps), (gst_videotestsrc_src_accept_caps),
(gst_videotestsrc_setcaps), (gst_videotestsrc_activate),
(gst_videotestsrc_init), (gst_videotestsrc_loop):
Don't ignore _push() return values.
Make sure no processing is done when shutting down.
Videotestsrc pad activation fix.

ChangeLog
gst/audioconvert/gstaudioconvert.c
gst/videotestsrc/gstvideotestsrc.c

index 6d9602d..6e83c1b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,20 @@
 2005-05-05  Wim Taymans  <wim@fluendo.com>
 
+       * gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_chain),
+       (gst_audio_convert_caps_remove_format_info),
+       (gst_audio_convert_setcaps), (gst_audio_convert_fixate),
+       (gst_audio_convert_change_state), (gst_audio_convert_channels):
+       * gst/videotestsrc/gstvideotestsrc.c:
+       (gst_videotestsrc_src_negotiate), (gst_videotestsrc_src_link),
+       (gst_videotestsrc_parse_caps), (gst_videotestsrc_src_accept_caps),
+       (gst_videotestsrc_setcaps), (gst_videotestsrc_activate),
+       (gst_videotestsrc_init), (gst_videotestsrc_loop):
+       Don't ignore _push() return values.
+       Make sure no processing is done when shutting down.
+       Videotestsrc pad activation fix.
+
+2005-05-05  Wim Taymans  <wim@fluendo.com>
+
        * gst/adder/Makefile.am:
        * gst/adder/gstadder.c: (gst_adder_setcaps),
        (gst_adder_class_init), (gst_adder_init),
index dd98d43..c4aca50 100644 (file)
@@ -231,6 +231,7 @@ static GstFlowReturn
 gst_audio_convert_chain (GstPad * pad, GstBuffer * buf)
 {
   GstAudioConvert *this;
+  GstFlowReturn ret;
 
   this = GST_AUDIO_CONVERT (GST_OBJECT_PARENT (pad));
 
@@ -257,14 +258,17 @@ gst_audio_convert_chain (GstPad * pad, GstBuffer * buf)
    * - convert rate and channels
    * - convert back to output format
    */
+  GST_STREAM_LOCK (pad);
 
   buf = gst_audio_convert_buffer_to_default_format (this, buf);
-
   buf = gst_audio_convert_channels (this, buf);
-
   buf = gst_audio_convert_buffer_from_default_format (this, buf);
 
-  return gst_pad_push (this->src, buf);
+  ret = gst_pad_push (this->src, buf);
+
+  GST_STREAM_UNLOCK (pad);
+
+  return ret;
 }
 
 static GstCaps *
@@ -609,8 +613,10 @@ gst_audio_convert_change_state (GstElement * element)
 
   switch (GST_STATE_TRANSITION (element)) {
     case GST_STATE_PAUSED_TO_READY:
+      GST_STREAM_LOCK (this->sink);
       this->convert_internal = NULL;
       gst_audio_convert_unset_matrix (this);
+      GST_STREAM_UNLOCK (this->sink);
       break;
     default:
       break;
index fd06e0e..31b2ab4 100644 (file)
@@ -342,6 +342,9 @@ gst_videotestsrc_activate (GstPad * pad, GstActivateMode mode)
 
       result = TRUE;
       break;
+    default:
+      result = FALSE;
+      break;
   }
   return result;
 }
@@ -676,7 +679,9 @@ gst_videotestsrc_loop (GstPad * pad)
   videotestsrc->n_frames++;
   videotestsrc->running_time += GST_BUFFER_DURATION (outbuf);
 
-  gst_pad_push (pad, outbuf);
+  if (gst_pad_push (pad, outbuf) != GST_FLOW_OK)
+    goto need_pause;
+
   return;
 
 need_pause: