mpegtsmux: Fix memory leak when using prepare_func

prepare_func will allocate a new buffer to replace the original
one. Instead of using gst_buffer_replace (which causes an extra
refcount increment on the new buffer), we just unref the original
buffer.

https://bugzilla.gnome.org/show_bug.cgi?id=699786
This commit is contained in:
Greg Rutz 2013-05-07 08:26:03 -06:00 committed by Sebastian Dröge
parent 0511a6b032
commit 4d4fd09a3a

View file

@ -1018,9 +1018,9 @@ mpegtsmux_clip_inc_running_time (GstCollectPads * pads,
if (pad_data->prepare_func) { if (pad_data->prepare_func) {
MpegTsMux *mux = (MpegTsMux *) user_data; MpegTsMux *mux = (MpegTsMux *) user_data;
buf = pad_data->prepare_func (buf, pad_data, mux); *outbuf = pad_data->prepare_func (buf, pad_data, mux);
if (buf) g_assert (*outbuf);
gst_buffer_replace (outbuf, buf); gst_buffer_unref (buf);
} }
return GST_FLOW_OK; return GST_FLOW_OK;