-//println!(" type {:?} q {} set {} pts {} {}x{} start {} @ {}", ftype, q, set_idx, pts, w, h, start, br.tell());
}
fn decode_intra_pred(&mut self, br: &mut BitReader, types: &mut [i8], mut pos: usize, tstride: usize, has_top: bool) -> DecoderResult<()> {
let start;
}
fn decode_intra_pred(&mut self, br: &mut BitReader, types: &mut [i8], mut pos: usize, tstride: usize, has_top: bool) -> DecoderResult<()> {
let start;
types[pos + 1] = (code >> 1) & 2;
types[pos + 2] = (code >> 0) & 2;
types[pos + 3] = (code << 1) & 2;
types[pos + 1] = (code >> 1) & 2;
types[pos + 2] = (code >> 0) & 2;
types[pos + 3] = (code << 1) & 2;
let tr = types[pos + x - tstride + 1];
let t = types[pos + x - tstride];
let l = types[pos + x - 1];
let tr = types[pos + x - tstride + 1];
let t = types[pos + x - tstride];
let l = types[pos + x - 1];
let ctx = if x < 3 { ((tr & 0xF) as u16) + (((t as u16) & 0xF) << 4) + (((l as u16) & 0xF) << 8) } else { 0xFFF };
let res = RV40_AIC_PATTERNS.iter().position(|&x| x == ctx);
if let Some(idx) = res {
let code = br.read_cb(&self.aic_mode2_cb[idx])?;
types[pos + x + 0] = code / 9;
types[pos + x + 1] = code % 9;
let ctx = if x < 3 { ((tr & 0xF) as u16) + (((t as u16) & 0xF) << 4) + (((l as u16) & 0xF) << 8) } else { 0xFFF };
let res = RV40_AIC_PATTERNS.iter().position(|&x| x == ctx);
if let Some(idx) = res {
let code = br.read_cb(&self.aic_mode2_cb[idx])?;
types[pos + x + 0] = code / 9;
types[pos + x + 1] = code % 9;
fn decode(&mut self, pkt: &NAPacket) -> DecoderResult<NAFrameRef> {
let src = pkt.get_buffer();
fn decode(&mut self, pkt: &NAPacket) -> DecoderResult<NAFrameRef> {
let src = pkt.get_buffer();
let (bufinfo, ftype, ts) = self.dec.parse_frame(src.as_slice(), &mut self.bd)?;
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
let (bufinfo, ftype, ts) = self.dec.parse_frame(src.as_slice(), &mut self.bd)?;
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
// test_file_decoding("realmedia", "assets/RV/rv40_ralf.rmvb", Some(1000), true, false, /*None*/Some("rv40"));
test_file_decoding("realmedia", "assets/RV/rv40_weighted_mc.rmvb", Some(400), true, false, None/*Some("rv40")*/);
// test_file_decoding("realmedia", "assets/RV/rv40_weighted_mc_2.rmvb", Some(1000), true, false, /*None*/Some("rv40"));
// test_file_decoding("realmedia", "assets/RV/rv40_ralf.rmvb", Some(1000), true, false, /*None*/Some("rv40"));
test_file_decoding("realmedia", "assets/RV/rv40_weighted_mc.rmvb", Some(400), true, false, None/*Some("rv40")*/);
// test_file_decoding("realmedia", "assets/RV/rv40_weighted_mc_2.rmvb", Some(1000), true, false, /*None*/Some("rv40"));