1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-21 10:55:51 +02:00

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 <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2014-07-08 22:51:16 +02:00
parent 2375b09473
commit 7125b6ca90

View File

@ -28,7 +28,6 @@
#include <float.h> #include <float.h>
#include <time.h> #include <time.h>
#include <sys/time.h>
#include "avformat.h" #include "avformat.h"
#include "internal.h" #include "internal.h"
@ -39,6 +38,7 @@
#include "libavutil/avstring.h" #include "libavutil/avstring.h"
#include "libavutil/parseutils.h" #include "libavutil/parseutils.h"
#include "libavutil/mathematics.h" #include "libavutil/mathematics.h"
#include "libavutil/time.h"
#include "libavutil/timestamp.h" #include "libavutil/timestamp.h"
typedef struct SegmentListEntry { typedef struct SegmentListEntry {
@ -677,7 +677,6 @@ static int seg_write_packet(AVFormatContext *s, AVPacket *pkt)
int start_frame = INT_MAX; int start_frame = INT_MAX;
int ret; int ret;
struct tm ti; struct tm ti;
struct timeval now;
int64_t usecs; int64_t usecs;
int64_t wrapped_val; int64_t wrapped_val;
@ -689,13 +688,14 @@ static int seg_write_packet(AVFormatContext *s, AVPacket *pkt)
seg->frames[seg->segment_count] : INT_MAX; seg->frames[seg->segment_count] : INT_MAX;
} else { } else {
if (seg->use_clocktime) { if (seg->use_clocktime) {
gettimeofday(&now, NULL); int64_t avgt = av_gettime();
time_t sec = avgt / 1000000;
#if HAVE_LOCALTIME_R #if HAVE_LOCALTIME_R
localtime_r(&now.tv_sec, &ti); localtime_r(&sec, &ti);
#else #else
ti = *localtime(&now.tv_sec); ti = *localtime(&sec);
#endif #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; wrapped_val = usecs % seg->time;
if (seg->last_cut != usecs && wrapped_val < seg->last_val) { if (seg->last_cut != usecs && wrapped_val < seg->last_val) {
seg->cut_pending = 1; seg->cut_pending = 1;