Set the timer time by the output size 39/270539/2
authorJunkyeong, Kim <jk0430.kim@samsung.com>
Fri, 4 Feb 2022 10:13:47 +0000 (19:13 +0900)
committerJunkyeong, Kim <jk0430.kim@samsung.com>
Mon, 7 Feb 2022 02:35:05 +0000 (11:35 +0900)
if size is bigger need more time to conversion and transition.
- conversion : tbm_surface -> pixman
- transition : send pixman image from tizen(rdp server) to rdp client.

Change-Id: Iede478d8bcdb776f02b9a21b8626aa959b72a893
Signed-off-by: Junkyeong, Kim <jk0430.kim@samsung.com>
src/e_mod_rdp.c

index d175bb6..b257d16 100644 (file)
 #define MAX_FREERDP_FDS           10
 #define DEFAULT_PIXEL_FORMAT PIXEL_FORMAT_BGRA32
 
+#define VGA_TIME 0.05
+#define SVGA_TIME 0.075
+#define XGA_TIME 0.06
+#define HD_TIME 0.15
+#define WXGA_TIME 0.18
+#define SXGAP_TIME 0.18
+#define FHD_TIME 0.2
+
 enum peer_item_flags
 {
    RDP_PEER_ACTIVATED      = (1 << 0),
@@ -77,6 +85,8 @@ struct _E_Rdp_Output
    uint32_t prev_x;
    uint32_t prev_y;
 
+   double refresh_time;
+
    struct wl_list peers;
 };
 
@@ -890,6 +900,26 @@ _e_rdp_free_keyfile(E_Rdp_Backend *b, rdpSettings *settings)
      }
 }
 
+static double
+_e_rdp_refresh_time_set(uint32_t w, uint32_t h)
+{
+   uint32_t temp;
+   if (h > w)
+     {
+        temp = h;
+        h = w;
+        w = temp;
+     }
+   if (w >= 1400 || h >= 900)
+     return FHD_TIME;
+   else if (w >= 1024 || h >= 720)
+     return HD_TIME;
+   else if (w >= 800 || h >= 600)
+     return SVGA_TIME;
+   else //640x480
+     return VGA_TIME;
+}
+
 static BOOL
 e_rdp_peer_capabilities(freerdp_peer *client)
 {
@@ -1016,7 +1046,8 @@ e_rdp_peer_activate(freerdp_peer *client)
 
    if (output->frame_timer != NULL)
      ecore_timer_del(output->frame_timer);
-   output->frame_timer = ecore_timer_add(0.2, _e_rdp_frame_timer, output);
+   output->refresh_time = _e_rdp_refresh_time_set(output->w, output->h);
+   output->frame_timer = ecore_timer_add(output->refresh_time, _e_rdp_frame_timer, output);
 
    return TRUE;
 }