Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrançois Laignel <fengalin@free.fr>2021-10-09 13:17:05 +0300
committerFrançois Laignel <fengalin@free.fr>2021-10-18 16:09:47 +0300
commit27b9f0d868f436e9b2bcc3e51f393c40b56fcc02 (patch)
tree93c0db7b1cf26ea7d0e3a4d70a7d2844c2e00975 /video/closedcaption/src/cea608tojson/imp.rs
parentbd8a7e8df7e8ebf751b2d00fe6a096d726683c00 (diff)
Improve usability thanks to opt-ops
The crate option-operations simplifies usage when dealing with `Option`s, which is often the case with `ClockTime`.
Diffstat (limited to 'video/closedcaption/src/cea608tojson/imp.rs')
-rw-r--r--video/closedcaption/src/cea608tojson/imp.rs20
1 files changed, 9 insertions, 11 deletions
diff --git a/video/closedcaption/src/cea608tojson/imp.rs b/video/closedcaption/src/cea608tojson/imp.rs
index b60e77381..0c90ddc8c 100644
--- a/video/closedcaption/src/cea608tojson/imp.rs
+++ b/video/closedcaption/src/cea608tojson/imp.rs
@@ -400,9 +400,7 @@ fn dump(
duration: impl Into<Option<gst::ClockTime>>,
) {
let pts = pts.into();
- let end = pts
- .zip(duration.into())
- .map(|(pts, duration)| pts + duration);
+ let end = pts.opt_add(duration.into());
if cc_data != 0x8080 {
gst_debug!(
@@ -478,10 +476,10 @@ impl State {
Some(Cea608Mode::PopOn) => gst::ClockTime::NONE,
_ => self
.current_pts
- .zip(self.current_duration)
- .map(|(cur_pts, cur_duration)| cur_pts + cur_duration)
- .zip(self.first_pts)
- .and_then(|(cur_end, first_pts)| cur_end.checked_sub(first_pts)),
+ .opt_add(self.current_duration)
+ .opt_checked_sub(self.first_pts)
+ .ok()
+ .flatten(),
}
};
@@ -541,10 +539,10 @@ impl State {
gst_log!(CAT, obj: element, "Draining pending");
pending.duration = self
.current_pts
- .zip(self.current_duration)
- .map(|(cur_pts, cur_dur)| cur_pts + cur_dur)
- .zip(pending.pts)
- .and_then(|(cur_end, pending_pts)| cur_end.checked_sub(pending_pts));
+ .opt_add(self.current_duration)
+ .opt_checked_sub(pending.pts)
+ .ok()
+ .flatten();
Some(pending)
} else {
None