gstreamer_pbutils/
discoverer_video_info.rs

1// Take a look at the license at the top of the repository in the LICENSE file.
2
3use std::fmt;
4
5use glib::{prelude::*, translate::*};
6
7use crate::{ffi, DiscovererStreamInfo, DiscovererVideoInfo};
8
9impl DiscovererVideoInfo {
10    #[doc(alias = "get_framerate")]
11    #[doc(alias = "gst_discoverer_video_info_get_framerate_num")]
12    #[doc(alias = "gst_discoverer_video_info_get_framerate_denom")]
13    pub fn framerate(&self) -> gst::Fraction {
14        unsafe {
15            gst::Fraction::new(
16                ffi::gst_discoverer_video_info_get_framerate_num(self.to_glib_none().0) as i32,
17                ffi::gst_discoverer_video_info_get_framerate_denom(self.to_glib_none().0) as i32,
18            )
19        }
20    }
21
22    #[doc(alias = "get_par")]
23    #[doc(alias = "gst_discoverer_video_info_get_par_num")]
24    #[doc(alias = "gst_discoverer_video_info_get_par_denom")]
25    pub fn par(&self) -> gst::Fraction {
26        unsafe {
27            gst::Fraction::new(
28                ffi::gst_discoverer_video_info_get_par_num(self.to_glib_none().0) as i32,
29                ffi::gst_discoverer_video_info_get_par_denom(self.to_glib_none().0) as i32,
30            )
31        }
32    }
33
34    pub fn debug(&self) -> Debug {
35        Debug(self)
36    }
37}
38
39pub struct Debug<'a>(&'a DiscovererVideoInfo);
40
41impl fmt::Debug for Debug<'_> {
42    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
43        let info = self.0.upcast_ref::<DiscovererStreamInfo>();
44
45        f.debug_struct("DiscovererVideoInfo")
46            .field("width", &self.0.width())
47            .field("height", &self.0.height())
48            .field("depth", &self.0.depth())
49            .field("bitrate", &self.0.bitrate())
50            .field("max-bitrate", &self.0.max_bitrate())
51            .field("is-image", &self.0.is_image())
52            .field("is-interlaced", &self.0.is_interlaced())
53            .field("stream", &info.debug())
54            .finish()
55    }
56}