switch NACodecInfo to Arc
[nihav.git] / nihav-duck / src / codecs / truemotion2.rs
index 83cdce670ec8283f7b923df17f875f9bdf2d4317..e8225450a52b2e17398c7652f89905d380ccbd23 100644 (file)
@@ -331,7 +331,7 @@ impl TM2Frame {
 
 #[derive(Default)]
 struct TM2Decoder {
-    info:       Rc<NACodecInfo>,
+    info:       NACodecInfoRef,
     streams:    [TM2Stream; TM2StreamType::Num as usize],
     width:      usize,
     height:     usize,
@@ -520,7 +520,7 @@ impl TM2Decoder {
                     fmt.get_chromaton(1).unwrap().get_offset() as usize,
                     fmt.get_chromaton(2).unwrap().get_offset() as usize];
         let stride = buf.get_stride(0);
-        let mut data = buf.get_data_mut();
+        let data = buf.get_data_mut().unwrap();
         let dst = data.as_mut_slice();
 
         let mut off = 0;
@@ -546,14 +546,14 @@ impl TM2Decoder {
 }
 
 impl NADecoder for TM2Decoder {
-    fn init(&mut self, info: Rc<NACodecInfo>) -> DecoderResult<()> {
+    fn init(&mut self, info: NACodecInfoRef) -> DecoderResult<()> {
         if let NACodecTypeInfo::Video(vinfo) = info.get_properties() {
             let myinfo = NACodecTypeInfo::Video(NAVideoInfo::new(vinfo.get_width(), vinfo.get_height(), false, YUV410_FORMAT));
             self.width  = vinfo.get_width();
             self.height = vinfo.get_height();
             self.cur_frame  = TM2Frame::alloc(self.width, self.height);
             self.prev_frame = TM2Frame::alloc(self.width, self.height);
-            self.info = Rc::new(NACodecInfo::new_ref(info.get_name(), myinfo, info.get_extradata()));
+            self.info = NACodecInfo::new_ref(info.get_name(), myinfo, info.get_extradata()).into_ref();
             Ok(())
         } else {
             Err(DecoderError::InvalidData)
@@ -575,7 +575,7 @@ impl NADecoder for TM2Decoder {
         let myinfo = NAVideoInfo::new(self.width, self.height, false, RGB24_FORMAT);
         let bufret = alloc_video_buffer(myinfo, 2);
         if let Err(_) = bufret { return Err(DecoderError::InvalidData); }
-        let mut bufinfo = bufret.unwrap();
+        let bufinfo = bufret.unwrap();
         let mut buf = bufinfo.get_vbuf().unwrap();
 
         let is_intra = self.decode_blocks()?;