From 7125b6ca90d4085832a0fa7e37f684181eb89094 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Tue, 8 Jul 2014 22:51:16 +0200 Subject: [PATCH] avformat/segment: remove gettimeofday() use, remove sys/time.h It causes portability issues, and would need ifdef hell if its kept Found-by: jamrial Signed-off-by: Michael Niedermayer --- libavformat/segment.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/libavformat/segment.c b/libavformat/segment.c index f5e25a29d5..f8227d149e 100644 --- a/libavformat/segment.c +++ b/libavformat/segment.c @@ -28,7 +28,6 @@ #include #include -#include #include "avformat.h" #include "internal.h" @@ -39,6 +38,7 @@ #include "libavutil/avstring.h" #include "libavutil/parseutils.h" #include "libavutil/mathematics.h" +#include "libavutil/time.h" #include "libavutil/timestamp.h" typedef struct SegmentListEntry { @@ -677,7 +677,6 @@ static int seg_write_packet(AVFormatContext *s, AVPacket *pkt) int start_frame = INT_MAX; int ret; struct tm ti; - struct timeval now; int64_t usecs; int64_t wrapped_val; @@ -689,13 +688,14 @@ static int seg_write_packet(AVFormatContext *s, AVPacket *pkt) seg->frames[seg->segment_count] : INT_MAX; } else { if (seg->use_clocktime) { - gettimeofday(&now, NULL); + int64_t avgt = av_gettime(); + time_t sec = avgt / 1000000; #if HAVE_LOCALTIME_R - localtime_r(&now.tv_sec, &ti); + localtime_r(&sec, &ti); #else - ti = *localtime(&now.tv_sec); + ti = *localtime(&sec); #endif - usecs = (int64_t)(ti.tm_hour*3600 + ti.tm_min*60 + ti.tm_sec) * 1000000 + now.tv_usec; + usecs = (int64_t)(ti.tm_hour*3600 + ti.tm_min*60 + ti.tm_sec) * 1000000 + (avgt % 1000000); wrapped_val = usecs % seg->time; if (seg->last_cut != usecs && wrapped_val < seg->last_val) { seg->cut_pending = 1;