|
|
|
|
/*****************************************************************************
|
|
|
|
|
* mtime.h: high resolution time management functions
|
|
|
|
|
* This header provides portable high precision time management functions,
|
|
|
|
|
* which should be the only ones used in other segments of the program, since
|
|
|
|
|
* functions like gettimeofday() and ftime() are not always supported.
|
|
|
|
|
* Most functions are declared as inline or as macros since they are only
|
|
|
|
|
* interfaces to system calls and have to be called frequently.
|
|
|
|
|
* 'm' stands for 'micro', since maximum resolution is the microsecond.
|
|
|
|
|
* Functions prototyped are implemented in interface/mtime.c.
|
|
|
|
|
*****************************************************************************
|
|
|
|
|
* Copyright (C) 1996, 1997, 1998, 1999, 2000 VideoLAN
|
|
|
|
|
* $Id: mtime.h,v 1.11 2002/04/24 00:36:24 sam Exp $
|
|
|
|
|
*
|
|
|
|
|
* Authors: Vincent Seguin <seguin@via.ecp.fr>
|
|
|
|
|
*
|
|
|
|
|
* 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
|
|
|
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
|
|
|
* (at your option) any later version.
|
|
|
|
|
*
|
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
|
*
|
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
|
* along with this program; if not, write to the Free Software
|
|
|
|
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
|
|
|
|
|
*****************************************************************************/
|
|
|
|
|
|
|
|
|
|
/*****************************************************************************
|
|
|
|
|
* LAST_MDATE: date which will never happen
|
|
|
|
|
*****************************************************************************
|
|
|
|
|
* This date can be used as a 'never' date, to mark missing events in a function
|
|
|
|
|
* supposed to return a date, such as nothing to display in a function
|
|
|
|
|
* returning the date of the first image to be displayed. It can be used in
|
|
|
|
|
* comparaison with other values: all existing dates will be earlier.
|
|
|
|
|
*****************************************************************************/
|
|
|
|
|
#define LAST_MDATE ((mtime_t)((u64)(-1)/2))
|
|
|
|
|
|
|
|
|
|
/*****************************************************************************
|
|
|
|
|
* MSTRTIME_MAX_SIZE: maximum possible size of mstrtime
|
|
|
|
|
*****************************************************************************
|
|
|
|
|
* This values is the maximal possible size of the string returned by the
|
|
|
|
|
* mstrtime() function, including '-' and the final '\0'. It should be used to
|
|
|
|
|
* allocate the buffer.
|
|
|
|
|
*****************************************************************************/
|
|
|
|
|
#define MSTRTIME_MAX_SIZE 22
|
|
|
|
|
|
|
|
|
|
/*****************************************************************************
|
|
|
|
|
* Prototypes
|
|
|
|
|
*****************************************************************************/
|
|
|
|
|
#ifndef __PLUGIN__
|
|
|
|
|
char * mstrtime ( char *psz_buffer, mtime_t date );
|
|
|
|
|
mtime_t mdate ( void );
|
|
|
|
|
void mwait ( mtime_t date );
|
|
|
|
|
void msleep ( mtime_t delay );
|
Some heavy changes today:
* Removed duplicate function checks from configure.in.
* Added extra magic to Makefile.modules so that the module Makefiles
are now ridiculously simple. And I mean *simple*. Check it! This will
make a possible switch to full autoconf/automake a lot easier.
* Added the vlc version name to the plugin symbols, to be sure we only load
plugins with the same version number. A nasty consequence is that you
need to rebuild your tree after midnight if you are using a CVS tree :-)
* Got rid of modules_export.h by #defining exported functions in the same
header as their prototype.
* Added modules_inner.h and other commonly used .h files to common.h so
there are less and less files to include, and renamed common.h to
<videolan/vlc.h>.
* First modifications to the module handling system towards my ultimate
goal to get rid of the *_Probe functions. Got rid of TestMethod and
TestCPU, as well as src/misc/tests.c.
* Wrote the chroma plugin handling functions. No YUV functions have been
ported yet because it'ls a lot of work, but the core system works, I
tried it with a naive yv12->rgb16 plugin (which will disappear when the
real functions are ready).
* Made a lot of functions in dvd_summary.c one-liners to avoid wasting
too many output lines.
* Fixed a segfault in input_dvd.c:DVDInit.
* Added a fixfiles.sh script in plugins/gtk to be run after Glade has
generated its C files.
* Did some work on the KDE interface to make it suck a bit less. It still
segfaults, but at least it runs and it looks less ugly.
* RGB SDL rendering works again, though in 16bpp only.
* Made plugins/vcd/linux_cdrom_tools.c independent of any vlc structure
so that it'll be easily put in a library. Maybe libdvdcss?
* Fixed VCD date display.
* Merged vout_xvideo.c, vout_x11.c and vout_common.c into xcommon.c.
* Wrote non-Shm XVideo output.
* Made X11 output work again. Still pretty unstable, only works for 16bpp.
* Additional french translation in po/fr.po. Any taker for the rest?
* Fixed a segfault in video_output.c when the allocated pictures were
not direct buffers.
* If $DISPLAY isn't set, don't try to run the Gtk+ interface.
* Replaced 48x48 .xpm images with 32x32 ones to conform to Debian policy
(Closes Debian bug #126939).
* Removed the automatic ./configure launch when running `make all' for
the first time.
Stuff currently more broken than it ought to be:
* The wall filter. Being fixed.
* x11 and sdl plugins for depth != 16bpp.
* Software YUV.
* gvlc, gnome-vlc, kvlc shortcuts. Use --intf instead for the moment.
25 years ago
|
|
|
#else
|
|
|
|
|
# define msleep p_symbols->msleep
|
|
|
|
|
# define mdate p_symbols->mdate
|
|
|
|
|
# define mstrtime p_symbols->mstrtime
|
Some heavy changes today:
* Removed duplicate function checks from configure.in.
* Added extra magic to Makefile.modules so that the module Makefiles
are now ridiculously simple. And I mean *simple*. Check it! This will
make a possible switch to full autoconf/automake a lot easier.
* Added the vlc version name to the plugin symbols, to be sure we only load
plugins with the same version number. A nasty consequence is that you
need to rebuild your tree after midnight if you are using a CVS tree :-)
* Got rid of modules_export.h by #defining exported functions in the same
header as their prototype.
* Added modules_inner.h and other commonly used .h files to common.h so
there are less and less files to include, and renamed common.h to
<videolan/vlc.h>.
* First modifications to the module handling system towards my ultimate
goal to get rid of the *_Probe functions. Got rid of TestMethod and
TestCPU, as well as src/misc/tests.c.
* Wrote the chroma plugin handling functions. No YUV functions have been
ported yet because it'ls a lot of work, but the core system works, I
tried it with a naive yv12->rgb16 plugin (which will disappear when the
real functions are ready).
* Made a lot of functions in dvd_summary.c one-liners to avoid wasting
too many output lines.
* Fixed a segfault in input_dvd.c:DVDInit.
* Added a fixfiles.sh script in plugins/gtk to be run after Glade has
generated its C files.
* Did some work on the KDE interface to make it suck a bit less. It still
segfaults, but at least it runs and it looks less ugly.
* RGB SDL rendering works again, though in 16bpp only.
* Made plugins/vcd/linux_cdrom_tools.c independent of any vlc structure
so that it'll be easily put in a library. Maybe libdvdcss?
* Fixed VCD date display.
* Merged vout_xvideo.c, vout_x11.c and vout_common.c into xcommon.c.
* Wrote non-Shm XVideo output.
* Made X11 output work again. Still pretty unstable, only works for 16bpp.
* Additional french translation in po/fr.po. Any taker for the rest?
* Fixed a segfault in video_output.c when the allocated pictures were
not direct buffers.
* If $DISPLAY isn't set, don't try to run the Gtk+ interface.
* Replaced 48x48 .xpm images with 32x32 ones to conform to Debian policy
(Closes Debian bug #126939).
* Removed the automatic ./configure launch when running `make all' for
the first time.
Stuff currently more broken than it ought to be:
* The wall filter. Being fixed.
* x11 and sdl plugins for depth != 16bpp.
* Software YUV.
* gvlc, gnome-vlc, kvlc shortcuts. Use --intf instead for the moment.
25 years ago
|
|
|
#endif
|
|
|
|
|
|