summaryrefslogtreecommitdiffstats
path: root/liboverlay
diff options
context:
space:
mode:
authorhoony.yu <hoony.yu@samsung.com>2010-10-10 15:36:39 -0700
committerSimon Wilson <simonwilson@google.com>2010-10-14 19:37:47 -0700
commit25bf1629c6ad7083fd4636a5558272697db85f1c (patch)
treefd44e33223063b474c9960eacd18dc220b774e30 /liboverlay
parent325d79f498f7130ba95ee498a2bf0f332566e9a5 (diff)
downloaddevice_samsung_crespo-25bf1629c6ad7083fd4636a5558272697db85f1c.zip
device_samsung_crespo-25bf1629c6ad7083fd4636a5558272697db85f1c.tar.gz
device_samsung_crespo-25bf1629c6ad7083fd4636a5558272697db85f1c.tar.bz2
S5PC11X: OVERLAY: Fix a bug - incorrect comparison.
overlay_commit() compare previous resolution not with requested resolution, but with real resolution. Change-Id: Id36f60a307628280e8074c03aba34c0d7c6bef46 Signed-off-by: hoony.yu <hoony.yu@samsung.com>
Diffstat (limited to 'liboverlay')
-rw-r--r--liboverlay/overlay.cpp43
1 files changed, 22 insertions, 21 deletions
diff --git a/liboverlay/overlay.cpp b/liboverlay/overlay.cpp
index 0ff72dc..033b1d4 100644
--- a/liboverlay/overlay.cpp
+++ b/liboverlay/overlay.cpp
@@ -823,6 +823,28 @@ static int overlay_commit(struct overlay_control_device_t *dev,
shared->controlReady = 1;
}
+ g_s5p_fimc.params.dst.full_width = g_lcd_width;
+ g_s5p_fimc.params.dst.full_height = g_lcd_height;
+ g_s5p_fimc.params.dst.width = stage->posW;
+ g_s5p_fimc.params.dst.height = stage->posH;
+ if (g_lcd_bpp == 32)
+ g_s5p_fimc.params.dst.color_space = V4L2_PIX_FMT_RGB32;
+ else
+ g_s5p_fimc.params.dst.color_space = V4L2_PIX_FMT_RGB565;
+ ret = check_fimc_dst_constraints(&g_s5p_fimc, stage->rotation);
+ if (ret != 0) {
+ if (ret < 0) {
+ LOGE("Unsupported destination image size");
+ goto end;
+ } else {
+ LOGD("dst width, height have changed [w= %d, h= %d] -> [w=%d, h= %d]",
+ stage->posW, stage->posH, g_s5p_fimc.params.dst.width,
+ g_s5p_fimc.params.dst.height);
+ stage->posW = g_s5p_fimc.params.dst.width;
+ stage->posH = g_s5p_fimc.params.dst.height;
+ }
+ }
+
if (data->posX == stage->posX && data->posY == stage->posY &&
data->posW == stage->posW && data->posH == stage->posH &&
data->rotation == stage->rotation) {
@@ -848,27 +870,6 @@ static int overlay_commit(struct overlay_control_device_t *dev,
v4l2_overlay_s_fbuf(fd, stage->rotation);
}
- g_s5p_fimc.params.dst.full_width = g_lcd_width;
- g_s5p_fimc.params.dst.full_height = g_lcd_height;
- g_s5p_fimc.params.dst.width = stage->posW;
- g_s5p_fimc.params.dst.height = stage->posH;
- if (g_lcd_bpp == 32)
- g_s5p_fimc.params.dst.color_space = V4L2_PIX_FMT_RGB32;
- else
- g_s5p_fimc.params.dst.color_space = V4L2_PIX_FMT_RGB565;
- ret = check_fimc_dst_constraints(&g_s5p_fimc, stage->rotation);
- if (ret != 0) {
- if (ret < 0) {
- LOGE("Unsupported destination image size");
- goto end;
- } else {
- LOGD("dst width, height have changed [w= %d, h= %d] -> [w=%d, h= %d]",
- stage->posW, stage->posH, g_s5p_fimc.params.dst.width,
- g_s5p_fimc.params.dst.height);
- stage->posW = g_s5p_fimc.params.dst.width;
- stage->posH = g_s5p_fimc.params.dst.height;
- }
- }
ret = v4l2_overlay_set_position(fd, stage->posX, stage->posY,
stage->posW, stage->posH, stage->rotation);
if (ret) {