forked from mirrors/gstreamer-rs
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`.
This commit is contained in:
parent
730500b09f
commit
09792ce90a
1 changed files with 2 additions and 0 deletions
|
@ -874,10 +874,12 @@ pub unsafe trait BaseTransformClassSubclassExt: Sized + 'static {
|
||||||
|
|
||||||
match mode {
|
match mode {
|
||||||
BaseTransformMode::AlwaysInPlace => {
|
BaseTransformMode::AlwaysInPlace => {
|
||||||
|
klass.transform = None;
|
||||||
klass.transform_ip = Some(base_transform_transform_ip::<T>);
|
klass.transform_ip = Some(base_transform_transform_ip::<T>);
|
||||||
}
|
}
|
||||||
BaseTransformMode::NeverInPlace => {
|
BaseTransformMode::NeverInPlace => {
|
||||||
klass.transform = Some(base_transform_transform::<T>);
|
klass.transform = Some(base_transform_transform::<T>);
|
||||||
|
klass.transform_ip = None;
|
||||||
}
|
}
|
||||||
BaseTransformMode::Both => {
|
BaseTransformMode::Both => {
|
||||||
klass.transform = Some(base_transform_transform::<T>);
|
klass.transform = Some(base_transform_transform::<T>);
|
||||||
|
|
Loading…
Reference in a new issue