diff --git a/ChangeLog b/ChangeLog index c23146f7a8..9e1a5c621a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2004-03-06 Christophe Fergeau + + * ext/faac/gstfaac.c: (gst_faac_chain): + * ext/flac/gstflactag.c: (gst_flac_tag_chain): + * ext/libpng/gstpngenc.c: (user_write_data): + * ext/mikmod/gstmikmod.c: (gst_mikmod_loop): + * gst/ac3parse/gstac3parse.c: (gst_ac3parse_chain): + * gst/mpeg2sub/gstmpeg2subt.c: (gst_mpeg2subt_chain_subtitle): + * gst/mpegstream/gstrfc2250enc.c: (gst_rfc2250_enc_add_slice): + Fix several misuse of gst_buffer_merge (it doesn't take ownership + of any buffer), should fix some leaks. I hope I didn't unref buffers + that shouldn't be... + 2004-03-06 Thomas Vander Stichele * gst-libs/gst/media-info/media-info-priv.c: (have_type_callback), diff --git a/gst/ac3parse/gstac3parse.c b/gst/ac3parse/gstac3parse.c index 8807b4900c..b803983b74 100644 --- a/gst/ac3parse/gstac3parse.c +++ b/gst/ac3parse/gstac3parse.c @@ -227,10 +227,11 @@ gst_ac3parse_chain (GstPad *pad, GstData *_data) /* deal with partial frame from previous buffer */ if (ac3parse->partialbuf) { - - ac3parse->partialbuf = gst_buffer_merge(ac3parse->partialbuf, buf); - /* and the one we received.. */ + GstBuffer *merge; + merge = gst_buffer_merge(ac3parse->partialbuf, buf); gst_buffer_unref(buf); + gst_buffer_unref(ac3parse->partialbuf); + ac3parse->partialbuf = merge; } else { ac3parse->partialbuf = buf; diff --git a/gst/mpegstream/gstrfc2250enc.c b/gst/mpegstream/gstrfc2250enc.c index 19a33214f1..a2f8de60e2 100644 --- a/gst/mpegstream/gstrfc2250enc.c +++ b/gst/mpegstream/gstrfc2250enc.c @@ -208,12 +208,14 @@ gst_rfc2250_enc_add_slice (GstRFC2250Enc *enc, GstBuffer *buffer) while (slice_length > 0) { GstBuffer *outbuf; - + GstBuffer *newbuf; outbuf = gst_buffer_create_sub (buffer, offset, MIN (enc->remaining, slice_length)); - gst_buffer_merge (enc->packet, outbuf); + newbuf = gst_buffer_merge (enc->packet, outbuf); slice_length -= GST_BUFFER_SIZE (outbuf); offset += GST_BUFFER_SIZE (outbuf); gst_buffer_unref (outbuf); + gst_buffer_unref (newbuf); + enc->packet = newbuf; gst_rfc2250_enc_new_buffer (enc); } gst_buffer_unref (buffer);