From a9ce4757f75ad260ba6c022cd875ba21fb3f8089 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/media/+/1123749/) Bug: 111799726 Bug: 112443029 Change-Id: Ic6703dcf7878c27e3e18e437039ddb74cf8d32d6 (cherry picked from commit defe2fa2ca6553b686de3cbac7f65d51584e16fe) --- .../mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp | 24 +++++++++++----------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/msm8998/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp b/msm8998/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp index b61f49b3..419d9f5f 100644 --- a/msm8998/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp +++ b/msm8998/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp @@ -11399,12 +11399,12 @@ bool omx_vdec::handle_mastering_display_color_info(void* data, MasteringDisplay* mastering_display_mdata->maxDisplayLuminance = mastering_display_payload->nMaxDisplayMasteringLuminance; mastering_display_mdata->minDisplayLuminance = mastering_display_payload->nMinDisplayMasteringLuminance; - 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); @@ -11418,12 +11418,12 @@ bool omx_vdec::handle_mastering_display_color_info(void* data, MasteringDisplay* (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