/// shuffler.add_frame(frame.clone()); // tells frame manager to use the frame as the next reference
/// ```
#[allow(dead_code)]
+#[derive(Default)]
pub struct HAMShuffler<T: Copy> {
lastframe: Option<NAVideoBufferRef<T>>,
}
/// Returns the original saved reference frame or `None` if it is not present.
#[allow(dead_code)]
pub fn get_output_frame(&mut self) -> Option<NAVideoBufferRef<T>> {
- match self.lastframe {
- Some(ref frm) => Some(frm.clone()),
- None => None,
- }
+ self.lastframe.as_ref().cloned()
}
}
-impl<T: Copy> Default for HAMShuffler<T> {
- fn default() -> Self { Self { lastframe: None } }
-}
-
/// Frame manager for codecs with intra and inter frames.
///
/// This frame manager simplifies frame management for the case when codec decodes new frame using previous frame as source of some data.
/// shuffler.add_frame(frame.clone()); // tells frame manager to use the frame as the next reference
/// ```
#[allow(dead_code)]
+#[derive(Default)]
pub struct IPShuffler {
lastframe: Option<NAVideoBufferRef<u8>>,
}
/// Returns the original saved reference frame or `None` if it is not present.
#[allow(dead_code)]
pub fn get_ref(&mut self) -> Option<NAVideoBufferRef<u8>> {
- if let Some(ref frm) = self.lastframe {
- Some(frm.clone())
- } else {
- None
- }
+ self.lastframe.as_ref().cloned()
}
}
-impl Default for IPShuffler {
- fn default() -> Self { Self { lastframe: None } }
-}
-
/// Frame manager for codecs with I-, P- and B-frames.
///
/// This frame manager simplifies frame management for the case when codec uses I/P/B frame scheme.
/// }
/// ```
#[allow(dead_code)]
+#[derive(Default)]
pub struct IPBShuffler {
lastframe: Option<NAVideoBufferRef<u8>>,
nextframe: Option<NAVideoBufferRef<u8>>,
/// Returns the previous reference frame or `None` if it is not present.
#[allow(dead_code)]
pub fn get_lastref(&mut self) -> Option<NAVideoBufferRef<u8>> {
- if let Some(ref frm) = self.lastframe {
- Some(frm.clone())
- } else {
- None
- }
+ self.lastframe.as_ref().cloned()
}
/// Returns second last reference frame or `None` if it is not present.
#[allow(dead_code)]
pub fn get_nextref(&mut self) -> Option<NAVideoBufferRef<u8>> {
- if let Some(ref frm) = self.nextframe {
- Some(frm.clone())
- } else {
- None
- }
+ self.nextframe.as_ref().cloned()
}
/// Returns the temporally following reference for B-frame or `None` if it is not present.
#[allow(dead_code)]
pub fn get_b_fwdref(&mut self) -> Option<NAVideoBufferRef<u8>> {
- if let Some(ref frm) = self.nextframe {
- Some(frm.clone())
- } else {
- None
- }
+ self.nextframe.as_ref().cloned()
}
/// Returns the temporally preceeding reference for B-frame or `None` if it is not present.
#[allow(dead_code)]
pub fn get_b_bwdref(&mut self) -> Option<NAVideoBufferRef<u8>> {
- if let Some(ref frm) = self.lastframe {
- Some(frm.clone())
- } else {
- None
- }
+ self.lastframe.as_ref().cloned()
}
}
-impl Default for IPBShuffler {
- fn default() -> Self { Self { lastframe: None, nextframe: None } }
-}
-
/// Motion vector data type.
///
/// # Examples
#[allow(clippy::many_single_char_names)]
#[allow(clippy::collapsible_if)]
+#[allow(clippy::collapsible_else_if)]
impl MV {
/// Creates a new motion vector instance.
pub fn new(x: i16, y: i16) -> Self { MV{ x, y } }