diff --git a/gst/playback/gstplaysink.c b/gst/playback/gstplaysink.c index 8c025a4572..aa44feef67 100644 --- a/gst/playback/gstplaysink.c +++ b/gst/playback/gstplaysink.c @@ -842,7 +842,8 @@ gst_play_sink_set_sink (GstPlaySink * playsink, GstPlaySinkType type, GST_PLAY_SINK_UNLOCK (playsink); if (old) { - if (old != sink) + /* Set the old sink to NULL if it is not used any longer */ + if (old != sink && !GST_OBJECT_PARENT (old)) gst_element_set_state (old, GST_STATE_NULL); gst_object_unref (old); }