summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorqctecmdr <qctecmdr@localhost>2020-08-18 21:45:28 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2020-08-18 21:45:28 -0700
commit82a1151b49f0b83bc954bf67911228fc4a236126 (patch)
tree3952fc7e0ff052dfbe8656899615f17af4fbcfe8
parent3a1c43feea822faba07778d108a8ea3d775db5d2 (diff)
parentfe47c74012b0936fabaa6e503618f9359891ab6a (diff)
Merge "mm-video-v4l2: vdec: Override client primaries only for >=UHD"
-rw-r--r--mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp b/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp
index ccc39748..aa32dd05 100644
--- a/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp
+++ b/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp
@@ -11219,6 +11219,9 @@ void omx_vdec::convert_hdr_info_to_metadata(HDRStaticInfo& hdr_info, ColorMetaDa
void omx_vdec::get_preferred_color_aspects(ColorAspects& preferredColorAspects)
{
+ OMX_U32 width = drv_ctx.video_resolution.frame_width;
+ OMX_U32 height = drv_ctx.video_resolution.frame_height;
+
// For VPX, use client-color if specified.
// For the rest, try to use the stream-color if present
bool preferClientColor = (output_capability == V4L2_PIX_FMT_VP8 ||
@@ -11229,11 +11232,11 @@ void omx_vdec::get_preferred_color_aspects(ColorAspects& preferredColorAspects)
const ColorAspects &defaultColor = preferClientColor ?
m_internal_color_space.sAspects : m_client_color_space.sAspects;
- /* Client sets BT2020 for UHD and higher. Set correct aspects if the bistream is 8-bit */
- if ((m_client_color_space.sAspects.mPrimaries == ColorAspects::PrimariesBT2020) &&
+ if ((width >= 3840 || height >= 3840 || width * (int64_t)height >= 3840 * 1634) &&
+ (m_client_color_space.sAspects.mPrimaries == ColorAspects::PrimariesBT2020) &&
(dpb_bit_depth == MSM_VIDC_BIT_DEPTH_8)) {
- m_client_color_space.sAspects.mPrimaries = ColorAspects::PrimariesBT709_5;
- m_client_color_space.sAspects.mMatrixCoeffs = ColorAspects::MatrixBT709_5;
+ m_client_color_space.sAspects.mPrimaries = ColorAspects::PrimariesBT709_5;
+ m_client_color_space.sAspects.mMatrixCoeffs = ColorAspects::MatrixBT709_5;
}
preferredColorAspects.mPrimaries = preferredColor.mPrimaries != ColorAspects::PrimariesUnspecified ?