Timecodes

Timecode definitions. More...

Data Structures

struct  gavl_timecode_format_t
 Timecode format. More...

Defines

#define GAVL_TIMECODE_SIGN_MASK   (0x1LL<<62)
 If 1, timecode is negative.
#define GAVL_TIMECODE_INVALID_MASK   (0x1LL<<63)
 If 1, timecode is invalid.
#define GAVL_TIMECODE_DROP_FRAME   (1<<0)
 NTSC drop frame is used.
#define GAVL_TIMECODE_UNDEFINED   GAVL_TIMECODE_INVALID_MASK
 Convenience macro.
#define GAVL_TIMECODE_STRING_LEN   26
#define GAVL_TIMECODE_STRING_LEN_SHORT   13

Typedefs

typedef uint64_t gavl_timecode_t
 Typedef for timecodes.

Functions

GAVL_PUBLIC void gavl_timecode_format_copy (gavl_timecode_format_t *dst, const gavl_timecode_format_t *src)
 Copy one timecode format to another.
GAVL_PUBLIC void gavl_timecode_to_hmsf (gavl_timecode_t tc, int *hours, int *minutes, int *seconds, int *frames)
 Extract the time part of the timecode.
GAVL_PUBLIC void gavl_timecode_to_ymd (gavl_timecode_t tc, int *year, int *month, int *day)
 Extract the date part of the timecode.
GAVL_PUBLIC void gavl_timecode_from_hmsf (gavl_timecode_t *tc, int hours, int minutes, int seconds, int frames)
 Set the time part of the timecode.
GAVL_PUBLIC void gavl_timecode_from_ymd (gavl_timecode_t *tc, int year, int month, int day)
 Set the date part of the timecode.
GAVL_PUBLIC int64_t gavl_timecode_to_framecount (const gavl_timecode_format_t *tf, gavl_timecode_t tc)
 Get the frame count from the timecode.
GAVL_PUBLIC gavl_timecode_t gavl_timecode_from_framecount (const gavl_timecode_format_t *tf, int64_t fc)
 Get a timecode from the frame count.
GAVL_PUBLIC void gavl_timecode_dump (const gavl_timecode_format_t *tf, gavl_timecode_t tc)
 Dump a timecode to stderr.
GAVL_PUBLIC void gavl_timecode_prettyprint (const gavl_timecode_format_t *tf, gavl_timecode_t tc, char str[GAVL_TIMECODE_STRING_LEN])
 Print a full timecode into a string.
GAVL_PUBLIC void gavl_timecode_prettyprint_short (gavl_timecode_t tc, char str[GAVL_TIMECODE_STRING_LEN_SHORT])
 Print a short timecode into a string.

Variables

int gavl_timecode_format_t::flags
 Zero or more of the flags defined above.

Detailed Description

Timecode definitions.

Timecodes are usually associated with video frames and represent a unique time (e.g. Wall clock time) within the whole footage.

Since 1.1.0


Define Documentation

#define GAVL_TIMECODE_SIGN_MASK   (0x1LL<<62)

If 1, timecode is negative.

#define GAVL_TIMECODE_INVALID_MASK   (0x1LL<<63)

If 1, timecode is invalid.

#define GAVL_TIMECODE_DROP_FRAME   (1<<0)

NTSC drop frame is used.

#define GAVL_TIMECODE_UNDEFINED   GAVL_TIMECODE_INVALID_MASK

Convenience macro.

#define GAVL_TIMECODE_STRING_LEN   26

Length for a string into which a timecode will be printed

#define GAVL_TIMECODE_STRING_LEN_SHORT   13

Length for a string into which a short timecode will be printed


Typedef Documentation

typedef uint64_t gavl_timecode_t

Typedef for timecodes.


Function Documentation

GAVL_PUBLIC void gavl_timecode_format_copy ( gavl_timecode_format_t dst,
const gavl_timecode_format_t src 
)

Copy one timecode format to another.

Parameters:
dst Destination format
src Source format
GAVL_PUBLIC void gavl_timecode_to_hmsf ( gavl_timecode_t  tc,
int *  hours,
int *  minutes,
int *  seconds,
int *  frames 
)

Extract the time part of the timecode.

Parameters:
tc A timecode
hours If non NULL, returns the hours
minutes If non NULL, returns the minutes
seconds If non NULL, returns the seconds
frames If non NULL, returns the frames
GAVL_PUBLIC void gavl_timecode_to_ymd ( gavl_timecode_t  tc,
int *  year,
int *  month,
int *  day 
)

Extract the date part of the timecode.

Parameters:
tc A timecode
year If non NULL, returns the year
month If non NULL, returns the month
day If non NULL, returns the day
GAVL_PUBLIC void gavl_timecode_from_hmsf ( gavl_timecode_t tc,
int  hours,
int  minutes,
int  seconds,
int  frames 
)

Set the time part of the timecode.

Parameters:
tc A timecode
hours The hours
minutes The minutes
seconds The seconds
frames The frames
GAVL_PUBLIC void gavl_timecode_from_ymd ( gavl_timecode_t tc,
int  year,
int  month,
int  day 
)

Set the date part of the timecode.

Parameters:
tc A timecode
year The year
month The month
day The day
GAVL_PUBLIC int64_t gavl_timecode_to_framecount ( const gavl_timecode_format_t tf,
gavl_timecode_t  tc 
)

Get the frame count from the timecode.

Parameters:
tf The timecode format
tc A timecode
Returns:
The frame count

If the time is larger than 24 hours, the framecount is calculated from 00:00:00, January 1, 1970

GAVL_PUBLIC gavl_timecode_t gavl_timecode_from_framecount ( const gavl_timecode_format_t tf,
int64_t  fc 
)

Get a timecode from the frame count.

Parameters:
tf The timecode format
fc The frame count
Returns:
The timecode corresponding to the framecount

If the date fields are non-zero, the framecount is calculated from 00:00:00, January 1, 1970

GAVL_PUBLIC void gavl_timecode_dump ( const gavl_timecode_format_t tf,
gavl_timecode_t  tc 
)

Dump a timecode to stderr.

Parameters:
tf The timecode format
tc A timecode

This is used mainly for debugging

GAVL_PUBLIC void gavl_timecode_prettyprint ( const gavl_timecode_format_t tf,
gavl_timecode_t  tc,
char  str[GAVL_TIMECODE_STRING_LEN] 
)

Print a full timecode into a string.

Parameters:
tf The timecode format
tc A timecode
str String where the timecode will be printed

This prints the full timecode (including calendar date if available). For real-life applications, you might want to try gavl_timecode_prettyprint_short instead.

GAVL_PUBLIC void gavl_timecode_prettyprint_short ( gavl_timecode_t  tc,
char  str[GAVL_TIMECODE_STRING_LEN_SHORT] 
)

Print a short timecode into a string.

Parameters:
tc A timecode
str String where the timecode will be printed

Since 1.1.1


Variable Documentation

Zero or more of the flags defined above.


Generated on 31 Jan 2012 for gavl by  doxygen 1.6.1