From 09792ce90a04d0c822ed9a0965536cb53230543a Mon Sep 17 00:00:00 2001 From: Marijn Suijten Date: Tue, 1 Sep 2020 09:50:12 +0200 Subject: [PATCH] base_transform: Reset unused vfuncs on consecutive configure calls If a user ends up changing the configured mode later on previously registered vfuncs are not reset meaning the object is effectively stuck in mode `Both`. --- gstreamer-base/src/subclass/base_transform.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gstreamer-base/src/subclass/base_transform.rs b/gstreamer-base/src/subclass/base_transform.rs index 1de1b2a3d..f89283e0a 100644 --- a/gstreamer-base/src/subclass/base_transform.rs +++ b/gstreamer-base/src/subclass/base_transform.rs @@ -874,10 +874,12 @@ pub unsafe trait BaseTransformClassSubclassExt: Sized + 'static { match mode { BaseTransformMode::AlwaysInPlace => { + klass.transform = None; klass.transform_ip = Some(base_transform_transform_ip::); } BaseTransformMode::NeverInPlace => { klass.transform = Some(base_transform_transform::); + klass.transform_ip = None; } BaseTransformMode::Both => { klass.transform = Some(base_transform_transform::);