mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-03 13:02:29 +00:00
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:
parent
f9772089d0
commit
e9d1819fe3
1 changed files with 6 additions and 1 deletions
|
@ -1127,7 +1127,7 @@ gen_audio_element (GstPlayBin * play_bin)
|
||||||
if (volume == NULL)
|
if (volume == NULL)
|
||||||
goto no_volume;
|
goto no_volume;
|
||||||
g_object_set (G_OBJECT (volume), "volume", play_bin->volume, NULL);
|
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);
|
gst_bin_add (GST_BIN_CAST (element), volume);
|
||||||
|
|
||||||
res = gst_element_link_pads (conv, "src", scale, "sink");
|
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);
|
gst_object_unref (play_bin->textoverlay_element);
|
||||||
play_bin->textoverlay_element = NULL;
|
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
|
/* loop over the streams and set up the pipeline to play this
|
||||||
|
|
Loading…
Reference in a new issue