introduce NADecoderSupport and buffer pools
[nihav.git] / nihav-indeo / src / codecs / intel263.rs
index 3b95c5fa8e4f52466e84323a1a1a27051e77f09d..ed5b3b7f93a0ce39fbcbc0caf159ccc1bf78a89e 100644 (file)
@@ -364,7 +364,7 @@ impl Intel263Decoder {
 }
 
 impl NADecoder for Intel263Decoder {
-    fn init(&mut self, info: NACodecInfoRef) -> DecoderResult<()> {
+    fn init(&mut self, _supp: &mut NADecoderSupport, info: NACodecInfoRef) -> DecoderResult<()> {
         if let NACodecTypeInfo::Video(vinfo) = info.get_properties() {
             let w = vinfo.get_width();
             let h = vinfo.get_height();
@@ -376,7 +376,7 @@ impl NADecoder for Intel263Decoder {
             Err(DecoderError::InvalidData)
         }
     }
-    fn decode(&mut self, pkt: &NAPacket) -> DecoderResult<NAFrameRef> {
+    fn decode(&mut self, _supp: &mut NADecoderSupport, pkt: &NAPacket) -> DecoderResult<NAFrameRef> {
         let src = pkt.get_buffer();
 
         if src.len() == 8 {
@@ -393,7 +393,7 @@ impl NADecoder for Intel263Decoder {
             let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), buftype);
             frm.set_keyframe(false);
             frm.set_frame_type(if is_skip { FrameType::Skip } else { FrameType::B });
-            return Ok(Rc::new(RefCell::new(frm)));
+            return Ok(frm.into_ref());
         }
         let mut ibr = Intel263BR::new(&src, &self.tables);
 
@@ -402,7 +402,7 @@ impl NADecoder for Intel263Decoder {
         let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
         frm.set_keyframe(self.dec.is_intra());
         frm.set_frame_type(if self.dec.is_intra() { FrameType::I } else { FrameType::P });
-        Ok(Rc::new(RefCell::new(frm)))
+        Ok(frm.into_ref())
     }
 }