Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Steve Lhomme
VLC
Commits
c3a6fcf1
Commit
c3a6fcf1
authored
Feb 11, 2007
by
Christophe Mutricy
Browse files
gettimeofday() implementaion for Win32. Leverage from tcpdump mailing list.
parent
85b0d984
Changes
2
Hide whitespace changes
Inline
Side-by-side
THANKS
View file @
c3a6fcf1
...
...
@@ -70,6 +70,7 @@ François Seingier <francois.seingier at club-internet.fr> - TTL setting in the
Frank Chao <frank0624 at gmail.com> - Chinese Traditional translation
Fumio Nakayama <endymion at ca2.so-net.ne.jp> - Japanese translation
Georgi Chorbadzhiyski <gf at unixsol dot org> - HTTP access error handling fix
Gisle Vanem <giva at bgnet dot no> - gettieoffay under win32
Greg Farrell <greg at gregfarell dot org> - rc interface "enqueue" command
Gregory Hazel <ghazel at gmail dot com> - wxWidgets fixes and improvements
Goetz Waschk <waschk at informatik.uni-rostock dot de> - Mandrake packages
...
...
src/misc/mtime.c
View file @
c3a6fcf1
...
...
@@ -2,12 +2,13 @@
* mtime.c: high resolution time management functions
* Functions are prototyped in vlc_mtime.h.
*****************************************************************************
* Copyright (C) 1998-200
4
the VideoLAN team
* Copyright (C) 1998-200
7
the VideoLAN team
* Copyright © 2006-2007 Rémi Denis-Courmont
* $Id$
*
* Authors: Vincent Seguin <seguin@via.ecp.fr>
* Rémi Denis-Courmont <rem$videolan,org>
* Gisle Vanem
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
...
...
@@ -54,7 +55,7 @@
# include <sys/time.h>
#endif
#if
defined(HAVE_NANOSLEEP) &&
!defined(HAVE_STRUCT_TIMESPEC)
#if !defined(HAVE_STRUCT_TIMESPEC)
struct
timespec
{
time_t
tv_sec
;
...
...
@@ -389,6 +390,47 @@ mtime_t date_Increment( date_t *p_date, uint32_t i_nb_samples )
return
p_date
->
date
;
}
#ifdef WIN32
/*
* Number of micro-seconds between the beginning of the Windows epoch
* (Jan. 1, 1601) and the Unix epoch (Jan. 1, 1970).
*
* This assumes all Win32 compilers have 64-bit support.
*/
#if defined(_MSC_VER) || defined(_MSC_EXTENSIONS) || defined(__WATCOMC__)
# define DELTA_EPOCH_IN_USEC 11644473600000000Ui64
#else
# define DELTA_EPOCH_IN_USEC 11644473600000000ULL
#endif
static
uint64_t
filetime_to_unix_epoch
(
const
FILETIME
*
ft
)
{
uint64_t
res
=
(
uint64_t
)
ft
->
dwHighDateTime
<<
32
;
res
|=
ft
->
dwLowDateTime
;
res
/=
10
;
/* from 100 nano-sec periods to usec */
res
-=
DELTA_EPOCH_IN_USEC
;
/* from Win epoch to Unix epoch */
return
(
res
);
}
static
int
gettimeofday
(
struct
timeval
*
tv
,
void
*
tz
)
{
FILETIME
ft
;
uint64_t
tim
;
if
(
!
tv
)
{
return
VLC_EGENERIC
;
}
GetSystemTimeAsFileTime
(
&
ft
);
tim
=
filetime_to_unix_epoch
(
&
ft
);
tv
->
tv_sec
=
(
long
)
(
tim
/
1000000L
);
tv
->
tv_usec
=
(
long
)
(
tim
%
1000000L
);
return
(
0
);
}
#endif
/**
* @return NTP 64-bits timestamp in host byte order.
*/
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment