Bug,
}
-type DecoderResult<T> = Result<T, DecoderError>;
+pub type DecoderResult<T> = Result<T, DecoderError>;
impl From<ByteIOError> for DecoderError {
fn from(_: ByteIOError) -> Self { DecoderError::ShortData }
fn from(_: CodebookError) -> Self { DecoderError::InvalidData }
}
+macro_rules! validate {
+ ($a:expr) => { if !$a { return Err(DecoderError::InvalidData); } };
+}
+
#[allow(dead_code)]
struct HAMShuffler {
lastframe: Option<NAVideoBuffer<u8>>,
get_decoder: fn () -> Box<NADecoder>,
}
-macro_rules! validate {
- ($a:expr) => { if !$a { return Err(DecoderError::InvalidData); } };
-}
+#[cfg(feature="h263")]
+mod blockdsp;
#[cfg(feature="decoder_gdvvid")]
mod gremlinvideo;
-#[cfg(feature="decoder_indeo2")]
-mod indeo2;
-#[cfg(feature="decoder_indeo3")]
-mod indeo3;
+#[cfg(any(feature="decoder_indeo2", feature="decoder_indeo3"))]
+mod indeo;
+#[cfg(feature="h263")]
+mod h263;
+
#[cfg(feature="decoder_pcm")]
mod pcm;
#[cfg(feature="decoder_gdvvid")]
DecoderInfo { name: "gdv-video", get_decoder: gremlinvideo::get_decoder },
#[cfg(feature="decoder_indeo2")]
- DecoderInfo { name: "indeo2", get_decoder: indeo2::get_decoder },
+ DecoderInfo { name: "indeo2", get_decoder: indeo::indeo2::get_decoder },
#[cfg(feature="decoder_indeo3")]
- DecoderInfo { name: "indeo3", get_decoder: indeo3::get_decoder },
+ DecoderInfo { name: "indeo3", get_decoder: indeo::indeo3::get_decoder },
+#[cfg(feature="decoder_intel263")]
+ DecoderInfo { name: "intel263", get_decoder: h263::intel263::get_decoder },
#[cfg(feature="decoder_pcm")]
DecoderInfo { name: "pcm", get_decoder: pcm::get_decoder },
#[allow(dead_code)]
fn write_pgmyuv(pfx: &str, strno: usize, num: u64, frmref: NAFrameRef) {
let frm = frmref.borrow();
+ if let NABufferType::None = frm.get_buffer() { return; }
let name = format!("assets/{}out{:02}_{:04}.pgm", pfx, strno, num);
let mut ofile = File::create(name).unwrap();
let buf = frm.get_buffer().get_vbuf().unwrap();