Disallow 4:4:0 subsampling

BUG=aomedia:1233

Change-Id: Ib740ee063b87003cf8c6cbd8f2ae4b917892e41c
diff --git a/av1/av1_dx_iface.c b/av1/av1_dx_iface.c
index dbeaa7c..8fad588 100644
--- a/av1/av1_dx_iface.c
+++ b/av1/av1_dx_iface.c
@@ -240,7 +240,10 @@
     } else if (profile == PROFILE_2) {
       if (bit_depth == AOM_BITS_12) {
         subsampling_x = aom_rb_read_bit(rb);
-        subsampling_y = aom_rb_read_bit(rb);
+        if (subsampling_x == 0)
+          subsampling_y = 0;
+        else
+          subsampling_y = aom_rb_read_bit(rb);
       } else {
         subsampling_x = 1;
         subsampling_y = 0;
diff --git a/av1/decoder/decodeframe.c b/av1/decoder/decodeframe.c
index 159b9d6..5ad2e52 100644
--- a/av1/decoder/decodeframe.c
+++ b/av1/decoder/decodeframe.c
@@ -2237,7 +2237,10 @@
     } else if (cm->profile == PROFILE_2) {
       if (cm->bit_depth == AOM_BITS_12) {
         cm->subsampling_x = aom_rb_read_bit(rb);
-        cm->subsampling_y = aom_rb_read_bit(rb);
+        if (cm->subsampling_x == 0)
+          cm->subsampling_y = 0;  // 444
+        else
+          cm->subsampling_y = aom_rb_read_bit(rb);  // 422 or 420
       } else {
         // 422
         cm->subsampling_x = 1;
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c
index 48cc8fa..a939e60 100644
--- a/av1/encoder/bitstream.c
+++ b/av1/encoder/bitstream.c
@@ -3303,7 +3303,12 @@
       if (cm->bit_depth == AOM_BITS_12) {
         // 420, 444 or 422
         aom_wb_write_bit(wb, cm->subsampling_x);
-        aom_wb_write_bit(wb, cm->subsampling_y);
+        if (cm->subsampling_x == 0) {
+          assert(cm->subsampling_y == 0 &&
+                 "4:4:0 subsampling not allowed in AV1");
+        } else {
+          aom_wb_write_bit(wb, cm->subsampling_y);
+        }
       } else {
         // 422 only
         assert(cm->subsampling_x == 1 && cm->subsampling_y == 0);