video: Move video update job to E_MAIN_HOOK_POST_CLIENT_IDLER_BEFORE 56/285656/1 accepted/tizen/7.0/unified/20221219.021144
authorSeunghun Lee <shiin.lee@samsung.com>
Thu, 15 Dec 2022 08:16:10 +0000 (17:16 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Fri, 16 Dec 2022 05:01:36 +0000 (14:01 +0900)
commite963048da77c4ee6762e6a71905f4afb3499ec43
tree633db87672d3af0b6b1562df9d5c19138b59429a
parent9207ba52ccc6ab0b1caf6fa8f09c9990b6f09f16
video: Move video update job to E_MAIN_HOOK_POST_CLIENT_IDLER_BEFORE

This patch is to change the order of jobs like this:

Old:
  video update job -> e_client_idler_before() -> hwc commit job

New:
  e_client_idler_before() -> video update job -> hwc commit job

The problem with the old way is that if the E_Client for video gets
updated for some reason in the process of e_client_idler_before(), then
video update job couldn't get a chance to be up to date with it and hwc
commit job would end up getting done without the update.

It would be obviously better if we could commit all changes to onscreen
at once as far as possible. And this patch is made to achieve it.

It is necessaty to add a new hook point called
E_MAIN_HOOK_POST_CLIENT_IDLER_BEFORE in e_main, because there is no way
to insert a video update job handler between e_client_idler_before() and
hwc commt job,

The callbacks associated with the hook point will be called right after
the call e_client_idler_before().

This way, video update job will be able to get a chance to be up to date
with changes which might be made in the process of
e_client_idler_before().

Change-Id: I857e0efcb12e7a06c18921bdfc6e6077fd5f521d
src/bin/e_main.c
src/bin/e_main.h
src/bin/video/iface/e_video_hwc.c
src/bin/video/iface/e_video_hwc.h