/* * ISO 13818 stream multiplexer * Copyright (C) 2001 Convergence Integrated Media GmbH Berlin * Author: Oskar Schirmer (oskar@convergence.de) */ /* * Module: Global * Purpose: Service functions. */ #include "global.h" #include "error.h" boolean timed_io; boolean accept_weird_scr; int global_delta; #ifdef DEBUG_TIMEPOLL timepoll logtp [max_timepoll]; long logtpc; timepoll *ltp; #endif /* int secusec2msec (struct timeval *s) { } void secusec2clockref (struct timeval *s, clockref *d) { } void msec2clockref (int s, clockref *d) { } int clockref2msec (clockref *s) { } */ int msec_now (void) { static long last; static int local_delta; struct timeval tv; register int now; gettimeofday (&tv,NULL); #ifdef DEBUG_TIMEPOLL ltp->tv.tv_sec = tv.tv_sec; ltp->tv.tv_usec = tv.tv_usec; #endif if ((tv.tv_sec & (~0x001FFFFFL)) != last) { last = tv.tv_sec & (~0x001FFFFFL); local_delta += 1000 * 0x00200000L; } now = (tv.tv_sec & 0x001FFFFFL) * 1000 + tv.tv_usec / 1000 + local_delta; warn (LDEB,"msec_now",EGLO,3,0,now); #ifdef DEBUG_TIMEPOLL ltp->cnt_msecnow += 1; ltp->msec_now = now + global_delta; #endif return (now + global_delta); } void global_init (void) { #ifdef DEBUG_TIMEPOLL { struct timeval tv; memset (&logtp[0],0,sizeof(logtp)); gettimeofday (&tv,NULL); logtp[0].usec = tv.tv_usec; logtpc = 0; ltp = &logtp[0]; } #endif verbose_level = LWAR; global_delta = 0; global_delta = - msec_now (); timed_io = FALSE; accept_weird_scr = FALSE; }