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    ///
11    /// # Returns
12    ///
13    ///
14    /// ## `fps_n`
15    /// Numerator of frame rate
16    ///
17    /// ## `fps_d`
18    /// Denominator of frame rate
19    #[doc(alias = "get_framerate")]
20    #[doc(alias = "gst_play_video_info_get_framerate")]
21    pub fn framerate(&self) -> gst::Fraction {
22        unsafe {
23            let mut fps_n = mem::MaybeUninit::uninit();
24            let mut fps_d = mem::MaybeUninit::uninit();
25            ffi::gst_play_video_info_get_framerate(
26                self.to_glib_none().0,
27                fps_n.as_mut_ptr(),
28                fps_d.as_mut_ptr(),
29            );
30            (fps_n.assume_init(), fps_d.assume_init()).into()
31        }
32    }
33
34    /// Returns the pixel aspect ratio in `par_n` and `par_d`
35    ///
36    /// # Returns
37    ///
38    ///
39    /// ## `par_n`
40    /// numerator
41    ///
42    /// ## `par_d`
43    /// denominator
44    #[doc(alias = "get_pixel_aspect_ratio")]
45    #[doc(alias = "gst_play_video_info_get_pixel_aspect_ratio")]
46    pub fn pixel_aspect_ratio(&self) -> gst::Fraction {
47        unsafe {
48            let mut par_n = mem::MaybeUninit::uninit();
49            let mut par_d = mem::MaybeUninit::uninit();
50            ffi::gst_play_video_info_get_pixel_aspect_ratio(
51                self.to_glib_none().0,
52                par_n.as_mut_ptr(),
53                par_d.as_mut_ptr(),
54            );
55            (par_n.assume_init() as i32, par_d.assume_init() as i32).into()
56        }
57    }
58}