libs/gst/base/gstbasetransform.c: Take new caps ref because our old one might have been gone when the subclass perfor...

Original commit message from CVS:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_prepare_output_buffer):
Take new caps ref because our old one might have been gone when the
subclass performs a gst_pad_set_caps() on the srcpad. See #548764.
This commit is contained in:
Wim Taymans 2008-09-24 15:03:40 +00:00
parent d36b9c17d4
commit c2552e7d0d
2 changed files with 11 additions and 0 deletions

View file

@ -1,3 +1,10 @@
2008-09-24 Wim Taymans <wim.taymans@collabora.co.uk>
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_prepare_output_buffer):
Take new caps ref because our old one might have been gone when the
subclass performs a gst_pad_set_caps() on the srcpad. See #548764.
2008-09-15 Stefan Kost <ensonic@users.sf.net>
* configure.ac:

View file

@ -1117,6 +1117,10 @@ gst_base_transform_prepare_output_buffer (GstBaseTransform * trans,
bclass->prepare_output_buffer (trans, in_buf, outsize, oldcaps,
out_buf);
/* get a new ref to the srcpad caps, the prepare_output_buffer function can
* update the pad caps if it wants */
oldcaps = GST_PAD_CAPS (trans->srcpad);
/* FIXME 0.11:
* decrease refcount again if vmethod returned refcounted in_buf. This
* is because we need to make sure that the buffer is writable for the