On Son, 2012-06-10 at 11:56 +0000, Joakim Plate wrote: > Hi, > > I'm currently trying to make use of OML_sync_control extension to schedule > presentation of video frames in xbmc. > > I've run into somewhat of a snag. It seem the spec doesn't specify what > time the UST clock really is, nor can i find any mention of it elsewhere > in docs. > > Code wise it seem to be using do_gettimeofday(), which seems like a rather > poor choice given that it can jump forward and back in time due to > settimeofday calls. > > We normally make use of clock_gettime(CLOCK_MONOTONIC) to timestamp display > of video frames, so to avoid major changes I'd need a way to convert to > gettimeofday (seem same as CLOCK_REALTIME). > > Currently i'm trying: > struct timespec mon, rel; > clock_gettime(CLOCK_MONOTONIC, &mon); > clock_gettime(CLOCK_REALTIME , &rel); > > ticks += (rel.tv_sec - mon.tv_sec) * 1000000000; > ticks += (rel.tv_nsec - mon.tv_nsec); > > To convert between the two, but that is quite a hack both in the > possibility of clock changes and scheduling errors. > > Is there a better way, or perhaps the DRI code should use CLOCK_MONOTONIC > in the first place? >From the GLX_OML_sync_control spec: The Unadjusted System Time (or UST) is a 64-bit monotonically increasing counter [...] So, without having thought a lot about potential ramifications, I'm inclined to say that CLOCK_MONOTONIC should indeed be used. -- Earthling Michel Dänzer | http://www.amd.com Libre software enthusiast | Debian, X and DRI developer _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel