Merge "Assert no 8x4/4x8 partition for scaled references"
diff --git a/configure b/configure
index f12779c..c3c0f40 100755
--- a/configure
+++ b/configure
@@ -35,6 +35,9 @@
   ${toggle_debug_libs}            in/exclude debug version of libraries
   ${toggle_static_msvcrt}         use static MSVCRT (VS builds only)
   ${toggle_vp9_highbitdepth}      use VP9 high bit depth (10/12) profiles
+  ${toggle_better_hw_compatibility}
+                                  enable encoder to produce streams with better
+                                  hardware decoder compatibility
   ${toggle_vp8}                   VP8 codec support
   ${toggle_vp9}                   VP9 codec support
   ${toggle_vp10}                  VP10 codec support
@@ -322,6 +325,7 @@
     vp9_temporal_denoising
     coefficient_range_checking
     vp9_highbitdepth
+    better_hw_compatibility
     experimental
     size_limit
     ${EXPERIMENT_LIST}
@@ -380,6 +384,7 @@
     temporal_denoising
     vp9_temporal_denoising
     coefficient_range_checking
+    better_hw_compatibility
     vp9_highbitdepth
     experimental
 "
diff --git a/vp9/common/vp9_reconinter.c b/vp9/common/vp9_reconinter.c
index d8c14ec..3eb19b1 100644
--- a/vp9/common/vp9_reconinter.c
+++ b/vp9/common/vp9_reconinter.c
@@ -187,6 +187,10 @@
     const int is_scaled = vp9_is_scaled(sf);
 
     if (is_scaled) {
+#if CONFIG_BETTER_HW_COMPATIBILITY
+      assert(xd->mi[0]->mbmi.sb_type != BLOCK_4X8 &&
+             xd->mi[0]->mbmi.sb_type != BLOCK_8X4);
+#endif
       // Co-ordinate of containing block to pixel precision.
       const int x_start = (-xd->mb_to_left_edge >> (3 + pd->subsampling_x));
       const int y_start = (-xd->mb_to_top_edge >> (3 + pd->subsampling_y));