]> git.nihav.org Git - nihav.git/blobdiff - nihav-core/src/codecs/mod.rs
add missing codec descriptions
[nihav.git] / nihav-core / src / codecs / mod.rs
index f3fabf3a642dad3c249c7c08a9f9fe16ed652aff..2999cb66315cd47b33481e0c5ae73fe97caccafd 100644 (file)
@@ -1,9 +1,8 @@
 use std::fmt;
 use std::ops::{Add, AddAssign, Sub, SubAssign};
 
-use crate::frame::*;
-use std::rc::Rc;
-use std::cell::RefCell;
+pub use crate::frame::*;
+pub use std::rc::Rc;
 use std::mem;
 use crate::io::byteio::ByteIOError;
 use crate::io::bitreader::BitReaderError;
@@ -45,10 +44,6 @@ impl From<AllocatorError> for DecoderError {
     fn from(_: AllocatorError) -> Self { DecoderError::AllocError }
 }
 
-macro_rules! validate {
-    ($a:expr) => { if !$a { println!("check failed at {}:{}", file!(), line!()); return Err(DecoderError::InvalidData); } };
-}
-
 #[allow(dead_code)]
 pub struct HAMShuffler {
     lastframe: Option<NAVideoBuffer<u8>>,
@@ -82,6 +77,10 @@ impl HAMShuffler {
     }
 }
 
+impl Default for HAMShuffler {
+    fn default() -> Self { Self { lastframe: None } }
+}
+
 #[allow(dead_code)]
 pub struct IPShuffler {
     lastframe: Option<NAVideoBuffer<u8>>,
@@ -106,6 +105,10 @@ impl IPShuffler {
     }
 }
 
+impl Default for IPShuffler {
+    fn default() -> Self { Self { lastframe: None } }
+}
+
 #[allow(dead_code)]
 pub struct IPBShuffler {
     lastframe: Option<NAVideoBuffer<u8>>,
@@ -156,6 +159,10 @@ impl IPBShuffler {
     }
 }
 
+impl Default for IPBShuffler {
+    fn default() -> Self { Self { lastframe: None, nextframe: None } }
+}
+
 #[derive(Debug,Clone,Copy,PartialEq)]
 pub struct MV {
     pub x: i16,
@@ -238,48 +245,9 @@ pub struct DecoderInfo {
 #[cfg(any(feature="h263"))]
 pub mod blockdsp;
 
-#[cfg(feature="decoder_clearvideo")]
-mod clearvideo;
-#[cfg(feature="decoder_gdvvid")]
-mod gremlinvideo;
 #[cfg(feature="h263")]
 pub mod h263;
 
-#[cfg(feature="decoder_aac")]
-mod aac;
-#[cfg(feature="decoder_atrac3")]
-mod atrac3;
-#[cfg(feature="decoder_pcm")]
-mod pcm;
-#[cfg(feature="decoder_sipro")]
-mod sipro;
-#[cfg(feature="decoder_ts102366")]
-mod ts102366;
-
-const DECODERS: &[DecoderInfo] = &[
-#[cfg(feature="decoder_clearvideo")]
-    DecoderInfo { name: "clearvideo", get_decoder: clearvideo::get_decoder },
-#[cfg(feature="decoder_clearvideo")]
-    DecoderInfo { name: "clearvideo_rm", get_decoder: clearvideo::get_decoder_rm },
-
-#[cfg(feature="decoder_pcm")]
-    DecoderInfo { name: "pcm", get_decoder: pcm::get_decoder },
-#[cfg(feature="decoder_sipro")]
-    DecoderInfo { name: "sipro", get_decoder: sipro::get_decoder },
-#[cfg(feature="decoder_ts102366")]
-    DecoderInfo { name: "ac3", get_decoder: ts102366::get_decoder },
-#[cfg(feature="decoder_atrac3")]
-    DecoderInfo { name: "atrac3", get_decoder: atrac3::get_decoder },
-#[cfg(feature="decoder_aac")]
-    DecoderInfo { name: "aac", get_decoder: aac::get_decoder },
-];
-
-pub fn core_register_all_codecs(rd: &mut RegisteredDecoders) {
-    for decoder in DECODERS.into_iter() {
-        rd.add_decoder(decoder.clone());
-    }
-}
-
 pub struct RegisteredDecoders {
     decs:   Vec<DecoderInfo>,
 }