impl RV10SliceInfo {
fn new(is_p: bool, qscale: u8, mb_x: usize, mb_y: usize, mb_c: usize) -> Self {
- RV10SliceInfo { is_p: is_p, qscale: qscale, mb_x: mb_x, mb_y: mb_y, mb_c: mb_c }
+ RV10SliceInfo { is_p, qscale, mb_x, mb_y, mb_c }
}
}
let soff = nslices * 8 + 1;
RealVideo10BR {
br: BitReader::new(&src[soff..], src.len() - soff, BitReaderMode::BE),
- tables: tables,
+ tables,
num_slices: nslices,
slice_no: 0,
slice_off: slice_offs,
h: height,
mb_w: (width + 15) >> 4,
mb_h: (height + 15) >> 4,
- new_ver: new_ver,
+ new_ver,
dc_coded: [false; 3],
last_dc: [0; 3],
- mvmode: mvmode,
+ mvmode,
}
}
}
idx += run;
validate!(idx < 64);
- let oidx = H263_ZIGZAG[idx as usize];
+ let oidx = ZIGZAG[idx as usize];
blk[oidx] = level;
idx += 1;
if last { break; }
let chroma_dc_cb = Codebook::new(&mut coderead, CodebookMode::MSB).unwrap();
let tables = Tables {
- intra_mcbpc_cb: intra_mcbpc_cb,
- inter_mcbpc_cb: inter_mcbpc_cb,
- cbpy_cb: cbpy_cb,
- rl_cb: rl_cb,
- aic_rl_cb: aic_rl_cb,
- mv_cb: mv_cb,
- luma_dc_cb: luma_dc_cb,
- chroma_dc_cb: chroma_dc_cb,
+ intra_mcbpc_cb,
+ inter_mcbpc_cb,
+ cbpy_cb,
+ rl_cb,
+ aic_rl_cb,
+ mv_cb,
+ luma_dc_cb,
+ chroma_dc_cb,
};
RealVideo10Decoder{
info: NACodecInfoRef::default(),
dec: H263BaseDecoder::new_with_opts(false, false, false),
- tables: tables,
+ tables,
w: 0,
h: 0,
new_ver: false,
}
impl NADecoder for RealVideo10Decoder {
- fn init(&mut self, info: NACodecInfoRef) -> DecoderResult<()> {
+ fn init(&mut self, _supp: &mut NADecoderSupport, info: NACodecInfoRef) -> DecoderResult<()> {
if let NACodecTypeInfo::Video(vinfo) = info.get_properties() {
let w = vinfo.get_width();
let h = vinfo.get_height();
Err(DecoderError::InvalidData)
}
}
- fn decode(&mut self, pkt: &NAPacket) -> DecoderResult<NAFrameRef> {
+ fn decode(&mut self, _supp: &mut NADecoderSupport, pkt: &NAPacket) -> DecoderResult<NAFrameRef> {
let src = pkt.get_buffer();
//println!(" decode frame size {}, {} slices", src.len(), src[0]+1);
frm.set_frame_type(if self.dec.is_intra() { FrameType::I } else { FrameType::P });
Ok(frm.into_ref())
}
+ fn flush(&mut self) {
+ self.dec.flush();
+ }
}
-pub fn get_decoder() -> Box<NADecoder> {
+pub fn get_decoder() -> Box<dyn NADecoder> {
Box::new(RealVideo10Decoder::new())
}
impl CodeReader {
pub fn new(codes: &'static [u16], bits: &'static [u8]) -> Self {
- CodeReader { codes: codes, bits: bits }
+ CodeReader { codes, bits }
}
}