playsink: audio convert bin need not be unconditionally present
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Thu, 8 Mar 2012 16:55:37 +0000 (17:55 +0100)
committerMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Thu, 8 Mar 2012 16:58:17 +0000 (17:58 +0100)
... so avoid NULL manipulation when setting up chain again
(e.g. after having partially gone down to READY in native audio flag
configuration).

gst/playback/gstplaysink.c

index 413c5b5..8757e2b 100644 (file)
@@ -2297,8 +2297,10 @@ setup_audio_chain (GstPlaySink * playsink, gboolean raw)
   GstElement *elem;
   GstPlayAudioChain *chain;
   GstStateChangeReturn ret;
+  GstPlaySinkAudioConvert *conv;
 
   chain = playsink->audiochain;
+  conv = GST_PLAY_SINK_AUDIO_CONVERT_CAST (chain->conv);
 
   chain->chain.raw = raw;
 
@@ -2347,10 +2349,7 @@ setup_audio_chain (GstPlaySink * playsink, gboolean raw)
     }
 
     g_object_set (chain->conv, "use-volume", FALSE, NULL);
-  } else {
-    GstPlaySinkAudioConvert *conv =
-        GST_PLAY_SINK_AUDIO_CONVERT_CAST (chain->conv);
-
+  } else if (conv) {
     /* no volume, we need to add a volume element when we can */
     g_object_set (chain->conv, "use-volume",
         ! !(playsink->flags & GST_PLAY_FLAG_SOFT_VOLUME), NULL);