Fix read tx conditions for lossless mode and lossless segment
Fix issue #427
diff --git a/av1/decoder/decodemv.c b/av1/decoder/decodemv.c
index 91cd1bd..305dc9a 100644
--- a/av1/decoder/decodemv.c
+++ b/av1/decoder/decodemv.c
@@ -1528,9 +1528,9 @@
segfeature_active(&cm->seg, mbmi->segment_id, SEG_LVL_SKIP))
return;
- // No need to read transform type for lossless mode(qindex==0).
- const int qindex = xd->qindex[mbmi->segment_id];
- if (qindex == 0) return;
+ // No need to read transform type for lossless mode
+ if (xd->lossless[mbmi->segment_id]) return;
+
const int inter_block = is_inter_block(mbmi, xd->tree_type);
if (get_ext_tx_types(tx_size, inter_block, cm->features.reduced_tx_set_used) >
1) {
@@ -1680,9 +1680,7 @@
segfeature_active(&cm->seg, mbmi->segment_id, SEG_LVL_SKIP))
return;
- // No need to read transform type for lossless mode(qindex==0).
- const int qindex = xd->qindex[mbmi->segment_id];
- if (qindex == 0) return;
+ assert(!xd->lossless[mbmi->segment_id]);
CctxType cctx_type = CCTX_NONE;
FRAME_CONTEXT *ec_ctx = xd->tile_ctx;
@@ -1742,9 +1740,9 @@
segfeature_active(&cm->seg, mbmi->segment_id, SEG_LVL_SKIP))
return;
- // No need to read transform type for lossless mode(qindex==0).
- const int qindex = xd->qindex[mbmi->segment_id];
- if (qindex == 0) return;
+ // No need to read transform type for lossless mode
+ if (xd->lossless[mbmi->segment_id]) return;
+
const int inter_block = is_inter_block(mbmi, xd->tree_type);
if (get_ext_tx_types(tx_size, inter_block, cm->features.reduced_tx_set_used) >
1) {