gobject_class->finalize = gst_base_transform_finalize;
klass->passthrough_on_same_caps = FALSE;
+ klass->transform_ip_on_passthrough = TRUE;
klass->transform_caps =
GST_DEBUG_FUNCPTR (gst_base_transform_default_transform_caps);
/* In passthrough mode, give transform_ip a look at the
* buffer, without making it writable, or just push the
* data through */
- if (bclass->transform_ip) {
- GST_DEBUG_OBJECT (trans, "doing passthrough transform");
+ if (bclass->transform_ip_on_passthrough && bclass->transform_ip) {
+ GST_DEBUG_OBJECT (trans, "doing passthrough transform_ip");
ret = bclass->transform_ip (trans, *outbuf);
} else {
GST_DEBUG_OBJECT (trans, "element is in passthrough");
/**
* GstBaseTransformClass:
* @parent_class: Element parent class
- * @passthrough_on_same_caps: If set to TRUE, passthrough mode will be
+ * @passthrough_on_same_caps: If set to %TRUE, passthrough mode will be
* automatically enabled if the caps are the same.
+ * Set to %FALSE by default.
+ * @transform_ip_on_passthrough: If set to %TRUE, @transform_ip will be called in
+ * passthrough mode. The passed buffer might not be
+ * writable. When %FALSE, neither @transform nor
+ * @transform_ip will be called in passthrough mode.
+ * Set to %TRUE by default.
* @transform_caps: Optional. Given the pad in this direction and the given
* caps, what caps are allowed on the other pad in this
* element ?
/*< public >*/
gboolean passthrough_on_same_caps;
+ gboolean transform_ip_on_passthrough;
/* virtual methods for subclasses */
GstCaps* (*transform_caps) (GstBaseTransform *trans,