Fix the code to allow a 3rd compound mode
It is possible down the road new compound modes are added in addition to
COMPOUND_AVERAGE and COMPOUND_WEDGE.
Change-Id: I85985d4c104effd34df13845344aac2a08d28019
diff --git a/av1/common/reconinter.c b/av1/common/reconinter.c
index c1a9f9f..a0c4e10 100644
--- a/av1/common/reconinter.c
+++ b/av1/common/reconinter.c
@@ -632,7 +632,7 @@
#if CONFIG_EXT_INTER
if (ref && is_interinter_wedge_used(mi->mbmi.sb_type) &&
- mi->mbmi.interinter_compound)
+ mi->mbmi.interinter_compound == COMPOUND_WEDGE)
av1_make_masked_inter_predictor(
pre, pre_buf->stride, dst, dst_buf->stride, subpel_x, subpel_y,
sf, w, h, mi->mbmi.interp_filter, xs, ys,
@@ -698,7 +698,7 @@
#if CONFIG_EXT_INTER
if (ref && is_interinter_wedge_used(mi->mbmi.sb_type) &&
- mi->mbmi.interinter_compound)
+ mi->mbmi.interinter_compound == COMPOUND_WEDGE)
av1_make_masked_inter_predictor(pre, pre_buf->stride, dst,
dst_buf->stride, subpel_x, subpel_y, sf,
w, h, mi->mbmi.interp_filter, xs, ys,
@@ -1283,7 +1283,7 @@
if (is_interintra_pred(mbmi)) {
mbmi->ref_frame[1] = NONE;
} else if (has_second_ref(mbmi) && is_interinter_wedge_used(mbmi->sb_type) &&
- mbmi->interinter_compound) {
+ mbmi->interinter_compound == COMPOUND_WEDGE) {
mbmi->interinter_compound = COMPOUND_AVERAGE;
mbmi->ref_frame[1] = NONE;
}
@@ -2048,7 +2048,7 @@
uint8_t *const dst = dst_buf->buf + dst_buf->stride * y + x;
if (is_compound && is_interinter_wedge_used(mbmi->sb_type) &&
- mbmi->interinter_compound) {
+ mbmi->interinter_compound == COMPOUND_WEDGE) {
#if CONFIG_AOM_HIGHBITDEPTH
if (xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH)
build_masked_compound_wedge_highbd(
diff --git a/av1/decoder/decodemv.c b/av1/decoder/decodemv.c
index 56311e7..eacffd9 100644
--- a/av1/decoder/decodemv.c
+++ b/av1/decoder/decodemv.c
@@ -1773,7 +1773,7 @@
r, av1_compound_type_tree, cm->fc->compound_type_prob[bsize], ACCT_STR);
if (xd->counts)
xd->counts->compound_interinter[bsize][mbmi->interinter_compound]++;
- if (mbmi->interinter_compound) {
+ if (mbmi->interinter_compound == COMPOUND_WEDGE) {
mbmi->interinter_wedge_index =
aom_read_literal(r, get_wedge_bits_lookup(bsize), ACCT_STR);
mbmi->interinter_wedge_sign = aom_read_bit(r, ACCT_STR);
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c
index 6829a80..36e0236 100644
--- a/av1/encoder/bitstream.c
+++ b/av1/encoder/bitstream.c
@@ -1607,7 +1607,7 @@
av1_write_token(w, av1_compound_type_tree,
cm->fc->compound_type_prob[bsize],
&compound_type_encodings[mbmi->interinter_compound]);
- if (mbmi->interinter_compound) {
+ if (mbmi->interinter_compound == COMPOUND_WEDGE) {
aom_write_literal(w, mbmi->interinter_wedge_index,
get_wedge_bits_lookup(bsize));
aom_write_bit(w, mbmi->interinter_wedge_sign);
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index 5ddb4d1..74e159e 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -7513,7 +7513,7 @@
*compmode_wedge_cost = compound_type_cost[mbmi->interinter_compound];
- if (mbmi->interinter_compound)
+ if (mbmi->interinter_compound == COMPOUND_WEDGE)
*compmode_wedge_cost +=
av1_cost_literal(get_interinter_wedge_bits(bsize));
}