aboutsummaryrefslogtreecommitdiffstats
path: root/nihav-duck/src
diff options
context:
space:
mode:
authorKostya Shishkov <kostya.shishkov@gmail.com>2019-12-17 14:25:23 +0100
committerKostya Shishkov <kostya.shishkov@gmail.com>2019-12-17 14:25:23 +0100
commit503368d15e17aa865c8abc6ebcc2943ad822867b (patch)
treeb5a130986ef91b9da29dca02d40057dd267dfe05 /nihav-duck/src
parente12643e6d022aabf97b868f9dc1d8a2d4342043a (diff)
downloadnihav-503368d15e17aa865c8abc6ebcc2943ad822867b.tar.gz
vp3: fix has_ac condition
Diffstat (limited to 'nihav-duck/src')
-rw-r--r--nihav-duck/src/codecs/vp3.rs10
1 files changed, 5 insertions, 5 deletions
diff --git a/nihav-duck/src/codecs/vp3.rs b/nihav-duck/src/codecs/vp3.rs
index c363d97..059ff9d 100644
--- a/nihav-duck/src/codecs/vp3.rs
+++ b/nihav-duck/src/codecs/vp3.rs
@@ -425,7 +425,7 @@ fn rescale_qmat(dst_qmat: &mut [i16; 64], base_qmat: &[i16; 64], dc_quant: i16,
dst_qmat[0] = (base_qmat[0] * dc_quant / 100).max(minval * 2) << 2;
}
-fn expand_token(blk: &mut Block, br: &mut BitReader, eob_run: &mut usize, coef_no: usize, token: u8) -> DecoderResult<()> {
+fn expand_token(blk: &mut Block, br: &mut BitReader, eob_run: &mut usize, token: u8) -> DecoderResult<()> {
match token {
// EOBs
0 | 1 | 2 => { *eob_run = (token as usize) + 1; },
@@ -527,7 +527,7 @@ fn expand_token(blk: &mut Block, br: &mut BitReader, eob_run: &mut usize, coef_n
if *eob_run > 0 {
blk.idx = 64;
*eob_run -= 1;
- } else if coef_no > 0 {
+ } else if (token > 8) && (blk.idx > 1) {
blk.has_ac = true;
}
Ok(())
@@ -820,7 +820,7 @@ println!("intra, ver {} (self {})", version, self.version);
&codes.ac_p_cb[table]
};
let token = br.read_cb(cb)?;
- expand_token(blk, br, &mut self.eob_run, coef_no, token)?;
+ expand_token(blk, br, &mut self.eob_run, token)?;
}
Ok(())
} else {
@@ -1013,7 +1013,7 @@ println!("intra, ver {} (self {})", version, self.version);
}
let cb = if (blkaddr & 3) == 0 { cbs[0] } else { cbs[1] };
let token = br.read_cb(cb)?;
- expand_token(blk, br, &mut self.eob_run, coef_no, token)?;
+ expand_token(blk, br, &mut self.eob_run, token)?;
}
Ok(())
} else {
@@ -1212,7 +1212,7 @@ println!("intra, ver {} (self {})", version, self.version);
};
let cb = if (blkaddr & 3) == 0 { cbs[0] } else { cbs[1] };
let token = br.read_cb(cb)?;
- expand_token(blk, br, &mut coef_eob[blk.idx], blk.idx, token)?;
+ expand_token(blk, br, &mut coef_eob[blk.idx], token)?;
if blk.idx == 64 { break; }
}
let idx = blkaddr >> 2;