basetransform: allow not passthrough if generate_output is implemented

This allows an element to not require implementing transform or
transform_ip.
This commit is contained in:
Matthew Waters 2020-03-11 22:39:35 +11:00 committed by Tim-Philipp Müller
parent c2a7875aa1
commit d1c887bc77

View file

@ -2515,7 +2515,7 @@ gst_base_transform_src_activate_mode (GstPad * pad, GstObject * parent,
* useful for filters that do not care about negotiation.
*
* Always %TRUE for filters which don't implement either a transform
* or transform_ip method.
* or transform_ip or generate_output method.
*
* MT safe.
*/
@ -2531,7 +2531,8 @@ gst_base_transform_set_passthrough (GstBaseTransform * trans,
GST_OBJECT_LOCK (trans);
if (!passthrough) {
if (bclass->transform_ip || bclass->transform)
if (bclass->transform_ip || bclass->transform || (bclass->generate_output
&& bclass->generate_output != default_generate_output))
trans->priv->passthrough = FALSE;
} else {
trans->priv->passthrough = TRUE;