Merge "hwc: Add MetaData support in overlay path."

This commit is contained in:
Linux Build Service Account
2013-03-27 12:56:17 -07:00
committed by Gerrit - the friendly Code Review server
12 changed files with 245 additions and 16 deletions

View File

@@ -605,6 +605,13 @@ void setMdpFlags(hwc_layer_1_t *layer,
ovutils::setMdpFlags(mdpFlags, ovutils::OV_MDP_FLIP_V);
}
}
if(metadata &&
((metadata->operation & PP_PARAM_HSIC)
|| (metadata->operation & PP_PARAM_IGC)
|| (metadata->operation & PP_PARAM_SHARP2))) {
ovutils::setMdpFlags(mdpFlags, ovutils::OV_MDP_PP_EN);
}
}
static inline int configRotator(Rotator *rot, const Whf& whf,
@@ -620,7 +627,8 @@ static inline int configRotator(Rotator *rot, const Whf& whf,
static inline int configMdp(Overlay *ov, const PipeArgs& parg,
const eTransform& orient, const hwc_rect_t& crop,
const hwc_rect_t& pos, const eDest& dest) {
const hwc_rect_t& pos, const MetaData_t *metadata,
const eDest& dest) {
ov->setSource(parg, dest);
ov->setTransform(orient, dest);
@@ -634,6 +642,9 @@ static inline int configMdp(Overlay *ov, const PipeArgs& parg,
Dim position(pos.left, pos.top, posW, posH);
ov->setPosition(position, dest);
if (metadata)
ov->setVisualParams(*metadata, dest);
if (!ov->commit(dest)) {
return -1;
}
@@ -665,6 +676,8 @@ int configureLowRes(hwc_context_t *ctx, hwc_layer_1_t *layer,
return -1;
}
MetaData_t *metadata = (MetaData_t *)hnd->base_metadata;
hwc_rect_t crop = layer->sourceCrop;
hwc_rect_t dst = layer->displayFrame;
int transform = layer->transform;
@@ -706,7 +719,7 @@ int configureLowRes(hwc_context_t *ctx, hwc_layer_1_t *layer,
transform = 0;
PipeArgs parg(mdpFlags, whf, z, isFg, static_cast<eRotFlags>(rotFlags));
if(configMdp(ctx->mOverlay, parg, orient, crop, dst, dest) < 0) {
if(configMdp(ctx->mOverlay, parg, orient, crop, dst, metadata, dest) < 0) {
ALOGE("%s: commit failed for low res panel", __FUNCTION__);
return -1;
}
@@ -723,6 +736,8 @@ int configureHighRes(hwc_context_t *ctx, hwc_layer_1_t *layer,
return -1;
}
MetaData_t *metadata = (MetaData_t *)hnd->base_metadata;
int hw_w = ctx->dpyAttr[dpy].xres;
int hw_h = ctx->dpyAttr[dpy].yres;
hwc_rect_t crop = layer->sourceCrop;
@@ -798,7 +813,7 @@ int configureHighRes(hwc_context_t *ctx, hwc_layer_1_t *layer,
PipeArgs pargL(mdpFlagsL, whf, z, isFg,
static_cast<eRotFlags>(rotFlags));
if(configMdp(ctx->mOverlay, pargL, orient,
tmp_cropL, tmp_dstL, lDest) < 0) {
tmp_cropL, tmp_dstL, metadata, lDest) < 0) {
ALOGE("%s: commit failed for left mixer config", __FUNCTION__);
return -1;
}
@@ -811,7 +826,7 @@ int configureHighRes(hwc_context_t *ctx, hwc_layer_1_t *layer,
tmp_dstR.right = tmp_dstR.right - tmp_dstR.left;
tmp_dstR.left = 0;
if(configMdp(ctx->mOverlay, pargR, orient,
tmp_cropR, tmp_dstR, rDest) < 0) {
tmp_cropR, tmp_dstR, metadata, rDest) < 0) {
ALOGE("%s: commit failed for right mixer config", __FUNCTION__);
return -1;
}