[TTVD] Ensure syncing changes to overlay mode on first possible frame 17/316117/3
authorJakub Gajownik <j.gajownik2@samsung.com>
Wed, 4 Dec 2024 12:30:18 +0000 (13:30 +0100)
committerBot Blink <blinkbot@samsung.com>
Wed, 11 Dec 2024 13:15:38 +0000 (13:15 +0000)
During transition from texture to overlay, last step is to
wait until all texture-backed frames are properly rendered
and then switch to overlay mode. As now it's done on worker
thread, there is one frame delay in mode changing.

Result of this is that first frame not backed by texture
data is not displayed using hole, but still tries to use
non-existing texture. There is no resource for it, so
it's presented as black frame.

This CL fixes this behavior by allowing mode change to
overlay on first proper video frame.

Bug: https://jira-eu.sec.samsung.net/browse/VDGAME-632
Change-Id: I35559cb6002ce6a710471bba6e2de1cbca742e82
Signed-off-by: Jakub Gajownik <j.gajownik2@samsung.com>
tizen_src/chromium_impl/ui/ozone/platform/efl/output_surface_proxy.cc

index ca816e7a11633d7d2b794304658b814b05799e2e..8f72b0c5552872d5ade5091010c972367f863658 100644 (file)
@@ -324,6 +324,11 @@ gfx::VideoOutputMode OutputSurfaceProxy::PrepareToRender(
     }
   }
 
+  if (last_result_on_client_ == gfx::VideoOutputMode::kTransitionSyncing &&
+      !can_render_texture) {
+    last_result_on_client_ = gfx::VideoOutputMode::kOverlay;
+  }
+
   // Return last known result, it should be asynchronously updated from worker
   // thread when changed.
   return last_result_on_client_;