From df08039eeb6f1600604b3b38a0e02056a1b9330d Mon Sep 17 00:00:00 2001 From: tilpner Date: Tue, 29 Aug 2023 15:48:06 +0200 Subject: [PATCH] refactor: use `Rational::non_zero` instead of manual comparisons --- src/codec/context.rs | 18 ++---------------- src/codec/decoder/opened.rs | 11 +---------- src/codec/video.rs | 9 ++------- src/format/stream/stream.rs | 7 +------ 4 files changed, 6 insertions(+), 39 deletions(-) diff --git a/src/codec/context.rs b/src/codec/context.rs index a7a323b..41dcae7 100644 --- a/src/codec/context.rs +++ b/src/codec/context.rs @@ -136,26 +136,12 @@ impl Context { } pub fn frame_rate(&self) -> Option { - unsafe { - let fr = Rational::from((*self.as_ptr()).framerate); - if fr == Rational(0, 1) { - None - } - else { - Some(fr) - } - } + unsafe { Rational::from((*self.as_ptr()).framerate).non_zero() } } pub fn set_frame_rate>(&mut self, value: Option) { unsafe { - if let Some(value) = value { - (*self.as_mut_ptr()).framerate = value.into().into(); - } - else { - (*self.as_mut_ptr()).framerate.num = 0; - (*self.as_mut_ptr()).framerate.den = 1; - } + (*self.as_mut_ptr()).framerate = value.map(Into::into).unwrap_or(Rational::ZERO).into(); } } } diff --git a/src/codec/decoder/opened.rs b/src/codec/decoder/opened.rs index eb7fc8b..2413c7e 100644 --- a/src/codec/decoder/opened.rs +++ b/src/codec/decoder/opened.rs @@ -82,16 +82,7 @@ impl Opened { } pub fn frame_rate(&self) -> Option { - unsafe { - let value = (*self.as_ptr()).framerate; - - if value == (AVRational { num: 0, den: 1 }) { - None - } - else { - Some(Rational::from(value)) - } - } + unsafe { Rational::from((*self.as_ptr()).framerate).non_zero() } } pub fn flush(&mut self) { diff --git a/src/codec/video.rs b/src/codec/video.rs index fbb09a1..6e13463 100644 --- a/src/codec/video.rs +++ b/src/codec/video.rs @@ -61,14 +61,9 @@ impl Iterator for RateIter { fn next(&mut self) -> Option<::Item> { unsafe { - if (*self.ptr).num == 0 && (*self.ptr).den == 0 { - return None; - } - - let rate = (*self.ptr).into(); + let rate = Rational::from(*self.ptr).non_zero(); self.ptr = self.ptr.offset(1); - - Some(rate) + rate } } } diff --git a/src/format/stream/stream.rs b/src/format/stream/stream.rs index b8c7c74..60bbd5f 100644 --- a/src/format/stream/stream.rs +++ b/src/format/stream/stream.rs @@ -107,12 +107,7 @@ impl<'a> Stream<'a> { ptr::null_mut(), )); - if r == Rational(0, 1) { - None - } - else { - Some(r) - } + r.non_zero() } }