X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=src%2Fcodecs%2Fmod.rs;h=a2c10fe93f013b1f1d5f6cbe21b11e47e508fdc9;hb=d532000c8949263f00e6755c6390b3a65eb81b5c;hp=75f07c1b6bdcb816a125c2a46d3447952971cb51;hpb=3bd541c8c36c8ea8fcabbccf5d6bd99d850d3164;p=nihav.git diff --git a/src/codecs/mod.rs b/src/codecs/mod.rs index 75f07c1..a2c10fe 100644 --- a/src/codecs/mod.rs +++ b/src/codecs/mod.rs @@ -39,7 +39,7 @@ impl From for DecoderError { #[allow(dead_code)] struct HAMShuffler { - lastframe: Option, + lastframe: Option>, } impl HAMShuffler { @@ -48,20 +48,21 @@ impl HAMShuffler { #[allow(dead_code)] fn clear(&mut self) { self.lastframe = None; } #[allow(dead_code)] - fn add_frame(&mut self, frm: NAFrame) { - self.lastframe = Some(Rc::new(RefCell::new(frm))); + fn add_frame(&mut self, buf: NAVideoBuffer) { + self.lastframe = Some(buf); } #[allow(dead_code)] - fn clone_ref(&mut self) -> Option { - if let None = self.lastframe { return None; } + fn clone_ref(&mut self) -> Option> { if let Some(ref mut frm) = self.lastframe { - let newfrm = Rc::new(RefCell::new(NAFrame::from_copy(&frm.borrow()))); + let newfrm = frm.copy_buffer(); *frm = newfrm.clone(); Some(newfrm) - } else { None } + } else { + None + } } #[allow(dead_code)] - fn get_output_frame(&mut self) -> Option { + fn get_output_frame(&mut self) -> Option> { match self.lastframe { Some(ref frm) => Some(frm.clone()), None => None,