diff --git a/libavformat/avformat.h b/libavformat/avformat.h index 040e35eb92..1c1aad652f 100644 --- a/libavformat/avformat.h +++ b/libavformat/avformat.h @@ -1635,10 +1635,9 @@ void av_dump_format(AVFormatContext *ic, const char *url, int is_output); -/** - * Get the current time in microseconds. - */ +#if FF_API_AV_GETTIME int64_t av_gettime(void); +#endif /** * Return in 'buf' the path with '%d' replaced by a number. diff --git a/libavformat/utils.c b/libavformat/utils.c index 5450dc4bff..156c527e25 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -38,8 +38,6 @@ #include "riff.h" #include "audiointerleave.h" #include "url.h" -#include -#include #include #if CONFIG_NETWORK #include "network.h" @@ -3411,12 +3409,12 @@ void av_dump_format(AVFormatContext *ic, av_free(printed); } -int64_t av_gettime(void) +#if FF_API_AV_GETTIME && CONFIG_SHARED && HAVE_SYMVER +FF_SYMVER(int64_t, av_gettime, (void), "LIBAVFORMAT_54") { - struct timeval tv; - gettimeofday(&tv,NULL); - return (int64_t)tv.tv_sec * 1000000 + tv.tv_usec; + return av_gettime(); } +#endif uint64_t ff_ntp_time(void) { diff --git a/libavformat/version.h b/libavformat/version.h index 2216e4eabd..29e520534c 100644 --- a/libavformat/version.h +++ b/libavformat/version.h @@ -59,5 +59,8 @@ #ifndef FF_API_INTERLEAVE_PACKET #define FF_API_INTERLEAVE_PACKET (LIBAVFORMAT_VERSION_MAJOR < 55) #endif +#ifndef FF_API_AV_GETTIME +#define FF_API_AV_GETTIME (LIBAVFORMAT_VERSION_MAJOR < 55) +#endif #endif /* AVFORMAT_VERSION_H */ diff --git a/libavutil/Makefile b/libavutil/Makefile index 56ccd04dff..6fe174bb62 100644 --- a/libavutil/Makefile +++ b/libavutil/Makefile @@ -36,6 +36,7 @@ HEADERS = adler32.h \ rational.h \ samplefmt.h \ sha.h \ + time.h \ ARCH_HEADERS = bswap.h \ intmath.h \ @@ -77,6 +78,7 @@ OBJS = adler32.o \ rc4.o \ samplefmt.o \ sha.o \ + time.o \ tree.o \ utils.o \ diff --git a/libavutil/time.c b/libavutil/time.c new file mode 100644 index 0000000000..a0b713e803 --- /dev/null +++ b/libavutil/time.c @@ -0,0 +1,30 @@ +/* + * This file is part of Libav. + * + * Libav 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.1 of the License, or (at your option) any later version. + * + * Libav 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 Libav; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include + +#include "libavutil/time.h" + +int64_t av_gettime(void) +{ + struct timeval tv; + gettimeofday(&tv, NULL); + return (int64_t)tv.tv_sec * 1000000 + tv.tv_usec; +} diff --git a/libavutil/time.h b/libavutil/time.h new file mode 100644 index 0000000000..2ee7e08caf --- /dev/null +++ b/libavutil/time.h @@ -0,0 +1,29 @@ +/* + * This file is part of Libav. + * + * Libav 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.1 of the License, or (at your option) any later version. + * + * Libav 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 Libav; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_TIME_H +#define AVUTIL_TIME_H + +#include + +/** + * Get the current time in microseconds. + */ +int64_t av_gettime(void); + +#endif /* AVUTIL_TIME_H */