gstreamer_pbutils/
discoverer_video_info.rs
1use 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}