diff --git a/ChangeLog b/ChangeLog index 2bf84a56b9..4b612d900d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2007-05-03 Wim Taymans + + * libs/gst/base/gstbasetransform.c: + (gst_base_transform_buffer_alloc): + always_in_place does not mean that the sink and source caps are the + same! Make sure we don't blindly proxy the buffer_alloc in this case. + 2007-05-03 Wim Taymans * docs/libs/gstreamer-libs-sections.txt: diff --git a/libs/gst/base/gstbasetransform.c b/libs/gst/base/gstbasetransform.c index f2c10e5fa3..525a9c3ad5 100644 --- a/libs/gst/base/gstbasetransform.c +++ b/libs/gst/base/gstbasetransform.c @@ -1189,7 +1189,7 @@ not_configured: /* let the default allocator handle it... */ GST_DEBUG_OBJECT (trans, "not configured"); gst_buffer_replace (buf, NULL); - if (trans->passthrough || trans->always_in_place) { + if (trans->passthrough) { /* ...by calling alloc_buffer without setting caps on the src pad, which * will force negotiation in the chain function. */ res = gst_pad_alloc_buffer (trans->srcpad, offset, size, caps, buf); @@ -1204,7 +1204,7 @@ unknown_size: /* let the default allocator handle it... */ GST_DEBUG_OBJECT (trans, "unknown size"); gst_buffer_replace (buf, NULL); - if (trans->passthrough || trans->always_in_place) { + if (trans->passthrough) { /* ...by calling alloc_buffer without setting caps on the src pad, which * will force negotiation in the chain function. */ res = gst_pad_alloc_buffer (trans->srcpad, offset, size, caps, buf);