Browse Source

lavu: add timestamp.h header with convenience timestamp utilities

tags/n0.11
Stefano Sabatini 13 years ago
parent
commit
c28e7af70d
4 changed files with 82 additions and 2 deletions
  1. +4
    -0
      doc/APIchanges
  2. +1
    -0
      libavutil/Makefile
  3. +2
    -2
      libavutil/avutil.h
  4. +75
    -0
      libavutil/timestamp.h

+ 4
- 0
doc/APIchanges View File

@@ -13,6 +13,10 @@ libavutil: 2011-04-18

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
Add av_parse_ratio() function to parseutils.h.



+ 1
- 0
libavutil/Makefile View File

@@ -38,6 +38,7 @@ HEADERS = adler32.h \
samplefmt.h \
sha.h \
timecode.h \
timestamp.h \

BUILT_HEADERS = avconfig.h



+ 2
- 2
libavutil/avutil.h View File

@@ -154,8 +154,8 @@
*/

#define LIBAVUTIL_VERSION_MAJOR 51
#define LIBAVUTIL_VERSION_MINOR 38
#define LIBAVUTIL_VERSION_MICRO 101
#define LIBAVUTIL_VERSION_MINOR 39
#define LIBAVUTIL_VERSION_MICRO 100

#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
LIBAVUTIL_VERSION_MINOR, \


+ 75
- 0
libavutil/timestamp.h 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 */

Loading…
Cancel
Save