qtmux: Fix leak

gst_qt_mux_can_renegotiate () gets called everywhere following
that pattern:

return gst_qt_mux_can_renegotiate (ref(self));

This means the reference must be released both in the success
and failure cases, it was only done in the success case.
This commit is contained in:
Mathieu Duponchelle 2018-04-13 22:49:43 +02:00
parent acb6090e47
commit ee99cd7037

View file

@ -4822,6 +4822,7 @@ gst_qtmux_caps_is_subset_full (GstQTMux * qtmux, GstCaps * subset,
return gst_structure_foreach (sub_s, check_field, sup_s); return gst_structure_foreach (sub_s, check_field, sup_s);
} }
/* will unref @qtmux */
static gboolean static gboolean
gst_qt_mux_can_renegotiate (GstQTMux * qtmux, GstPad * pad, GstCaps * caps) gst_qt_mux_can_renegotiate (GstQTMux * qtmux, GstPad * pad, GstCaps * caps)
{ {
@ -4845,6 +4846,7 @@ gst_qt_mux_can_renegotiate (GstQTMux * qtmux, GstPad * pad, GstCaps * caps)
GST_DEBUG_OBJECT (qtmux, GST_DEBUG_OBJECT (qtmux,
"pad %s accepted renegotiation to %" GST_PTR_FORMAT " from %" "pad %s accepted renegotiation to %" GST_PTR_FORMAT " from %"
GST_PTR_FORMAT, GST_PAD_NAME (pad), caps, current_caps); GST_PTR_FORMAT, GST_PAD_NAME (pad), caps, current_caps);
gst_object_unref (qtmux);
gst_caps_unref (current_caps); gst_caps_unref (current_caps);
return TRUE; return TRUE;