Re: [PATCH spice-gtk] spice-session: Simplify spice_session_get_mm_time formula

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 08/21/2018 10:06 AM, Frediano Ziglio wrote:
Instead of keeping 2 fields for the conversion monotonic time ->
multimedia time compute a single offset.

I'm not sure it's easier to understand it that way, but it does
use 1 fields instead of 2 and the math looks good to me.

Acked-by: Uri Lublin <uril@xxxxxxxxxx>


Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx>
---
  src/spice-session.c | 12 +++++-------
  1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/src/spice-session.c b/src/spice-session.c
index b1aeb84..fd1856d 100644
--- a/src/spice-session.c
+++ b/src/spice-session.c
@@ -95,9 +95,8 @@ struct _SpiceSessionPrivate {
      SpiceChannel      *cmain; /* weak reference */
      Ring              channels;
      guint             channels_destroying;
-    guint32           mm_time;
      gboolean          client_provided_sockets;
-    guint64           mm_time_at_clock;
+    guint64           mm_time_offset;
      SpiceSession      *migration;
      GList             *migration_left;
      SpiceSessionMigration migration_state;
@@ -2357,7 +2356,7 @@ guint32 spice_session_get_mm_time(SpiceSession *session)
/* FIXME: we may want to estimate the drift of clocks, and well,
         do something better than this trivial approach */
-    return s->mm_time + (g_get_monotonic_time() - s->mm_time_at_clock) / 1000;
+    return (g_get_monotonic_time() - s->mm_time_offset) / 1000;
  }
#define MM_TIME_DIFF_RESET_THRESH 500 // 0.5 sec
@@ -2372,12 +2371,11 @@ void spice_session_set_mm_time(SpiceSession *session, guint32 time)
old_time = spice_session_get_mm_time(session); - s->mm_time = time;
-    s->mm_time_at_clock = g_get_monotonic_time();
-    SPICE_DEBUG("set mm time: %u", spice_session_get_mm_time(session));
+    s->mm_time_offset = g_get_monotonic_time() - time * (guint64) 1000;
+    SPICE_DEBUG("set mm time: %u", time);
      if (spice_mmtime_diff(time, old_time + MM_TIME_DIFF_RESET_THRESH) > 0 ||
          spice_mmtime_diff(time, old_time) < 0) {
-        SPICE_DEBUG("%s: mm-time-reset, old %u, new %u", __FUNCTION__, old_time, s->mm_time);
+        SPICE_DEBUG("%s: mm-time-reset, old %u, new %u", __FUNCTION__, old_time, time);
          g_coroutine_signal_emit(session, signals[SPICE_SESSION_MM_TIME_RESET], 0);
      }
  }


_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel




[Index of Archives]     [Linux Virtualization]     [Linux Virtualization]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]