Index: libs/gst/base/gstbasetransform.c
===================================================================
RCS file: /cvs/gstreamer/gstreamer/libs/gst/base/gstbasetransform.c,v
retrieving revision 1.84
diff -u -p -r1.84 gstbasetransform.c
--- libs/gst/base/gstbasetransform.c	31 Jul 2006 15:12:59 -0000	1.84
+++ libs/gst/base/gstbasetransform.c	8 Aug 2006 15:42:47 -0000
@@ -1149,18 +1149,22 @@ done:
 
 not_configured:
   {
-    /* let the default allocator handle it */
+    /* let the default allocator handle it... */
     GST_DEBUG_OBJECT (trans, "not configured");
     gst_buffer_replace (buf, NULL);
-    res = GST_FLOW_OK;
+    /* ...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);
     goto done;
   }
 unknown_size:
   {
-    /* let the default allocator handle it */
+    /* let the default allocator handle it... */
     GST_DEBUG_OBJECT (trans, "unknown size");
     gst_buffer_replace (buf, NULL);
-    res = GST_FLOW_OK;
+    /* ...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);
     goto done;
   }
 }
