use std::fmt;
use std::ops::{Add, AddAssign, Sub, SubAssign};
-use frame::*;
+use crate::frame::*;
use std::rc::Rc;
use std::cell::RefCell;
use std::mem;
-use io::byteio::ByteIOError;
-use io::bitreader::BitReaderError;
-use io::codebook::CodebookError;
+use crate::io::byteio::ByteIOError;
+use crate::io::bitreader::BitReaderError;
+use crate::io::codebook::CodebookError;
#[derive(Debug,Clone,Copy,PartialEq)]
#[allow(dead_code)]
None
}
}
+ #[allow(dead_code)]
+ fn get_b_fwdref(&mut self) -> Option<NAVideoBuffer<u8>> {
+ if let Some(ref frm) = self.nextframe {
+ Some(frm.clone())
+ } else {
+ None
+ }
+ }
+ #[allow(dead_code)]
+ fn get_b_bwdref(&mut self) -> Option<NAVideoBuffer<u8>> {
+ if let Some(ref frm) = self.lastframe {
+ Some(frm.clone())
+ } else {
+ None
+ }
+ }
}
-#[derive(Debug,Clone,Copy)]
+#[derive(Debug,Clone,Copy,PartialEq)]
pub struct MV {
pub x: i16,
pub y: i16,
get_decoder: fn () -> Box<NADecoder>,
}
-#[cfg(feature="h263")]
+#[cfg(any(feature="h263", feature="decoder_realvideo3", feature="decoder_realvideo4"))]
mod blockdsp;
#[cfg(feature="decoder_clearvideo")]
mod indeo;
#[cfg(feature="h263")]
mod h263;
+#[cfg(any(feature="decoder_realvideo3", feature="decoder_realvideo4", feature="decoder_realvideo6", feature="decoder_realaudio144", feature="decoder_realaudio288", feature="decoder_cook", feature="decoder_ralf"))]
+mod real;
+#[cfg(feature="decoder_aac")]
+mod aac;
+#[cfg(feature="decoder_atrac3")]
+mod atrac3;
#[cfg(feature="decoder_pcm")]
mod pcm;
+#[cfg(feature="decoder_sipro")]
+mod sipro;
+#[cfg(feature="decoder_ts102366")]
+mod ts102366;
const DECODERS: &[DecoderInfo] = &[
#[cfg(feature="decoder_clearvideo")]
DecoderInfo { name: "realvideo1", get_decoder: h263::rv10::get_decoder },
#[cfg(feature="decoder_realvideo2")]
DecoderInfo { name: "realvideo2", get_decoder: h263::rv20::get_decoder },
+#[cfg(feature="decoder_realvideo3")]
+ DecoderInfo { name: "realvideo3", get_decoder: real::rv30::get_decoder },
+#[cfg(feature="decoder_realvideo4")]
+ DecoderInfo { name: "realvideo4", get_decoder: real::rv40::get_decoder },
+#[cfg(feature="decoder_realvideo6")]
+ DecoderInfo { name: "realvideo6", get_decoder: real::rv60::get_decoder },
#[cfg(feature="decoder_pcm")]
DecoderInfo { name: "pcm", get_decoder: pcm::get_decoder },
DecoderInfo { name: "imc", get_decoder: indeo::imc::get_decoder_imc },
#[cfg(feature="decoder_imc")]
DecoderInfo { name: "iac", get_decoder: indeo::imc::get_decoder_iac },
+#[cfg(feature="decoder_realaudio144")]
+ DecoderInfo { name: "ra14.4", get_decoder: real::ra144::get_decoder },
+#[cfg(feature="decoder_realaudio288")]
+ DecoderInfo { name: "ra28.8", get_decoder: real::ra288::get_decoder },
+#[cfg(feature="decoder_sipro")]
+ DecoderInfo { name: "sipro", get_decoder: sipro::get_decoder },
+#[cfg(feature="decoder_ts102366")]
+ DecoderInfo { name: "ac3", get_decoder: ts102366::get_decoder },
+#[cfg(feature="decoder_cook")]
+ DecoderInfo { name: "cook", get_decoder: real::cook::get_decoder },
+#[cfg(feature="decoder_atrac3")]
+ DecoderInfo { name: "atrac3", get_decoder: atrac3::get_decoder },
+#[cfg(feature="decoder_aac")]
+ DecoderInfo { name: "aac", get_decoder: aac::get_decoder },
+#[cfg(feature="decoder_ralf")]
+ DecoderInfo { name: "ralf", get_decoder: real::ralf::get_decoder },
];
pub fn find_decoder(name: &str) -> Option<fn () -> Box<NADecoder>> {