From 284992d83ace9be90f9f734b5746324074c7d95b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Manuel=20J=C3=A1quez=20Leal?= Date: Fri, 16 Nov 2018 11:21:26 +0100 Subject: [PATCH] Add VideoFrame::from_glib_full() constructor Thus it would be possible to instantiate gst_video::VideoFrame from FFI's VideoFrame created outside of gstreamer_video's crate. Fixes #152 --- gstreamer-video/src/video_frame.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gstreamer-video/src/video_frame.rs b/gstreamer-video/src/video_frame.rs index 754b341bd..df097ad6a 100644 --- a/gstreamer-video/src/video_frame.rs +++ b/gstreamer-video/src/video_frame.rs @@ -157,6 +157,12 @@ impl VideoFrame { )) } } + + pub unsafe fn from_glib_full(frame: ffi::GstVideoFrame) -> Self { + let info = ::VideoInfo(ptr::read(&frame.info)); + let buffer = gst::Buffer::from_glib_none(frame.buffer); + VideoFrame(frame, Some(buffer), info, PhantomData) + } } impl Drop for VideoFrame {