playsink: set READY sinks to NULL before freeing chain upon failure
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Tue, 10 Aug 2010 09:19:22 +0000 (11:19 +0200)
committerMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Thu, 12 Aug 2010 08:52:58 +0000 (10:52 +0200)
gst/playback/gstplaysink.c

index 8075677..0caa031 100644 (file)
@@ -1333,6 +1333,8 @@ link_failed:
   {
     GST_ELEMENT_ERROR (playsink, CORE, PAD,
         (NULL), ("Failed to configure the video sink."));
+    /* checking sink made it READY */
+    gst_element_set_state (chain->sink, GST_STATE_NULL);
     free_chain ((GstPlayChain *) chain);
     return NULL;
   }
@@ -1826,6 +1828,8 @@ link_failed:
   {
     GST_ELEMENT_ERROR (playsink, CORE, PAD,
         (NULL), ("Failed to configure the audio sink."));
+    /* checking sink made it READY */
+    gst_element_set_state (chain->sink, GST_STATE_NULL);
     free_chain ((GstPlayChain *) chain);
     return NULL;
   }
@@ -2040,6 +2044,8 @@ link_failed:
   {
     GST_ELEMENT_ERROR (playsink, CORE, PAD,
         (NULL), ("Failed to configure the visualisation element."));
+    /* element made it to READY */
+    gst_element_set_state (chain->vis, GST_STATE_NULL);
     free_chain ((GstPlayChain *) chain);
     return NULL;
   }