summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPraveen Chavan <pchavan@codeaurora.org>2017-06-30 01:15:05 -0700
committerwenchangliu <wenchangliu@google.com>2019-10-14 14:55:40 +0800
commit585eaee8b0f299727df8006d5e4de3e9b52bc62a (patch)
treea81dfaeb6e89d708aa014657494c8a713507b7f4
parent3dbbe8f2863bca8ad38d3a7aa74aec0e62c092f2 (diff)
downloadmedia-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.cpp7
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;