feat: Get iced-video working
This commit is contained in:
@@ -3,6 +3,7 @@ pub trait GstWrapper {
|
||||
fn from_gst(gst: Self::GstType) -> Self;
|
||||
// fn into_gst(self) -> Self::GstType;
|
||||
fn as_gst_ref(&self) -> &Self::GstType;
|
||||
fn from_gst_ref(gst: &Self::GstType) -> &Self;
|
||||
}
|
||||
|
||||
#[macro_export]
|
||||
@@ -51,6 +52,10 @@ macro_rules! wrap_gst {
|
||||
fn as_gst_ref(&self) -> &Self::GstType {
|
||||
&self.inner
|
||||
}
|
||||
|
||||
fn from_gst_ref(gst: &Self::GstType) -> &Self {
|
||||
unsafe { &*(gst as *const Self::GstType as *const Self) }
|
||||
}
|
||||
}
|
||||
|
||||
impl ChildOf<$name> for $name {
|
||||
@@ -97,7 +102,14 @@ macro_rules! parent_child {
|
||||
let downcasted = self
|
||||
.inner
|
||||
.downcast_ref::<<$parent as GstWrapper>::GstType>()
|
||||
.expect("BUG: Failed to downcast GStreamer type from child to parent");
|
||||
.expect(
|
||||
format!(
|
||||
"BUG: Failed to downcast GStreamer type from child {} to parent {}",
|
||||
stringify!($child),
|
||||
stringify!($parent)
|
||||
)
|
||||
.as_str(),
|
||||
);
|
||||
unsafe {
|
||||
&*(downcasted as *const <$parent as GstWrapper>::GstType as *const $parent)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user