hwc: video: Create crop and position structs only once.
Create crop and position structs only once. Fix bug where x and y were not updated. Change-Id: I7c6a873ba207997baa302b8999bdaf34cc938dba
This commit is contained in:
parent
6f560322d7
commit
e684abd1ec
@ -130,17 +130,7 @@ bool configPrimVid(hwc_context_t *ctx, hwc_layer_t *layer) {
|
||||
ov.setSource(pargs, ovutils::OV_PIPE0);
|
||||
|
||||
hwc_rect_t sourceCrop = layer->sourceCrop;
|
||||
// x,y,w,h
|
||||
ovutils::Dim dcrop(sourceCrop.left, sourceCrop.top,
|
||||
sourceCrop.right - sourceCrop.left,
|
||||
sourceCrop.bottom - sourceCrop.top);
|
||||
|
||||
ovutils::Dim dpos;
|
||||
hwc_rect_t displayFrame = layer->displayFrame;
|
||||
dpos.x = displayFrame.left;
|
||||
dpos.y = displayFrame.top;
|
||||
dpos.w = (displayFrame.right - displayFrame.left);
|
||||
dpos.h = (displayFrame.bottom - displayFrame.top);
|
||||
|
||||
//Calculate the rect for primary based on whether the supplied position
|
||||
//is within or outside bounds.
|
||||
@ -153,19 +143,13 @@ bool configPrimVid(hwc_context_t *ctx, hwc_layer_t *layer) {
|
||||
displayFrame.top < 0 ||
|
||||
displayFrame.right > fbWidth ||
|
||||
displayFrame.bottom > fbHeight) {
|
||||
|
||||
calculate_crop_rects(sourceCrop, displayFrame, fbWidth, fbHeight);
|
||||
|
||||
//Update calculated width and height
|
||||
dcrop.w = sourceCrop.right - sourceCrop.left;
|
||||
dcrop.h = sourceCrop.bottom - sourceCrop.top;
|
||||
|
||||
dpos.x = displayFrame.left;
|
||||
dpos.y = displayFrame.top;
|
||||
dpos.w = displayFrame.right - displayFrame.left;
|
||||
dpos.h = displayFrame.bottom - displayFrame.top;
|
||||
}
|
||||
|
||||
// source crop x,y,w,h
|
||||
ovutils::Dim dcrop(sourceCrop.left, sourceCrop.top,
|
||||
sourceCrop.right - sourceCrop.left,
|
||||
sourceCrop.bottom - sourceCrop.top);
|
||||
//Only for Primary
|
||||
ov.setCrop(dcrop, ovutils::OV_PIPE0);
|
||||
|
||||
@ -174,6 +158,11 @@ bool configPrimVid(hwc_context_t *ctx, hwc_layer_t *layer) {
|
||||
static_cast<ovutils::eTransform>(transform);
|
||||
ov.setTransform(orient, ovutils::OV_PIPE0);
|
||||
|
||||
// position x,y,w,h
|
||||
ovutils::Dim dpos(displayFrame.left,
|
||||
displayFrame.top,
|
||||
displayFrame.right - displayFrame.left,
|
||||
displayFrame.bottom - displayFrame.top);
|
||||
ov.setPosition(dpos, ovutils::OV_PIPE0);
|
||||
|
||||
if (!ov.commit(ovutils::OV_PIPE0)) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user