playbin: Make sure to keep a reference on the volume element

Fixes null pointer dereferences under certain circumstances.

Fixes bug #595401.
This commit is contained in:
Josep Torra Valles 2009-10-31 14:02:40 +01:00 committed by Sebastian Dröge
parent f9772089d0
commit e9d1819fe3

View file

@ -1127,7 +1127,7 @@ gen_audio_element (GstPlayBin * play_bin)
if (volume == NULL)
goto no_volume;
g_object_set (G_OBJECT (volume), "volume", play_bin->volume, NULL);
play_bin->volume_element = volume;
play_bin->volume_element = GST_ELEMENT_CAST (gst_object_ref (volume));
gst_bin_add (GST_BIN_CAST (element), volume);
res = gst_element_link_pads (conv, "src", scale, "sink");
@ -1442,6 +1442,11 @@ remove_sinks (GstPlayBin * play_bin)
gst_object_unref (play_bin->textoverlay_element);
play_bin->textoverlay_element = NULL;
}
if (play_bin->volume_element) {
gst_object_unref (play_bin->volume_element);
play_bin->volume_element = NULL;
}
}
/* loop over the streams and set up the pipeline to play this