ALOGV("\tx = %u, y = %u, w = %u, h = %u, fw = %u, fh = %u",
c.x, c.y, c.w, c.h, c.fw, c.fh);
ALOGV("\tf = %u", c.format);
- ALOGV("\taddr = {%d, %d, %d}, rot = %u, cacheable = %u, drmMode = %u",
+ ALOGV("\taddr = {%lu, %lu, %lu}, rot = %u, cacheable = %u, drmMode = %u",
c.yaddr, c.uaddr, c.vaddr, c.rot, c.cacheable, c.drmMode);
ALOGV("\tnarrowRgb = %u, acquireFenceFd = %d, releaseFenceFd = %d, mem_type = %u",
c.narrowRgb, c.acquireFenceFd, c.releaseFenceFd, c.mem_type);
HDEBUGLOGD(type, "\tx = %u, y = %u, w = %u, h = %u, fw = %u, fh = %u",
c.x, c.y, c.w, c.h, c.fw, c.fh);
HDEBUGLOGD(type, "\tf = %u", c.format);
- HDEBUGLOGD(type, "\taddr = {%d, %d, %d}, rot = %u, cacheable = %u, drmMode = %u",
+ HDEBUGLOGD(type, "\taddr = {%lu, %lu, %lu}, rot = %u, cacheable = %u, drmMode = %u",
c.yaddr, c.uaddr, c.vaddr, c.rot, c.cacheable, c.drmMode);
HDEBUGLOGD(type, "\tnarrowRgb = %u, acquireFenceFd = %d, releaseFenceFd = %d, mem_type = %u",
c.narrowRgb, c.acquireFenceFd, c.releaseFenceFd, c.mem_type);
video_layer_config *pre_src_data, video_layer_config *pre_dst_data)
{
private_handle_t *src_handle = private_handle_t::dynamicCast(layer.handle);
- buffer_handle_t dst_buf;
- private_handle_t *dst_handle;
- int ret = 0;
bool reconfigure = 1;
video_layer_config new_src_cfg, new_dst_cfg;
if (rect.bottom > height)
rect.bottom = height;
}
-
-uint32_t halDataSpaceToV4L2ColorSpace(uint32_t data_space)
-{
- switch (data_space) {
- case HAL_DATASPACE_BT2020:
- case HAL_DATASPACE_BT2020_FULL:
- return V4L2_COLORSPACE_BT2020;
- case HAL_DATASPACE_DCI_P3:
- case HAL_DATASPACE_DCI_P3_FULL:
- return V4L2_COLORSPACE_DCI_P3;
- default:
- return V4L2_COLORSPACE_DEFAULT;
- }
- return V4L2_COLORSPACE_DEFAULT;
-}
-
-unsigned int isNarrowRgb(int format, uint32_t data_space)
-{
- if (format == HAL_PIXEL_FORMAT_EXYNOS_YCrCb_420_SP_M_FULL)
- return 0;
- else {
- if (isFormatRgb(format))
- return 0;
- else {
- if ((data_space == HAL_DATASPACE_BT2020_FULL) ||
- (data_space == HAL_DATASPACE_DCI_P3_FULL))
- return 0;
- else
- return 1;
- }
- }
-}
}
}
-bool ExynosMPP::isCSCSupportedByMPP(int src_format, int dst_format, uint32_t dataSpace)
+bool ExynosMPP::isCSCSupportedByMPP(int src_format __unused, int dst_format __unused, uint32_t dataSpace __unused)
{
return true;
}
return -eMPPUnsupportedFormat;
else if (!isFormatSupportedByMPP(dst_format))
return -eMPPUnsupportedFormat;
+#if 0
else if (!isCSCSupportedByMPP(handle->format, dst_format, layer.dataSpace))
return -eMPPUnsupportedCSC;
+#endif
else if (!mCanBlend &&
(handle->format == HAL_PIXEL_FORMAT_RGBA_8888 || handle->format == HAL_PIXEL_FORMAT_BGRA_8888) &&
layer.blending != HWC_BLENDING_NONE)
midImg.drmMode = srcImg.drmMode;
midImg.format = midFormat;
midImg.mem_type = MPP_MEM_DMABUF;
- midImg.narrowRgb = isNarrowRgb(midFormat, layer.dataSpace);
+ midImg.narrowRgb = midFormat != HAL_PIXEL_FORMAT_EXYNOS_YCrCb_420_SP_M_FULL;
}
return needDoubleOperation;
if (dstFormat == HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M_PRIV)
dstImg.format = HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M;
dstImg.mem_type = MPP_MEM_DMABUF;
- dstImg.narrowRgb = isNarrowRgb(srcHandle->format, layer.dataSpace);
+ if (srcHandle->format == HAL_PIXEL_FORMAT_EXYNOS_YCrCb_420_SP_M_FULL)
+ dstImg.narrowRgb = 0;
+ else
+ dstImg.narrowRgb = !isFormatRgb(srcHandle->format);
}
void ExynosMPP::setupBlendCfg(exynos_mpp_img __unused &srcImg, exynos_mpp_img &dstImg,
ATRACE_CALL();
HDEBUGLOGD(eDebugMPP, "configuring mType(%u) mIndex(%u) for memory-to-memory", mType, mIndex);
+#ifdef USES_VIRTUAL_DISPLAY
alloc_device_t* allocDevice = mAllocDevice;
+#endif
+
private_handle_t *srcHandle = private_handle_t::dynamicCast(layer.handle);
buffer_handle_t dstBuf;
private_handle_t *dstHandle;
- buffer_handle_t midBuf;
- private_handle_t *midHandle;
int ret = 0;
- int dstAlign;
- unsigned int colorspace = halDataSpaceToV4L2ColorSpace(layer.dataSpace);
exynos_mpp_img srcImg, dstImg;
memset(&srcImg, 0, sizeof(srcImg));
ALOGE("failed to stop mType(%u) mIndex(%u)", mType, mIndex);
goto err_gsc_config;
}
- ret = setCSCProperty(mMPPHandle, 0, !midImg.narrowRgb, colorspace);
+ ret = setCSCProperty(mMPPHandle, 0, !midImg.narrowRgb, 1);
ret = configMPP(mMPPHandle, &srcImg, &midImg);
if (ret < 0) {
ALOGE("failed to configure mType(%u) mIndex(%u)", mType, mIndex);
}
midImg.acquireFenceFd = midImg.releaseFenceFd;
- ret = setCSCProperty(mMPPHandle, 0, !dstImg.narrowRgb, colorspace);
+ ret = setCSCProperty(mMPPHandle, 0, !dstImg.narrowRgb, 1);
ret = configMPP(mMPPHandle, &midImg, &dstImg);
if (ret < 0) {
ALOGE("failed to configure mType(%u) mIndex(%u)", mType, mIndex);
private_handle_t *dstHandle;
struct SrcBlendInfo srcblendinfo;
int ret = 0;
- int dstAlign;
- unsigned int colorspace = V4L2_COLORSPACE_DEFAULT;
exynos_mpp_img srcImg, dstImg;
memset(&srcImg, 0, sizeof(srcImg));
midImg.vaddr = midHandle->fd2;
}
- if (isFormatRgb(srcHandle->format) == false)
- colorspace = halDataSpaceToV4L2ColorSpace(layer1.dataSpace);
- else
- colorspace = halDataSpaceToV4L2ColorSpace(layer2.dataSpace);
- ret = setCSCProperty(mMPPHandle, 0, !midImg.narrowRgb, colorspace);
+ ret = setCSCProperty(mMPPHandle, 0, !midImg.narrowRgb, 1);
HDEBUGLOGD(eDebugMPP, "src configuration:\n");
dumpMPPImage(eDebugMPP, srcImg);
/* if src1 is one plane NV12 format, uaddr should be src2's address.
if src1 is two plane NV12 format, vaddr should be src2's address. */
- if (srcImg.uaddr == -1)
+ if (srcImg.uaddr == (unsigned long)-1)
srcImg.uaddr = src2Handle->fd;
else
srcImg.vaddr = src2Handle->fd;
HDEBUGLOGD(eDebugMPP, "Blend Information:\n");
dumpBlendMPPImage(eDebugMPP, srcblendinfo);
- if (isFormatRgb(srcHandle->format) == false)
- colorspace = halDataSpaceToV4L2ColorSpace(layer1.dataSpace);
- else
- colorspace = halDataSpaceToV4L2ColorSpace(layer2.dataSpace);
- ret = setCSCProperty(mMPPHandle, 0, !dstImg.narrowRgb, colorspace);
+ ret = setCSCProperty(mMPPHandle, 0, !dstImg.narrowRgb, 1);
ret = configBlendMpp(mMPPHandle, &srcImg, &dstImg, &srcblendinfo);
if (ret < 0) {