Disable OBMC + compound

Disable OBMC mode if the current block uses compound prediction.
Results if we only disable this combination for small
block sizes are also listed.

Loss of gain (lowres/midres/AWCYHL)
no compound :         0.230%/0.105%/0.15%
no compound <= 8x8:   0.043%/-0.016%/0%
no compound <= 16x16: 0.153%/0.029%/0.05%


Change-Id: I94c9d704172dd02e53f3b2004a8032a4f1265057
diff --git a/av1/common/blockd.h b/av1/common/blockd.h
index 5cf0f83..3f40724 100644
--- a/av1/common/blockd.h
+++ b/av1/common/blockd.h
@@ -1082,6 +1082,14 @@
   return (bsize >= BLOCK_8X8);
 }
 
+static INLINE int is_motion_variation_allowed_compound(
+    const MB_MODE_INFO *mbmi) {
+  if (!has_second_ref(mbmi))
+    return 1;
+  else
+    return 0;
+}
+
 #if CONFIG_MOTION_VAR
 // input: log2 of length, 0(4), 1(8), ...
 static const int max_neighbor_obmc[6] = { 0, 1, 2, 3, 4, 4 };
@@ -1104,10 +1112,11 @@
 #endif  // CONFIG_GLOBAL_MOTION && SEPARATE_GLOBAL_MOTION
 #if CONFIG_EXT_INTER
   if (is_motion_variation_allowed_bsize(mbmi->sb_type) &&
-      is_inter_mode(mbmi->mode) && mbmi->ref_frame[1] != INTRA_FRAME) {
+      is_inter_mode(mbmi->mode) && mbmi->ref_frame[1] != INTRA_FRAME &&
+      is_motion_variation_allowed_compound(mbmi)) {
 #else
   if (is_motion_variation_allowed_bsize(mbmi->sb_type) &&
-      is_inter_mode(mbmi->mode)) {
+      is_inter_mode(mbmi->mode) && is_motion_variation_allowed_compound(mbmi)) {
 #endif  // CONFIG_EXT_INTER
 #if CONFIG_MOTION_VAR
     if (!check_num_overlappable_neighbors(mbmi)) return SIMPLE_TRANSLATION;