make all codec crates export just register_all functions and document them
[nihav.git] / nihav-game / src / codecs / gremlinvideo.rs
index 19021ee3db9c1e70f47d1dcd4b68469da7f38816..096c7b614438323a23ec07fa43503b8a187d8594 100644 (file)
@@ -50,7 +50,7 @@ impl Bits32 {
         self.queue >>= nbits;
         self.fill   -= nbits;
         if self.fill <= 16 {
-            self.queue |= (br.read_u16le()? as u32) << self.fill;
+            self.queue |= u32::from(br.read_u16le()?) << self.fill;
             self.fill  += 16;
         }
         Ok(res)
@@ -447,9 +447,7 @@ impl NADecoder for GremlinVideoDecoder {
             return Err(DecoderError::NotImplemented);
         }
 
-        let bufret = alloc_video_buffer(self.info.get_properties().get_video_info().unwrap(), 0);
-        if let Err(_) = bufret { return Err(DecoderError::InvalidData); }
-        let mut bufinfo = bufret.unwrap();
+        let mut bufinfo = alloc_video_buffer(self.info.get_properties().get_video_info().unwrap(), 0)?;
 
         self.output_frame(&mut bufinfo, w, h);
 
@@ -458,9 +456,11 @@ impl NADecoder for GremlinVideoDecoder {
         frm.set_frame_type(if is_intra { FrameType::I } else { FrameType::P });
         Ok(frm.into_ref())
     }
+    fn flush(&mut self) {
+    }
 }
 
-pub fn get_decoder_video() -> Box<dyn NADecoder> {
+pub fn get_decoder_video() -> Box<dyn NADecoder + Send> {
     Box::new(GremlinVideoDecoder::new())
 }
 
@@ -550,9 +550,11 @@ impl NADecoder for GremlinAudioDecoder {
             Err(DecoderError::InvalidData)
         }
     }
+    fn flush(&mut self) {
+    }
 }
 
-pub fn get_decoder_audio() -> Box<dyn NADecoder> {
+pub fn get_decoder_audio() -> Box<dyn NADecoder + Send> {
     Box::new(GremlinAudioDecoder::new())
 }
 
@@ -561,8 +563,8 @@ mod test {
     use nihav_core::codecs::RegisteredDecoders;
     use nihav_core::demuxers::RegisteredDemuxers;
     use nihav_core::test::dec_video::test_file_decoding;
-    use crate::codecs::game_register_all_codecs;
-    use crate::demuxers::game_register_all_demuxers;
+    use crate::game_register_all_codecs;
+    use crate::game_register_all_demuxers;
     #[test]
     fn test_gdv() {
         let mut dmx_reg = RegisteredDemuxers::new();