goto done;
GST_BASE_TRANSFORM_LOCK (trans);
- passthrough = trans->passthrough || trans->always_in_place;
+ passthrough = trans->passthrough;
GST_BASE_TRANSFORM_UNLOCK (trans);
- if (passthrough) {
+ GST_DEBUG_OBJECT (trans, "propose allocation values");
+ /* pass the query to the propose_allocation vmethod if any */
+ if (G_LIKELY (klass->propose_allocation)) {
+ ret = klass->propose_allocation (trans, query);
+ } else if (passthrough) {
GST_DEBUG_OBJECT (trans, "doing passthrough query");
ret = gst_pad_peer_query (otherpad, query);
} else {
- GST_DEBUG_OBJECT (trans, "propose allocation values");
- /* pass the query to the propose_allocation vmethod if any */
- if (G_LIKELY (klass->propose_allocation))
- ret = klass->propose_allocation (trans, query);
- else
- ret = FALSE;
+ ret = FALSE;
}
GST_DEBUG_OBJECT (trans, "ALLOCATION ret %d, %" GST_PTR_FORMAT, ret,
query);
* should must chain up to the parent if they didn't handle the
* query
* @propose_allocation: Propose buffer allocation parameters for upstream elements.
- * This function is only called when not operating in
- * passthrough mode. The default implementation is NULL.
+ * This function must be implemented if the element reads or
+ * writes the buffer content. The default implementation is NULL.
* @decide_allocation: Setup the allocation parameters for allocating output
* buffers. The passed in query contains the result of the
* downstream allocation query. This function is only called