Rearrange the colorspace/mono deocde logic a bit
Change-Id: I0d76adba7c5ea387a9c58076369d1eba89b0fbfe
diff --git a/av1/av1_dx_iface.c b/av1/av1_dx_iface.c
index 0e0c0a1..dbeaa7c 100644
--- a/av1/av1_dx_iface.c
+++ b/av1/av1_dx_iface.c
@@ -212,6 +212,9 @@
}
#endif // CONFIG_COLORSPACE_HEADERS
#endif // CONFIG_CICP
+#if CONFIG_MONO_VIDEO
+ if (is_monochrome) return 1;
+#endif // CONFIG_MONO_VIDEO
#if CONFIG_CICP
if (color_primaries == AOM_CICP_CP_BT_709 &&
transfer_characteristics == AOM_CICP_TC_SRGB &&
@@ -225,10 +228,6 @@
(profile == PROFILE_2 && bit_depth == AOM_BITS_12))) {
return 0;
}
-#if CONFIG_MONO_VIDEO
- } else if (is_monochrome) {
- return 1;
-#endif // CONFIG_MONO_VIDEO
} else {
rb->bit_offset += 1; // [16,235] (including xvycc) vs [0,255] range.
diff --git a/av1/decoder/decodeframe.c b/av1/decoder/decodeframe.c
index cbcddc5..386edc0 100644
--- a/av1/decoder/decodeframe.c
+++ b/av1/decoder/decodeframe.c
@@ -2197,6 +2197,19 @@
if (!is_monochrome) cm->color_space = aom_rb_read_literal(rb, 4);
#endif // CONFIG_COLORSPACE_HEADERS
#endif // CONFIG_CICP
+#if CONFIG_MONO_VIDEO
+ if (is_monochrome) {
+ cm->color_range = AOM_CR_FULL_RANGE;
+ cm->subsampling_y = cm->subsampling_x = 1;
+#if CONFIG_COLORSPACE_HEADERS
+ cm->chroma_sample_position = AOM_CSP_UNKNOWN;
+#endif // CONFIG_COLORSPACE_HEADERS
+#if CONFIG_EXT_QM
+ cm->separate_uv_delta_q = 0;
+#endif // CONFIG_EXT_QM
+ return;
+ }
+#endif // CONFIG_MONO_VIDEO
#if CONFIG_CICP
if (cm->color_primaries == AOM_CICP_CP_BT_709 &&
cm->transfer_characteristics == AOM_CICP_TC_SRGB &&
@@ -2212,18 +2225,6 @@
aom_internal_error(&cm->error, AOM_CODEC_UNSUP_BITSTREAM,
"SRGB colorspace not copatible with profile");
}
-#if CONFIG_MONO_VIDEO
- } else if (is_monochrome) {
- cm->color_range = AOM_CR_FULL_RANGE;
- cm->subsampling_y = cm->subsampling_x = 1;
-#if CONFIG_COLORSPACE_HEADERS
- cm->chroma_sample_position = AOM_CSP_UNKNOWN;
-#endif // CONFIG_COLORSPACE_HEADERS
-#if CONFIG_EXT_QM
- cm->separate_uv_delta_q = 0;
-#endif // CONFIG_EXT_QM
- return;
-#endif // CONFIG_MONO_VIDEO
} else {
// [16,235] (including xvycc) vs [0,255] range
cm->color_range = aom_rb_read_bit(rb);
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c
index 41b7c9d..bd89081 100644
--- a/av1/encoder/bitstream.c
+++ b/av1/encoder/bitstream.c
@@ -3282,6 +3282,9 @@
if (!is_monochrome) aom_wb_write_literal(wb, cm->color_space, 4);
#endif // CONFIG_COLORSPACE_HEADERS
#endif // CONFIG_CICP
+#if CONFIG_MONO_VIDEO
+ if (is_monochrome) return;
+#endif // CONFIG_MONO_VIDEO
#if CONFIG_CICP
if (cm->color_primaries == AOM_CICP_CP_BT_709 &&
cm->transfer_characteristics == AOM_CICP_TC_SRGB &&
@@ -3294,10 +3297,6 @@
assert(cm->subsampling_x == 0 && cm->subsampling_y == 0);
assert(cm->profile == PROFILE_1 ||
(cm->profile == PROFILE_2 && cm->bit_depth == AOM_BITS_12));
-#if CONFIG_MONO_VIDEO
- } else if (is_monochrome) {
- return;
-#endif // CONFIG_MONO_VIDEO
} else {
// 0: [16, 235] (i.e. xvYCC), 1: [0, 255]
aom_wb_write_bit(wb, cm->color_range);