[Live-devel] minor bug on windows implementation ofgettimeofday()
I-McMahon, Andrew P
Andrew.P.McMahon at boeing.com
Thu Apr 2 01:51:41 PDT 2009
A suggestion for this could be to intialise using time() to get UTC time, then use QueryPerformanceFrequency/QueryPerformanceCounter from then on, like this:
int gettimeofday(struct timeval* tp, int* /*tz*/) {
static bool tickFrequencySet = false;
static unsigned __int64 tickFrequency = 0;
static unsigned __int64 timeOffset = 0;
unsigned __int64 tickNow;
if (tickFrequencySet == false) {
QueryPerformanceFrequency(reinterpret_cast<LARGE_INTEGER*>(&tickFrequency));
time_t t;
time(&t);
QueryPerformanceCounter(reinterpret_cast<LARGE_INTEGER*>(&tickNow));
tickNow /= tickFrequency;
timeOffset = t - tickNow;
tickFrequencySet = true;
}
QueryPerformanceCounter(reinterpret_cast<LARGE_INTEGER*>(&tickNow));
tp->tv_sec = static_cast<long>((tickNow / tickFrequency) + timeOffset);
tp->tv_usec = static_cast<long>(((tickNow % tickFrequency) * 1000000L) / tickFrequency);
return 0;
}
(better implementations of this are probably available ;))
Andy M
-----Original Message-----
From: Sébastien Escudier [mailto:sebastien-devel at celeos.eu]
Sent: 2009-04-02 07:58
To: LIVE555 Streaming Media - development & use
Subject: Re: [Live-devel] minor bug on windows implementation ofgettimeofday()
Quoting Ross Finlayson <finlayson at live555.com>:
> Unfortunately I'm not an expert on Windoze-specific API stuff.
You may have a look at vlc times functions :
http://git.videolan.org/gitweb.cgi?p=vlc.git;a=blob;f=src/misc/mtime.c;h=0dbb4df578308b38e6e3ff9487b0e9143f11853b;hb=HEAD
or for a direct access to the file :
http://git.videolan.org/gitweb.cgi?p=vlc.git;a=blob_plain;f=src/misc/mtime.c;hb=HEAD
If you need a high precision clock, with a random epoch, look at mdate.
If you need a constant epoch look at gettimeofday
_______________________________________________
live-devel mailing list
live-devel at lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel
More information about the live-devel
mailing list