mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
lavu: add timestamp.h header with convenience timestamp utilities
This commit is contained in:
parent
71d6b46849
commit
c28e7af70d
@ -13,6 +13,10 @@ libavutil: 2011-04-18
|
|||||||
|
|
||||||
API changes, most recent first:
|
API changes, most recent first:
|
||||||
|
|
||||||
|
2012-02-09 - xxxxxxx - lavu 51.39.100
|
||||||
|
Add a new installed header libavutil/timestamp.h with timestamp
|
||||||
|
utilities.
|
||||||
|
|
||||||
2012-02-06 - xxxxxxx - lavu 51.38.100
|
2012-02-06 - xxxxxxx - lavu 51.38.100
|
||||||
Add av_parse_ratio() function to parseutils.h.
|
Add av_parse_ratio() function to parseutils.h.
|
||||||
|
|
||||||
|
@ -38,6 +38,7 @@ HEADERS = adler32.h \
|
|||||||
samplefmt.h \
|
samplefmt.h \
|
||||||
sha.h \
|
sha.h \
|
||||||
timecode.h \
|
timecode.h \
|
||||||
|
timestamp.h \
|
||||||
|
|
||||||
BUILT_HEADERS = avconfig.h
|
BUILT_HEADERS = avconfig.h
|
||||||
|
|
||||||
|
@ -154,8 +154,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#define LIBAVUTIL_VERSION_MAJOR 51
|
#define LIBAVUTIL_VERSION_MAJOR 51
|
||||||
#define LIBAVUTIL_VERSION_MINOR 38
|
#define LIBAVUTIL_VERSION_MINOR 39
|
||||||
#define LIBAVUTIL_VERSION_MICRO 101
|
#define LIBAVUTIL_VERSION_MICRO 100
|
||||||
|
|
||||||
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
|
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
|
||||||
LIBAVUTIL_VERSION_MINOR, \
|
LIBAVUTIL_VERSION_MINOR, \
|
||||||
|
75
libavutil/timestamp.h
Normal file
75
libavutil/timestamp.h
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of FFmpeg.
|
||||||
|
*
|
||||||
|
* FFmpeg 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.
|
||||||
|
*
|
||||||
|
* FFmpeg 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 FFmpeg; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file
|
||||||
|
* timestamp utils, mostly useful for debugging/logging purposes
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef AVUTIL_TIMESTAMP_H
|
||||||
|
#define AVUTIL_TIMESTAMP_H
|
||||||
|
|
||||||
|
#include "common.h"
|
||||||
|
|
||||||
|
#define AV_TS_MAX_STRING_SIZE 32
|
||||||
|
#define AV_TS_MAX_STRING_SIZE 32
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fill the provided buffer with a string containing a timestamp
|
||||||
|
* representation.
|
||||||
|
*
|
||||||
|
* @param buf a buffer with size in bytes of at least AV_TS_MAX_STRING_SIZE
|
||||||
|
* @param ts the timestamp to represent
|
||||||
|
* @return the buffer in input
|
||||||
|
*/
|
||||||
|
static inline char *av_ts_make_string(char *buf, int64_t ts)
|
||||||
|
{
|
||||||
|
if (ts == AV_NOPTS_VALUE) snprintf(buf, AV_TS_MAX_STRING_SIZE, "NOPTS");
|
||||||
|
else snprintf(buf, AV_TS_MAX_STRING_SIZE, "%"PRId64"", ts);
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convenience macro, the return value should be used only directly in
|
||||||
|
* function arguments but never stand-alone.
|
||||||
|
*/
|
||||||
|
#define av_ts2str(ts) av_ts_make_string((char[AV_TS_MAX_STRING_SIZE]){0}, ts)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fill the provided buffer with a string containing a timestamp time
|
||||||
|
* representation.
|
||||||
|
*
|
||||||
|
* @param buf a buffer with size in bytes of at least AV_TS_MAX_STRING_SIZE
|
||||||
|
* @param ts the timestamp to represent
|
||||||
|
* @param tb the timebase of the timestamp
|
||||||
|
* @return the buffer in input
|
||||||
|
*/
|
||||||
|
static inline char *av_ts_make_time_string(char *buf, int64_t ts, AVRational *tb)
|
||||||
|
{
|
||||||
|
if (ts == AV_NOPTS_VALUE) snprintf(buf, AV_TS_MAX_STRING_SIZE, "NOPTS");
|
||||||
|
else snprintf(buf, AV_TS_MAX_STRING_SIZE, "%.6g", av_q2d(*tb) * ts);
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convenience macro, the return value should be used only directly in
|
||||||
|
* function arguments but never stand-alone.
|
||||||
|
*/
|
||||||
|
#define av_ts2timestr(ts, tb) av_ts_make_time_string((char[AV_TS_MAX_STRING_SIZE]){0}, ts, tb)
|
||||||
|
|
||||||
|
#endif /* AVUTIL_TIMESTAMP_H */
|
Loading…
Reference in New Issue
Block a user