1
0
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:
Stefano Sabatini 2012-01-17 17:12:42 +01:00
parent 71d6b46849
commit c28e7af70d
4 changed files with 82 additions and 2 deletions

View File

@ -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.

View File

@ -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

View File

@ -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
View 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 */