libs/gst/base/gstbasetransform.c: always_in_place does not mean that the sink and source caps are the same! Make sure...

Original commit message from CVS:
* 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.
This commit is contained in:
Wim Taymans 2007-05-03 14:58:05 +00:00
parent 60f3a9de93
commit 1d16f949be
2 changed files with 9 additions and 2 deletions

View file

@ -1,3 +1,10 @@
2007-05-03 Wim Taymans <wim@fluendo.com>
* 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 <wim@fluendo.com>
* docs/libs/gstreamer-libs-sections.txt:

View file

@ -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);