From 96454aaa4ab9f17690ecd4f5f147f3afe5e0361d Mon Sep 17 00:00:00 2001 From: Santhosh Behara Date: Thu, 16 Aug 2018 17:46:15 +0530 Subject: mm-video-v4l2: vdec: Correct order of reading color primaries According to H265 spec, the color primaries should be in G,B,R order. But in the exisisting code they are read in R, G, B order. Correct the order of reading bitstream as per the specification. (Cherry-picked from: https://partner-android-review.googlesource.com/c/platform/hardware/qcom/sdm845/media/+/1120439) Bug: 111799726 Change-Id: Ic6703dcf7878c27e3e18e437039ddb74cf8d32d6 (cherry picked from commit acb885f628ccf4731d887d47300e5d9ff58b72b4) --- mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'mm-video-v4l2') 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 6590fe11..71db9824 100644 --- a/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp +++ b/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp @@ -9671,12 +9671,12 @@ bool omx_vdec::handle_mastering_display_color_info(void* data) HDRStaticInfo* hdr_info = &m_internal_hdr_info.sInfo; bool internal_disp_changed_flag = false; - internal_disp_changed_flag |= (hdr_info->sType1.mR.x != mastering_display_payload->nDisplayPrimariesX[0]) || - (hdr_info->sType1.mR.y != mastering_display_payload->nDisplayPrimariesY[0]); - internal_disp_changed_flag |= (hdr_info->sType1.mG.x != mastering_display_payload->nDisplayPrimariesX[1]) || - (hdr_info->sType1.mG.y != mastering_display_payload->nDisplayPrimariesY[1]); - internal_disp_changed_flag |= (hdr_info->sType1.mB.x != mastering_display_payload->nDisplayPrimariesX[2]) || - (hdr_info->sType1.mB.y != mastering_display_payload->nDisplayPrimariesY[2]); + internal_disp_changed_flag |= (hdr_info->sType1.mG.x != mastering_display_payload->nDisplayPrimariesX[0]) || + (hdr_info->sType1.mG.y != mastering_display_payload->nDisplayPrimariesY[0]); + internal_disp_changed_flag |= (hdr_info->sType1.mB.x != mastering_display_payload->nDisplayPrimariesX[1]) || + (hdr_info->sType1.mB.y != mastering_display_payload->nDisplayPrimariesY[1]); + internal_disp_changed_flag |= (hdr_info->sType1.mR.x != mastering_display_payload->nDisplayPrimariesX[2]) || + (hdr_info->sType1.mR.y != mastering_display_payload->nDisplayPrimariesY[2]); internal_disp_changed_flag |= (hdr_info->sType1.mW.x != mastering_display_payload->nWhitePointX) || (hdr_info->sType1.mW.y != mastering_display_payload->nWhitePointY); @@ -9690,12 +9690,12 @@ bool omx_vdec::handle_mastering_display_color_info(void* data) (hdr_info->sType1.mMinDisplayLuminance != mastering_display_payload->nMinDisplayMasteringLuminance); if (internal_disp_changed_flag) { - hdr_info->sType1.mR.x = mastering_display_payload->nDisplayPrimariesX[0]; - hdr_info->sType1.mR.y = mastering_display_payload->nDisplayPrimariesY[0]; - hdr_info->sType1.mG.x = mastering_display_payload->nDisplayPrimariesX[1]; - hdr_info->sType1.mG.y = mastering_display_payload->nDisplayPrimariesY[1]; - hdr_info->sType1.mB.x = mastering_display_payload->nDisplayPrimariesX[2]; - hdr_info->sType1.mB.y = mastering_display_payload->nDisplayPrimariesY[2]; + hdr_info->sType1.mG.x = mastering_display_payload->nDisplayPrimariesX[0]; + hdr_info->sType1.mG.y = mastering_display_payload->nDisplayPrimariesY[0]; + hdr_info->sType1.mB.x = mastering_display_payload->nDisplayPrimariesX[1]; + hdr_info->sType1.mB.y = mastering_display_payload->nDisplayPrimariesY[1]; + hdr_info->sType1.mR.x = mastering_display_payload->nDisplayPrimariesX[2]; + hdr_info->sType1.mR.y = mastering_display_payload->nDisplayPrimariesY[2]; hdr_info->sType1.mW.x = mastering_display_payload->nWhitePointX; hdr_info->sType1.mW.y = mastering_display_payload->nWhitePointY; -- cgit v1.2.3