aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKostya Shishkov <kostya.shishkov@gmail.com>2018-02-24 15:04:25 +0100
committerKostya Shishkov <kostya.shishkov@gmail.com>2018-02-24 18:35:29 +0100
commitd609e5d5467cbb8392137343f1a7fceaa8debf2c (patch)
treef616a3b5f66b2d69646ea629c9edae135392ab28
parent8a5cb596b2717eb85c0601867f713c3df9bb3383 (diff)
downloadnihav-d609e5d5467cbb8392137343f1a7fceaa8debf2c.tar.gz
h263: add missing calls for backward MV predictor keeper
-rw-r--r--src/codecs/h263/decoder.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/codecs/h263/decoder.rs b/src/codecs/h263/decoder.rs
index cba6ef9..85d9eea 100644
--- a/src/codecs/h263/decoder.rs
+++ b/src/codecs/h263/decoder.rs
@@ -365,9 +365,15 @@ impl H263BaseDecoder {
bdsp.idct(&mut blk[i]);
}
blockdsp::add_blocks(&mut buf, mb_x, mb_y, &blk);
+ if is_b {
+ mvi2.set_zero_mv(mb_x);
+ }
} else if binfo.mode != Type::B {
self.mv_data.push(BlockMVInfo::Inter_1MV(ZERO_MV));
mvi.set_zero_mv(mb_x);
+ if is_b {
+ mvi2.set_zero_mv(mb_x);
+ }
if let Some(ref srcbuf) = self.ipbs.get_lastref() {
bdsp.copy_blocks(&mut buf, srcbuf, mb_x * 16, mb_y * 16, 16, 16, ZERO_MV);
}
@@ -483,6 +489,9 @@ impl H263BaseDecoder {
}
}
mvi.update_row();
+ if is_b {
+ mvi2.update_row();
+ }
cbpi.update_row();
sstate.new_row();
}