aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRamiro Polla <ramiro.polla@gmail.com>2007-07-13 16:11:36 +0000
committerRamiro Polla <ramiro.polla@gmail.com>2007-07-13 16:11:36 +0000
commit7495c3066d7b67bbc74b1d5565684ff48e430099 (patch)
tree041793f25337aae16a21e37157ae8bc50efcd1c8
parent7829950cf26af4605f2acff0f076f4c8866f6e57 (diff)
downloadffmpeg-7495c3066d7b67bbc74b1d5565684ff48e430099.tar.gz
Check for GetProcessTimes and use it in getutime
Originally committed as revision 9629 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rwxr-xr-xconfigure2
-rw-r--r--ffmpeg.c12
2 files changed, 13 insertions, 1 deletions
diff --git a/configure b/configure
index cf52539edb..466174c2ac 100755
--- a/configure
+++ b/configure
@@ -667,6 +667,7 @@ HAVE_LIST="
fast_unaligned
fork
freetype2
+ GetProcessTimes
getrusage
imlib2
inet_aton
@@ -1598,6 +1599,7 @@ elif check_func dlopen -ldl; then
fi
check_func getrusage
+check_func2 windows.h GetProcessTimes
check_func fork
diff --git a/ffmpeg.c b/ffmpeg.c
index 3539ae0bbf..ac52d7a2bb 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -34,6 +34,10 @@
#include "fifo.h"
#include "avstring.h"
+#if !defined(HAVE_GETRUSAGE) && defined(HAVE_GETPROCESSTIMES)
+#include <windows.h>
+#endif
+
#if defined(HAVE_TERMIOS_H)
#include <unistd.h>
#include <fcntl.h>
@@ -3112,7 +3116,13 @@ static int64_t getutime(void)
getrusage(RUSAGE_SELF, &rusage);
return (rusage.ru_utime.tv_sec * 1000000LL) + rusage.ru_utime.tv_usec;
-#elif defined(__MINGW32__)
+#elif defined(HAVE_GETPROCESSTIMES)
+ HANDLE proc;
+ FILETIME c, e, k, u;
+ proc = GetCurrentProcess();
+ GetProcessTimes(proc, &c, &e, &k, &u);
+ return ((int64_t) u.dwHighDateTime << 32 | u.dwLowDateTime) / 10;
+#else
return av_gettime();
#endif
}