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.

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

Generated on Fri Jun 8 17:27:53 2012 for gavl by  doxygen 1.6.3