gstreamer_play/
play_video_info.rs

1// Take a look at the license at the top of the repository in the LICENSE file.
2
3use std::mem;
4
5use glib::translate::*;
6
7use crate::{ffi, PlayVideoInfo};
8
9impl PlayVideoInfo {
10    #[doc(alias = "get_framerate")]
11    #[doc(alias = "gst_play_video_info_get_framerate")]
12    pub fn framerate(&self) -> gst::Fraction {
13        unsafe {
14            let mut fps_n = mem::MaybeUninit::uninit();
15            let mut fps_d = mem::MaybeUninit::uninit();
16            ffi::gst_play_video_info_get_framerate(
17                self.to_glib_none().0,
18                fps_n.as_mut_ptr(),
19                fps_d.as_mut_ptr(),
20            );
21            (fps_n.assume_init(), fps_d.assume_init()).into()
22        }
23    }
24
25    #[doc(alias = "get_pixel_aspect_ratio")]
26    #[doc(alias = "gst_play_video_info_get_pixel_aspect_ratio")]
27    pub fn pixel_aspect_ratio(&self) -> gst::Fraction {
28        unsafe {
29            let mut par_n = mem::MaybeUninit::uninit();
30            let mut par_d = mem::MaybeUninit::uninit();
31            ffi::gst_play_video_info_get_pixel_aspect_ratio(
32                self.to_glib_none().0,
33                par_n.as_mut_ptr(),
34                par_d.as_mut_ptr(),
35            );
36            (par_n.assume_init() as i32, par_d.assume_init() as i32).into()
37        }
38    }
39}