stagefright: define DCI and Display P3 primaries
Also correct the name of StandardDCI_P3 as it is actually Display_P3
Bug: 232164440
Bug: 270660852
Change-Id: I5e77c151a2a915571fa9a3d1d5fe8ad6552a6762
diff --git a/media/codec2/sfplugin/utils/Codec2Mapper.cpp b/media/codec2/sfplugin/utils/Codec2Mapper.cpp
index c606d6f..9297520 100644
--- a/media/codec2/sfplugin/utils/Codec2Mapper.cpp
+++ b/media/codec2/sfplugin/utils/Codec2Mapper.cpp
@@ -119,8 +119,8 @@
{ C2Color::PRIMARIES_BT601_525, ColorAspects::PrimariesBT601_6_525 },
{ C2Color::PRIMARIES_GENERIC_FILM, ColorAspects::PrimariesGenericFilm },
{ C2Color::PRIMARIES_BT2020, ColorAspects::PrimariesBT2020 },
-// { C2Color::PRIMARIES_RP431, ColorAspects::Primaries... },
-// { C2Color::PRIMARIES_EG432, ColorAspects::Primaries... },
+ { C2Color::PRIMARIES_RP431, ColorAspects::PrimariesRP431 },
+ { C2Color::PRIMARIES_EG432, ColorAspects::PrimariesEG432 },
// { C2Color::PRIMARIES_EBU3213, ColorAspects::Primaries... },
{ C2Color::PRIMARIES_OTHER, ColorAspects::PrimariesOther },
};
diff --git a/media/module/foundation/ColorUtils.cpp b/media/module/foundation/ColorUtils.cpp
index 6dc8157..12bffca 100644
--- a/media/module/foundation/ColorUtils.cpp
+++ b/media/module/foundation/ColorUtils.cpp
@@ -60,6 +60,10 @@
{ CU::kColorStandardBT470M, { CA::PrimariesBT470_6M, CA::MatrixBT470_6M } },
// NOTE: there is no close match to the matrix used by standard film, chose closest
{ CU::kColorStandardFilm, { CA::PrimariesGenericFilm, CA::MatrixBT2020 } },
+ // DCI-P3 (in DataSpace that drives this standard) is actually Display P3
+ // ITU does not specify a matrix suitable for P3. The theoretical KR/KB numbers are
+ // 0.229 and 0.079. Assume BT.601 matrix as P3 is commonly used for JPEG with BT.601.
+ { CU::kColorStandardDisplay_P3, { CA::PrimariesEG432, CA::MatrixBT601_6 } },
}
};
@@ -264,6 +268,8 @@
{ 8, ColorAspects::PrimariesGenericFilm },
{ 9, ColorAspects::PrimariesBT2020 },
{ 10, ColorAspects::PrimariesOther /* XYZ */ },
+ { 11, ColorAspects::PrimariesRP431 },
+ { 12, ColorAspects::PrimariesEG432 },
}
};
@@ -438,6 +444,9 @@
{ CU::kColorStandardBT2020, CA::PrimariesBT2020 },
{ CU::kColorStandardBT601_525_Unadjusted, CA::PrimariesBT601_6_525 },
{ CU::kColorStandardBT601_625_Unadjusted, CA::PrimariesBT601_6_625 },
+ { CU::kColorStandardDisplay_P3, CA::PrimariesEG432 },
+ // fall back DCI P3 primaries to Display P3
+ { CU::kColorStandardDisplay_P3, CA::PrimariesRP431 },
}
};
@@ -469,7 +478,8 @@
{ CU::kColorStandardBT2020Constant, GET_HAL_BITFIELD(STANDARD, BT2020_CONSTANT_LUMINANCE) },
{ CU::kColorStandardBT470M, GET_HAL_BITFIELD(STANDARD, BT470M) },
{ CU::kColorStandardFilm, GET_HAL_BITFIELD(STANDARD, FILM) },
- { CU::kColorStandardDCI_P3, GET_HAL_BITFIELD(STANDARD, DCI_P3) },
+ // DCI-P3 (in DataSpace that drives this standard) is actually Display P3
+ { CU::kColorStandardDisplay_P3, GET_HAL_BITFIELD(STANDARD, DCI_P3) },
}
};
diff --git a/media/module/foundation/include/media/stagefright/foundation/ColorUtils.h b/media/module/foundation/include/media/stagefright/foundation/ColorUtils.h
index 72c8074..f4e89bb 100644
--- a/media/module/foundation/include/media/stagefright/foundation/ColorUtils.h
+++ b/media/module/foundation/include/media/stagefright/foundation/ColorUtils.h
@@ -57,7 +57,8 @@
kColorStandardBT2020Constant = 7, // not in SDK
kColorStandardBT470M = 8, // not in SDK
kColorStandardFilm = 9, // not in SDK
- kColorStandardDCI_P3 = 10, // not in SDK, new in Android 8.0
+ kColorStandardDisplay_P3 = 10, // not in SDK, new in Android 8.0
+ kColorStandardDCI_P3 = kColorStandardDisplay_P3, // legacy (incorrect) name for Display P3
/* This marks a section of color-standard values that are not supported by graphics HAL,
but track defined color primaries-matrix coefficient combinations in media.
@@ -211,7 +212,7 @@
case ColorUtils::kColorStandardBT2020Constant: return "BT2020Constant";
case ColorUtils::kColorStandardBT470M: return "BT470M";
case ColorUtils::kColorStandardFilm: return "Film";
- case ColorUtils::kColorStandardDCI_P3: return "DCI_P3";
+ case ColorUtils::kColorStandardDisplay_P3: return "Display_P3";
default: return def;
}
}