Mercurial > mplayer.hg
view osdep/timer-macosx.c @ 9610:76c6d8f1ebf5
this is a combo patch that:
1) adds an experimental TS demuxer to mplayer
2) adds an input (streaming) interface from DVB cards.
It compiles and runs with the following versions of the drivers:
dvb-kernel (HEAD) (with stock kernel 2.4.20) and 0.9.4 (with kernel 2.4.18)
patch by Nico <nsabbi@libero.it>
some cleanups, ts demuxer fixes by me
author | arpi |
---|---|
date | Sun, 16 Mar 2003 20:13:28 +0000 |
parents | 350b660ef93c |
children |
line wrap: on
line source
/* * Semi-precise timer routines using CoreFoundation * * (C) 2003 Dan Christiansen * * Released into the public domain. */ #include <unistd.h> #include <stdlib.h> #include <time.h> #include <sys/time.h> #include "../config.h" #ifdef MACOSX # include <CoreFoundation/CFRunLoop.h> #endif /* Rather than using CF timers, we simply store the absolute time * CFAbsoluteTime == double */ static CFAbsoluteTime relative_time; int usec_sleep(int usec_delay) { CFRunLoopRunInMode(kCFRunLoopDefaultMode, usec_delay / 1000000.0, false); } // Returns current time in microseconds unsigned int GetTimer(){ return (unsigned int)(CFAbsoluteTimeGetCurrent() * 1000000); } // Returns current time in milliseconds unsigned int GetTimerMS(){ return (unsigned int)(CFAbsoluteTimeGetCurrent() * 1000); } // Returns time spent between now and last call in seconds float GetRelativeTime(){ CFAbsoluteTime last_time = relative_time; relative_time = CFAbsoluteTimeGetCurrent(); return (float)(relative_time - last_time); } // Initialize timer, must be called at least once at start void InitTimer(){ GetRelativeTime(); } #if 0 int main() { int i; for (i = 0; i < 20; i++) { printf("CF relative time:\t%f\n", GetRelativeTime()); usec_sleep(1000000); printf("usleep relative time:\t%f\n", GetRelativeTime()); usleep(1000000); } } #endif