#[cfg(feature="decoder_indeo2")]
pub mod indeo2;
+#[cfg(feature="decoder_pcm")]
+pub mod pcm;
use frame::*;
use std::rc::Rc;
#[allow(dead_code)]
struct HAMShuffler {
- lastframe: Option<NAFrameRef>,
+ lastframe: Option<NAVideoBuffer<u8>>,
}
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<u8>) {
+ self.lastframe = Some(buf);
}
#[allow(dead_code)]
- fn clone_ref(&mut self) -> Option<NAFrameRef> {
- match self.lastframe {
- Some(ref frm) => Some(Rc::new(RefCell::new(NAFrame::from_copy(&frm.borrow())))),
- None => None,
+ fn clone_ref(&mut self) -> Option<NAVideoBuffer<u8>> {
+ if let Some(ref mut frm) = self.lastframe {
+ let newfrm = frm.copy_buffer();
+ *frm = newfrm.clone();
+ Some(newfrm)
+ } else {
+ None
}
}
#[allow(dead_code)]
- fn get_output_frame(&mut self) -> Option<NAFrameRef> {
+ fn get_output_frame(&mut self) -> Option<NAVideoBuffer<u8>> {
match self.lastframe {
Some(ref frm) => Some(frm.clone()),
None => None,
const DECODERS: &[DecoderInfo] = &[
#[cfg(feature="decoder_indeo2")]
DecoderInfo { name: "indeo2", get_decoder: indeo2::get_decoder },
+#[cfg(feature="decoder_pcm")]
+ DecoderInfo { name: "pcm", get_decoder: pcm::get_decoder },
];
pub fn find_decoder(name: &str) -> Option<fn () -> Box<NADecoder>> {