I'm a little confused as your change doesn't quite match with what Todd F. and I
discussed on IRC. On IRC Todd had suggested doing fixed-point division to three
decimal places so we don't incur the overhead of floating-point operations for
each frame we display. However, your code has a variable named
&quot;factor&quot; that is type float, so every divide operation with
&quot;factor&quot; in it is a floating-point divide. From our
discussion I was expecting to see something more like factor being an int that
was calculated with a &quot;/ 1000&quot; instead of a &quot;*
0.001&quot;, and perhaps the printf needing to compensate for the fact that
you moved the decimal point three places.

Truth is, since gstreamer keeps track of time in MSECONDS anyway, we probably
don't really even need to think about fixed point to 3 places -- all the values
are already ints.

Thanks, this looks better. I only have one more comment -- instead of using
&quot;long long&quot;, for your data type, would it make more sense to
use &quot;GstClockTime&quot;? The gst folks created this type to
guarantee that it will be large enough to hold clock values on all platforms.
This happens to be a guint64 (or unsigned long long) on our platforms, but you
can't necessarily make this assumption.

When you changed &quot;long long&quot; to
&quot;GstClockTime&quot;, technically you should have changed the %lld
fields of the two printfs to %llu as well. Could you make this change before
committing? I'm ok if you just make this change and commit without posting
first.