summaryrefslogtreecommitdiff
path: root/libavformat/os_support.c
diff options
context:
space:
mode:
authorFabrice Bellard <fabrice@bellard.org>2003-09-08 21:20:55 +0000
committerFabrice Bellard <fabrice@bellard.org>2003-09-08 21:20:55 +0000
commitf71869a4db1d20dd93cb6a37ba8ef1249812c864 (patch)
tree5a3cf06e8089682b559e461f8de8ab20f488b0fc /libavformat/os_support.c
parent742d87d633d20f2b1dcd7f0d2427f15cb6ac40c6 (diff)
simpler strptime - added os_support.[ch] - moved localtime_r to os_support.c
Originally committed as revision 2228 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat/os_support.c')
-rw-r--r--libavformat/os_support.c57
1 files changed, 57 insertions, 0 deletions
diff --git a/libavformat/os_support.c b/libavformat/os_support.c
new file mode 100644
index 0000000000..4cdfcea469
--- /dev/null
+++ b/libavformat/os_support.c
@@ -0,0 +1,57 @@
+/*
+ * Various utilities for ffmpeg system
+ * Copyright (c) 2000, 2001, 2002 Fabrice Bellard
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+#include "avformat.h"
+#ifdef CONFIG_WIN32
+#include <sys/types.h>
+#include <sys/timeb.h>
+#elif defined(CONFIG_OS2)
+#include <string.h>
+#include <sys/time.h>
+#else
+#include <unistd.h>
+#include <fcntl.h>
+#include <sys/time.h>
+#endif
+#include <time.h>
+
+int64_t av_gettime(void)
+{
+#ifdef CONFIG_WIN32
+ struct _timeb tb;
+ _ftime(&tb);
+ return ((int64_t)tb.time * int64_t_C(1000) + (int64_t)tb.millitm) * int64_t_C(1000);
+#else
+ struct timeval tv;
+ gettimeofday(&tv,NULL);
+ return (int64_t)tv.tv_sec * 1000000 + tv.tv_usec;
+#endif
+}
+
+#if !defined(HAVE_LOCALTIME_R)
+struct tm *localtime_r(const time_t *t, struct tm *tp)
+{
+ struct tm *l;
+
+ l = localtime(t);
+ if (!l)
+ return 0;
+ *tp = *l;
+ return tp;
+}
+#endif /* !defined(HAVE_LOCALTIME_R) */