fallbackswitch: Update local version of aggregator bindings

This commit is contained in:
Sebastian Dröge 2020-11-05 17:05:36 +02:00
parent 41a660ba4f
commit 4c4ed6eed2
2 changed files with 8 additions and 10 deletions

View file

@ -16,7 +16,6 @@ use gst::subclass::prelude::*;
use std::ptr;
use super::super::Aggregator;
use super::super::AggregatorClass;
use super::super::AggregatorPad;
pub trait AggregatorImpl: AggregatorImplExt + ElementImpl {
@ -592,14 +591,14 @@ impl<T: AggregatorImpl> AggregatorImplExt for T {
}
}
unsafe impl<T: AggregatorImpl> IsSubclassable<T> for AggregatorClass
unsafe impl<T: AggregatorImpl> IsSubclassable<T> for Aggregator
where
<T as ObjectSubclass>::Instance: PanicPoison,
{
fn override_vfuncs(&mut self) {
<gst::ElementClass as IsSubclassable<T>>::override_vfuncs(self);
fn override_vfuncs(klass: &mut glib::object::Class<Self>) {
<gst::Element as IsSubclassable<T>>::override_vfuncs(klass);
unsafe {
let klass = &mut *(self as *mut Self as *mut gst_base_sys::GstAggregatorClass);
let klass = &mut *(klass.as_mut() as *mut gst_base_sys::GstAggregatorClass);
klass.flush = Some(aggregator_flush::<T>);
klass.clip = Some(aggregator_clip::<T>);
klass.finish_buffer = Some(aggregator_finish_buffer::<T>);

View file

@ -15,7 +15,6 @@ use gst::subclass::prelude::*;
use super::super::Aggregator;
use super::super::AggregatorPad;
use super::super::AggregatorPadClass;
pub trait AggregatorPadImpl: AggregatorPadImplExt + PadImpl {
fn flush(
@ -97,11 +96,11 @@ impl<T: AggregatorPadImpl> AggregatorPadImplExt for T {
}
}
}
unsafe impl<T: AggregatorPadImpl> IsSubclassable<T> for AggregatorPadClass {
fn override_vfuncs(&mut self) {
<gst::PadClass as IsSubclassable<T>>::override_vfuncs(self);
unsafe impl<T: AggregatorPadImpl> IsSubclassable<T> for AggregatorPad {
fn override_vfuncs(klass: &mut glib::object::Class<Self>) {
<gst::Pad as IsSubclassable<T>>::override_vfuncs(klass);
unsafe {
let klass = &mut *(self as *mut Self as *mut gst_base_sys::GstAggregatorPadClass);
let klass = &mut *(klass.as_mut() as *mut gst_base_sys::GstAggregatorPadClass);
klass.flush = Some(aggregator_pad_flush::<T>);
klass.skip_buffer = Some(aggregator_pad_skip_buffer::<T>);
}