add MS variant of IMA ADPCM encoder
[nihav.git] / nihav-ms / src / codecs / mod.rs
index f5939fd529821fd2f62001e1ab9a1ada16a84428..1216205bb009e2fda84ccdbf58447c8e48b8c938 100644 (file)
@@ -4,16 +4,24 @@ macro_rules! validate {
     ($a:expr) => { if !$a { println!("check failed at {}:{}", file!(), line!()); return Err(DecoderError::InvalidData); } };
 }
 
+#[cfg(feature="decoder_msrle")]
+pub mod msrle;
+
 #[cfg(feature="decoder_msvideo1")]
 pub mod msvideo1;
 
 #[cfg(feature="decoder_ima_adpcm_ms")]
 pub mod imaadpcm;
 
+#[cfg(feature="encoder_ima_adpcm_ms")]
+pub mod imaadpcmenc;
+
 #[cfg(any(feature="decoder_ms_adpcm", feature="encoder_ms_adpcm"))]
 pub mod msadpcm;
 
 const MS_CODECS: &[DecoderInfo] = &[
+#[cfg(feature="decoder_msrle")]
+    DecoderInfo { name: "msrle", get_decoder: msrle::get_decoder },
 #[cfg(feature="decoder_msvideo1")]
     DecoderInfo { name: "msvideo1", get_decoder: msvideo1::get_decoder },
 #[cfg(feature="decoder_ima_adpcm_ms")]
@@ -23,9 +31,9 @@ const MS_CODECS: &[DecoderInfo] = &[
 ];
 
 /// Registers all available codecs provided by this crate.
-pub fn ms_register_all_codecs(rd: &mut RegisteredDecoders) {
+pub fn ms_register_all_decoders(rd: &mut RegisteredDecoders) {
     for decoder in MS_CODECS.iter() {
-        rd.add_decoder(decoder.clone());
+        rd.add_decoder(*decoder);
     }
 }
 
@@ -37,11 +45,13 @@ const MS_ENCODERS: &[EncoderInfo] = &[
     EncoderInfo { name: "msvideo1", get_encoder: msvideo1enc::get_encoder },
 #[cfg(feature="encoder_ms_adpcm")]
     EncoderInfo { name: "ms-adpcm", get_encoder: msadpcm::get_encoder },
+#[cfg(feature="encoder_ima_adpcm_ms")]
+    EncoderInfo { name: "ima-adpcm-ms", get_encoder: imaadpcmenc::get_encoder },
 ];
 
 /// Registers all available encoders provided by this crate.
 pub fn ms_register_all_encoders(re: &mut RegisteredEncoders) {
     for encoder in MS_ENCODERS.iter() {
-        re.add_encoder(encoder.clone());
+        re.add_encoder(*encoder);
     }
 }