From: Changyeon Lee Date: Mon, 9 Dec 2019 11:15:30 +0000 (+0900) Subject: e_hwc_video_hwc_windows: check commit data is changed X-Git-Tag: submit/tizen/20191219.081933~14 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F84%2F219784%2F1;p=platform%2Fupstream%2Fenlightenment.git e_hwc_video_hwc_windows: check commit data is changed Change-Id: I9ef07e909faab70ddd0b0fffcae56d3ea236a6dc --- diff --git a/src/bin/video/iface/e_video_hwc_windows.c b/src/bin/video/iface/e_video_hwc_windows.c index fc2057f049..c5ce0b5f87 100644 --- a/src/bin/video/iface/e_video_hwc_windows.c +++ b/src/bin/video/iface/e_video_hwc_windows.c @@ -22,9 +22,27 @@ struct _E_Video_Hwc_Windows } commit_data; }; -static void +static Eina_Bool _e_video_hwc_windows_commit_data_set(E_Video_Hwc_Windows *evhw, E_Comp_Wl_Video_Buf *vbuf) { + if ((evhw->commit_data.info.src_config.size.h == vbuf->width_from_pitch) && + (evhw->commit_data.info.src_config.size.v == vbuf->height_from_size) && + (evhw->commit_data.info.src_config.pos.x == vbuf->content_r.x) && + (evhw->commit_data.info.src_config.pos.y == vbuf->content_r.y) && + (evhw->commit_data.info.src_config.pos.w == vbuf->content_r.w) && + (evhw->commit_data.info.src_config.pos.h == vbuf->content_r.h) && + (evhw->commit_data.info.src_config.format == vbuf->tbmfmt) && + (evhw->commit_data.info.dst_pos.x == evhw->base.geo.tdm.output_r.x) && + (evhw->commit_data.info.dst_pos.y == evhw->base.geo.tdm.output_r.y) && + (evhw->commit_data.info.dst_pos.w == evhw->base.geo.tdm.output_r.w) && + (evhw->commit_data.info.dst_pos.h == evhw->base.geo.tdm.output_r.h) && + (evhw->commit_data.info.transform == vbuf->content_t) && + (evhw->commit_data.buffer == vbuf->tbm_surface)) + { + WRN("commit data ins't changed"); + return EINA_FALSE; + } + CLEAR(evhw->commit_data.info); /* Set src_config */ @@ -68,6 +86,8 @@ _e_video_hwc_windows_commit_data_set(E_Video_Hwc_Windows *evhw, E_Comp_Wl_Video_ evhw->commit_data.info.dst_pos.x, evhw->commit_data.info.dst_pos.y, evhw->commit_data.info.dst_pos.w, evhw->commit_data.info.dst_pos.h, evhw->commit_data.info.transform); + + return EINA_TRUE; } static void @@ -180,6 +200,7 @@ static Eina_Bool _e_video_hwc_windows_iface_buffer_commit(E_Video_Hwc *evh, E_Comp_Wl_Video_Buf *vbuf) { E_Video_Hwc_Windows *evhw; + Eina_Bool ret; evhw = (E_Video_Hwc_Windows *)evh; @@ -187,14 +208,14 @@ _e_video_hwc_windows_iface_buffer_commit(E_Video_Hwc *evh, E_Comp_Wl_Video_Buf * if (!vbuf) return EINA_TRUE; - _e_video_hwc_windows_commit_data_set(evhw, vbuf); + ret = _e_video_hwc_windows_commit_data_set(evhw, vbuf); // TODO:: this logic move to the hwc windows after hwc commit #if 1 e_video_hwc_client_mask_update((E_Video_Hwc *)evhw); #endif - return EINA_TRUE; + return ret; } static Eina_Bool