decodebin3: fix mutex leaks

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3130>
This commit is contained in:
Aleksandr Slobodeniuk 2022-10-06 13:03:26 +02:00 committed by GStreamer Marge Bot
parent 397c4c3392
commit c9219a0cb6

View file

@ -469,6 +469,7 @@ static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src_%u",
static void gst_decodebin3_dispose (GObject * object); static void gst_decodebin3_dispose (GObject * object);
static void gst_decodebin3_finalize (GObject * object);
static void gst_decodebin3_set_property (GObject * object, guint prop_id, static void gst_decodebin3_set_property (GObject * object, guint prop_id,
const GValue * value, GParamSpec * pspec); const GValue * value, GParamSpec * pspec);
static void gst_decodebin3_get_property (GObject * object, guint prop_id, static void gst_decodebin3_get_property (GObject * object, guint prop_id,
@ -551,6 +552,7 @@ gst_decodebin3_class_init (GstDecodebin3Class * klass)
GstBinClass *bin_klass = (GstBinClass *) klass; GstBinClass *bin_klass = (GstBinClass *) klass;
gobject_klass->dispose = gst_decodebin3_dispose; gobject_klass->dispose = gst_decodebin3_dispose;
gobject_klass->finalize = gst_decodebin3_finalize;
gobject_klass->set_property = gst_decodebin3_set_property; gobject_klass->set_property = gst_decodebin3_set_property;
gobject_klass->get_property = gst_decodebin3_get_property; gobject_klass->get_property = gst_decodebin3_get_property;
@ -679,6 +681,18 @@ gst_decodebin3_dispose (GObject * object)
G_OBJECT_CLASS (parent_class)->dispose (object); G_OBJECT_CLASS (parent_class)->dispose (object);
} }
static void
gst_decodebin3_finalize (GObject * object)
{
GstDecodebin3 *dbin = (GstDecodebin3 *) object;
g_mutex_clear (&dbin->factories_lock);
g_mutex_clear (&dbin->selection_lock);
g_mutex_clear (&dbin->input_lock);
G_OBJECT_CLASS (parent_class)->finalize (object);
}
static void static void
gst_decodebin3_set_property (GObject * object, guint prop_id, gst_decodebin3_set_property (GObject * object, guint prop_id,
const GValue * value, GParamSpec * pspec) const GValue * value, GParamSpec * pspec)