diff options
author | Praveen Chavan <pchavan@codeaurora.org> | 2017-06-30 01:15:05 -0700 |
---|---|---|
committer | wenchangliu <wenchangliu@google.com> | 2019-10-14 14:55:40 +0800 |
commit | 585eaee8b0f299727df8006d5e4de3e9b52bc62a (patch) | |
tree | a81dfaeb6e89d708aa014657494c8a713507b7f4 | |
parent | 3dbbe8f2863bca8ad38d3a7aa74aec0e62c092f2 (diff) | |
download | media-585eaee8b0f299727df8006d5e4de3e9b52bc62a.tar.gz |
mm-video-v4l2: venc: Set 601-Limited colorspace for color-converted buffers
Colorspace is derived from gralloc-handles for graphic-buffers and set to codec.
RGBA8888 Buffers are converted to YUV via C2D and have 601-Limited color.
When passed to the device-layer, such buffers do not have gralloc-handle
and hence colorspace does not get set.
Set colorspace as 601-L explicitly in such case to the codec.
Bug: 63147656
Bug: 134527014
CRs-Fixed: 2070838
Change-Id: Iae2705b8f4256d8e76309d2d1adb7cb6d3eb1692
-rw-r--r-- | msm8996/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/msm8996/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp b/msm8996/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp index 4250d8e..ebce90a 100644 --- a/msm8996/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp +++ b/msm8996/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp @@ -3651,6 +3651,13 @@ bool venc_dev::venc_empty_buf(void *buffer, void *pmem_data_buf, unsigned index, ": filled %d of %d format 0x%lx", fd, plane[0].bytesused, plane[0].length, m_sVenc_cfg.inputformat); } } else { + // color_format == 1 ==> RGBA to YUV Color-converted buffer + // Buffers color-converted via C2D have 601-Limited color + if (!streaming[OUTPUT_PORT]) { + DEBUG_PRINT_HIGH("Setting colorspace 601-L for Color-converted buffer"); + venc_set_colorspace(MSM_VIDC_BT601_6_625, 0 /*range-limited*/, + MSM_VIDC_TRANSFER_601_6_525, MSM_VIDC_MATRIX_601_6_525); + } plane[0].m.userptr = (unsigned long) bufhdr->pBuffer; plane[0].data_offset = bufhdr->nOffset; plane[0].length = bufhdr->nAllocLen; |