X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-realmedia%2Fsrc%2Fcodecs%2Frv10.rs;h=733b6776288f53faeb1b5554bf1d1e75e50794b9;hb=171860fcc4a4ba3ec28bc4b720b9f582377be4cf;hp=348a7ff8b713c80255593e9dc9571bb830344135;hpb=3167c45c8087a692192021e08a8063dff680001c;p=nihav.git diff --git a/nihav-realmedia/src/codecs/rv10.rs b/nihav-realmedia/src/codecs/rv10.rs index 348a7ff..733b677 100644 --- a/nihav-realmedia/src/codecs/rv10.rs +++ b/nihav-realmedia/src/codecs/rv10.rs @@ -1,5 +1,3 @@ -use std::rc::Rc; -use std::cell::RefCell; use nihav_core::io::bitreader::*; use nihav_core::io::codebook::*; use nihav_core::formats; @@ -23,7 +21,7 @@ struct Tables { } struct RealVideo10Decoder { - info: Rc, + info: NACodecInfoRef, dec: H263BaseDecoder, tables: Tables, w: usize, @@ -392,7 +390,7 @@ impl RealVideo10Decoder { }; RealVideo10Decoder{ - info: Rc::new(DUMMY_CODEC_INFO), + info: NACodecInfoRef::default(), dec: H263BaseDecoder::new_with_opts(false, false, false), tables: tables, w: 0, @@ -405,13 +403,13 @@ impl RealVideo10Decoder { } impl NADecoder for RealVideo10Decoder { - fn init(&mut self, info: Rc) -> DecoderResult<()> { + fn init(&mut self, info: NACodecInfoRef) -> DecoderResult<()> { if let NACodecTypeInfo::Video(vinfo) = info.get_properties() { let w = vinfo.get_width(); let h = vinfo.get_height(); let fmt = formats::YUV420_FORMAT; let myinfo = NACodecTypeInfo::Video(NAVideoInfo::new(w, h, false, fmt)); - 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(); self.w = w; self.h = h; @@ -449,7 +447,7 @@ println!("???"); 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()) } }