fn has_top_block(&self, xpos: usize, ypos: usize, dx: usize, dy: usize, size: usize) -> bool {
if (ypos + dy) == 0 { return false; }
let xpos2 = xpos + dx;
fn has_top_block(&self, xpos: usize, ypos: usize, dx: usize, dy: usize, size: usize) -> bool {
if (ypos + dy) == 0 { return false; }
let xpos2 = xpos + dx;
true
}
fn has_top_right_block(&self, xpos: usize, ypos: usize, dx: usize, dy: usize, size: usize) -> bool {
if (ypos + dy) == 0 { return false; }
let xpos2 = xpos + dx;
true
}
fn has_top_right_block(&self, xpos: usize, ypos: usize, dx: usize, dy: usize, size: usize) -> bool {
if (ypos + dy) == 0 { return false; }
let xpos2 = xpos + dx;
fn has_left_block(&self, xpos: usize, ypos: usize, dx: usize, dy: usize, size: usize) -> bool {
if (xpos + dx) == 0 { return false; }
let ypos2 = ypos + dy;
fn has_left_block(&self, xpos: usize, ypos: usize, dx: usize, dy: usize, size: usize) -> bool {
if (xpos + dx) == 0 { return false; }
let ypos2 = ypos + dy;
true
}
fn has_left_down_block(&self, xpos: usize, ypos: usize, dx: usize, dy: usize, size: usize) -> bool {
if (xpos + dx) == 0 { return false; }
let ypos2 = ypos + dy;
true
}
fn has_left_down_block(&self, xpos: usize, ypos: usize, dx: usize, dy: usize, size: usize) -> bool {
if (xpos + dx) == 0 { return false; }
let ypos2 = ypos + dy;
rv6_decode_cu_4x4in16x16(br, &self.cbs, is_intra, self.qp, self.sel_qp, &mut self.y_coeffs, &mut self.u_coeffs, &mut self.v_coeffs, cbp16)?;
for y in 0..4 {
for x in 0..4 {
rv6_decode_cu_4x4in16x16(br, &self.cbs, is_intra, self.qp, self.sel_qp, &mut self.y_coeffs, &mut self.u_coeffs, &mut self.v_coeffs, cbp16)?;
for y in 0..4 {
for x in 0..4 {
let off = xpos + x * 4 + (ypos + y * 4) * dstride;
let dst = &mut buf.data;
self.dsp.add_block(dst, off, dstride, &self.y_coeffs[i*16..][..16], 4);
let off = xpos + x * 4 + (ypos + y * 4) * dstride;
let dst = &mut buf.data;
self.dsp.add_block(dst, off, dstride, &self.y_coeffs[i*16..][..16], 4);
let off = buf.offset[1] + xoff + yoff * dstride;
let dst = &mut buf.data;
self.dsp.add_block(dst, off, dstride, &self.u_coeffs[i * 16..][..16], 4);
let off = buf.offset[1] + xoff + yoff * dstride;
let dst = &mut buf.data;
self.dsp.add_block(dst, off, dstride, &self.u_coeffs[i * 16..][..16], 4);
let off = buf.offset[2] + xoff + yoff * dstride;
let dst = &mut buf.data;
self.dsp.add_block(dst, off, dstride, &self.v_coeffs[i * 16..][..16], 4);
let off = buf.offset[2] + xoff + yoff * dstride;
let dst = &mut buf.data;
self.dsp.add_block(dst, off, dstride, &self.v_coeffs[i * 16..][..16], 4);
if split {
let hsize = 1 << (log_size - 1);
self.deblock_cb_tree(buf, hdr, xpos, ypos, log_size - 1);
if split {
let hsize = 1 << (log_size - 1);
self.deblock_cb_tree(buf, hdr, xpos, ypos, log_size - 1);
test_decoding("realmedia", "realvideo6", "assets/RV/RV60.rmhd", Some(1000), &dmx_reg, &dec_reg,
ExpectedTestResult::MD5Frames(vec![
[0x2b1f1807, 0x09edef33, 0x0e6c78c1, 0x3b3c8179],
test_decoding("realmedia", "realvideo6", "assets/RV/RV60.rmhd", Some(1000), &dmx_reg, &dec_reg,
ExpectedTestResult::MD5Frames(vec![
[0x2b1f1807, 0x09edef33, 0x0e6c78c1, 0x3b3c8179],
- [0x5dc8b7d1, 0xef6e6840, 0x7b634afb, 0x645711a3],
- [0x64e802be, 0xd80dc046, 0x98309de0, 0xe9f2ee48],
- [0x64d1fa65, 0xfe30eccf, 0x08e07dd5, 0xb7f079ec],
- [0xfae26181, 0x63e190ec, 0xfa0ae49c, 0x095abb3c],
- [0xc6491458, 0xf3a1e979, 0x6f4e64ab, 0xe77046cb],
- [0x4ec5e66d, 0x5a99a40d, 0x871b16ab, 0xf63b2890],
- [0x2d22683b, 0x4022a36b, 0xdfcd3259, 0xa7f43f77],
- [0xff6a1c72, 0x2dd8b7ca, 0xe3f2f575, 0x2d7aa001],
- [0xf95f1898, 0x1660a50d, 0x2b36aacc, 0x921b5402],
- [0x8115fafe, 0x39ac33b2, 0x9d65b3cc, 0x5ec452fe]]));
+ [0xec3cf068, 0xe989c7f5, 0x0bd41758, 0x81199c9e],
+ [0x24134118, 0xeece4c59, 0x3f319c04, 0xd04951fd],
+ [0x5a2e4e52, 0xa11ad66f, 0x304f2a84, 0xe43aaa90],
+ [0x06d8bb44, 0x00b83933, 0xacce3d6f, 0x7159cd5e],
+ [0xe5dfb853, 0x93f2fe74, 0x932d8c1a, 0x2579208e],
+ [0xcfc5cae6, 0xa878bbd5, 0x5f0302c5, 0x9c0623ae],
+ [0x5103a4ad, 0xec5ebe4e, 0x445037ca, 0x3797abe1],
+ [0x66c9b636, 0xaec1afb7, 0x978fa6eb, 0x964649f5],
+ [0xf1d17b76, 0xe8351888, 0x59d4acf1, 0x22387b9e],
+ [0x8fff649f, 0xf1fe573b, 0xfce60560, 0x47c8c8b1]]));