diff options
author | qctecmdr <qctecmdr@localhost> | 2020-08-18 21:45:28 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2020-08-18 21:45:28 -0700 |
commit | 82a1151b49f0b83bc954bf67911228fc4a236126 (patch) | |
tree | 3952fc7e0ff052dfbe8656899615f17af4fbcfe8 | |
parent | 3a1c43feea822faba07778d108a8ea3d775db5d2 (diff) | |
parent | fe47c74012b0936fabaa6e503618f9359891ab6a (diff) |
Merge "mm-video-v4l2: vdec: Override client primaries only for >=UHD"
-rw-r--r-- | mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp | 11 |
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 ? |