This is useful, since the normal timegm function isn't a standard
function (requiring _BSD_SOURCE or _SVID_SOURCE on glibc to
be visible, and not available on e.g. windows). The widely available
function mktime uses the local time zone, which requires ugly
workarounds to handle UTC time.
---
doc/APIchanges | 3 +++
libavutil/avutil.h | 2 +-
libavutil/parseutils.c | 4 ++--
libavutil/parseutils.h | 7 +++++++
4 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/doc/APIchanges b/doc/APIchanges
index 5ef1fa5..5d2a2aa 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -13,6 +13,9 @@ libavutil: 2011-04-18
API changes, most recent first:
+2011-11-xx - xxxxxxx - lavu 51.15.0
+ Add av_timegm()
+
2011-11-06 - ba04ecf - lavu 51.14.0
Add av_strcasecmp() and av_strncasecmp() to avstring.h.
diff --git a/libavutil/avutil.h b/libavutil/avutil.h
index 5ad7034..4b226e0 100644
--- a/libavutil/avutil.h
+++ b/libavutil/avutil.h
@@ -40,7 +40,7 @@
#define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c)
#define LIBAVUTIL_VERSION_MAJOR 51
-#define LIBAVUTIL_VERSION_MINOR 14
+#define LIBAVUTIL_VERSION_MINOR 15
#define LIBAVUTIL_VERSION_MICRO 0
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
diff --git a/libavutil/parseutils.c b/libavutil/parseutils.c
index c1647a0..a1d221b 100644
--- a/libavutil/parseutils.c
+++ b/libavutil/parseutils.c
@@ -461,7 +461,7 @@ static const char *small_strptime(const char *p, const char
*fmt, struct tm *dt)
}
}
-static time_t mktimegm(struct tm *tm)
+time_t av_timegm(struct tm *tm)
{
time_t t;
@@ -582,7 +582,7 @@ int av_parse_time(int64_t *timeval, const char *timestr,
int duration)
} else {
dt.tm_isdst = -1; /* unknown */
if (is_utc) {
- t = mktimegm(&dt);
+ t = av_timegm(&dt);
} else {
t = mktime(&dt);
}
diff --git a/libavutil/parseutils.h b/libavutil/parseutils.h
index 0d78b3e..cd913d8 100644
--- a/libavutil/parseutils.h
+++ b/libavutil/parseutils.h
@@ -19,6 +19,8 @@
#ifndef AVUTIL_PARSEUTILS_H
#define AVUTIL_PARSEUTILS_H
+#include <time.h>
+
#include "rational.h"
/**
@@ -114,4 +116,9 @@ int av_parse_time(int64_t *timeval, const char *timestr,
int duration);
*/
int av_find_info_tag(char *arg, int arg_size, const char *tag1, const char
*info);
+/**
+ * Convert the decomposed UTC time in tm to a time_t value.
+ */
+time_t av_timegm(struct tm *tm);
+
#endif /* AVUTIL_PARSEUTILS_H */
--
1.7.3.1
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel