Skip to main content

nominal_api/conjure/objects/scout/video/api/
video_all_segments_metadata.rs

1#[derive(
2    Debug,
3    Clone,
4    conjure_object::serde::Serialize,
5    conjure_object::serde::Deserialize,
6    conjure_object::private::DeriveWith
7)]
8#[serde(crate = "conjure_object::serde")]
9#[derive_with(PartialEq, Eq, PartialOrd, Ord, Hash)]
10#[conjure_object::private::staged_builder::staged_builder]
11#[builder(crate = conjure_object::private::staged_builder, update, inline)]
12pub struct VideoAllSegmentsMetadata {
13    #[serde(rename = "rid")]
14    rid: super::super::super::super::api::rids::VideoRid,
15    #[serde(rename = "numFrames")]
16    num_frames: i32,
17    #[serde(rename = "numSegments")]
18    num_segments: i32,
19    #[builder(default, into)]
20    #[serde(rename = "scaleFactor", skip_serializing_if = "Option::is_none", default)]
21    #[derive_with(with = conjure_object::private::DoubleWrapper)]
22    scale_factor: Option<f64>,
23    #[builder(
24        custom(type = super::super::super::super::api::Timestamp, convert = Box::new)
25    )]
26    #[serde(rename = "minAbsoluteTimestamp")]
27    min_absolute_timestamp: Box<super::super::super::super::api::Timestamp>,
28    #[builder(
29        custom(type = super::super::super::super::api::Timestamp, convert = Box::new)
30    )]
31    #[serde(rename = "maxAbsoluteTimestamp")]
32    max_absolute_timestamp: Box<super::super::super::super::api::Timestamp>,
33    #[serde(rename = "mediaDurationSeconds")]
34    #[derive_with(with = conjure_object::private::DoubleWrapper)]
35    media_duration_seconds: f64,
36    #[serde(rename = "mediaFrameRate")]
37    #[derive_with(with = conjure_object::private::DoubleWrapper)]
38    media_frame_rate: f64,
39    #[builder(
40        default,
41        custom(
42            type = impl
43            Into<Option<super::super::super::super::api::Timestamp>>,
44            convert = |v|v.into().map(Box::new)
45        )
46    )]
47    #[serde(rename = "minTimestamp", skip_serializing_if = "Option::is_none", default)]
48    min_timestamp: Option<Box<super::super::super::super::api::Timestamp>>,
49    #[builder(
50        default,
51        custom(
52            type = impl
53            Into<Option<super::super::super::super::api::Timestamp>>,
54            convert = |v|v.into().map(Box::new)
55        )
56    )]
57    #[serde(rename = "maxTimestamp", skip_serializing_if = "Option::is_none", default)]
58    max_timestamp: Option<Box<super::super::super::super::api::Timestamp>>,
59    #[builder(default, into)]
60    #[serde(
61        rename = "durationSeconds",
62        skip_serializing_if = "Option::is_none",
63        default
64    )]
65    #[derive_with(with = conjure_object::private::DoubleWrapper)]
66    duration_seconds: Option<f64>,
67    #[builder(default, into)]
68    #[serde(rename = "frameRate", skip_serializing_if = "Option::is_none", default)]
69    #[derive_with(with = conjure_object::private::DoubleWrapper)]
70    frame_rate: Option<f64>,
71}
72impl VideoAllSegmentsMetadata {
73    #[inline]
74    pub fn rid(&self) -> &super::super::super::super::api::rids::VideoRid {
75        &self.rid
76    }
77    #[inline]
78    pub fn num_frames(&self) -> i32 {
79        self.num_frames
80    }
81    #[inline]
82    pub fn num_segments(&self) -> i32 {
83        self.num_segments
84    }
85    /// deprecated, in favor of per-file VideoFileSegmentsMetadata scaleFactor. Will be removed after April 15th.
86    #[inline]
87    pub fn scale_factor(&self) -> Option<f64> {
88        self.scale_factor.as_ref().map(|o| *o)
89    }
90    #[inline]
91    pub fn min_absolute_timestamp(&self) -> &super::super::super::super::api::Timestamp {
92        &*self.min_absolute_timestamp
93    }
94    /// the timestamp corresponding to absolute starting timestamp plus absolute duration of the video.
95    #[inline]
96    pub fn max_absolute_timestamp(&self) -> &super::super::super::super::api::Timestamp {
97        &*self.max_absolute_timestamp
98    }
99    #[inline]
100    pub fn media_duration_seconds(&self) -> f64 {
101        self.media_duration_seconds
102    }
103    /// The average media frame rate (FPS) of the video calculated as total frames / duration in seconds.
104    #[inline]
105    pub fn media_frame_rate(&self) -> f64 {
106        self.media_frame_rate
107    }
108    /// deprecated. Will be removed after April 15th.
109    #[inline]
110    pub fn min_timestamp(&self) -> Option<&super::super::super::super::api::Timestamp> {
111        self.min_timestamp.as_ref().map(|o| &**o)
112    }
113    /// deprecated. Will be removed after April 15th.
114    #[inline]
115    pub fn max_timestamp(&self) -> Option<&super::super::super::super::api::Timestamp> {
116        self.max_timestamp.as_ref().map(|o| &**o)
117    }
118    /// deprecated. Will be removed after April 15th.
119    #[inline]
120    pub fn duration_seconds(&self) -> Option<f64> {
121        self.duration_seconds.as_ref().map(|o| *o)
122    }
123    /// deprecated. Will be removed after April 15th.
124    #[inline]
125    pub fn frame_rate(&self) -> Option<f64> {
126        self.frame_rate.as_ref().map(|o| *o)
127    }
128}