gavl
Modules | Macros | Typedefs | Functions
Time

Modules

 Software timer
 

Macros

#define GAVL_TIME_SCALE   1000000
 
#define GAVL_TIME_UNDEFINED   0x8000000000000000LL
 
#define GAVL_TIME_MAX   0x7fffffffffffffffLL
 
#define gavl_seconds_to_time(s)   (gavl_time_t)((s)*(double)(GAVL_TIME_SCALE))
 Convert seconds (as double) to a gavl time. More...
 
#define gavl_time_to_seconds(t)   ((double)(t)/(double)(GAVL_TIME_SCALE))
 Convert a gavl time to seconds (as double) More...
 
#define GAVL_TIME_STRING_LEN   11
 Length of the string passed to gavl_time_prettyprint. More...
 
#define GAVL_TIME_STRING_LEN_MS   15
 Length of the string passed to gavl_time_prettyprint_ms. More...
 

Typedefs

typedef int64_t gavl_time_t
 Times in gavl are 64 bit signed integers. More...
 

Functions

GAVL_PUBLIC gavl_time_t gavl_samples_to_time (int samplerate, int64_t samples)
 Convert a number of samples to a time for a given samplerate. More...
 
GAVL_PUBLIC int64_t gavl_time_to_samples (int samplerate, gavl_time_t time)
 Convert a time to a number of audio samples for a given samplerate. More...
 
GAVL_PUBLIC gavl_time_t gavl_frames_to_time (int rate_num, int rate_den, int64_t frames)
 Convert a number of video frames to a time for a given framerate. More...
 
GAVL_PUBLIC int64_t gavl_time_to_frames (int rate_num, int rate_den, gavl_time_t time)
 Convert a time to a number of video frames for a given framerate. More...
 
GAVL_PUBLIC int64_t gavl_time_scale (int scale, gavl_time_t time)
 Convert a gavl time to a time scaled by another base. More...
 
GAVL_PUBLIC gavl_time_t gavl_time_unscale (int scale, int64_t time)
 Convert a time scaled by another base to a gavl time. More...
 
GAVL_PUBLIC int64_t gavl_time_rescale (int scale1, int scale2, int64_t time)
 Convert a time scaled by one base to a time scaled by another base. More...
 
GAVL_PUBLIC void gavl_time_delay (gavl_time_t *time)
 Sleep for a specified time. More...
 
GAVL_PUBLIC void gavl_time_prettyprint (gavl_time_t time, char str[GAVL_TIME_STRING_LEN])
 Convert a time to a string. More...
 
GAVL_PUBLIC void gavl_time_prettyprint_ms (gavl_time_t time, char str[GAVL_TIME_STRING_LEN_MS])
 Convert a time to a string with millisecond precision. More...
 

Detailed Description

Macro Definition Documentation

#define GAVL_TIME_SCALE   1000000

Generic time scale: Microsecond tics

#define GAVL_TIME_UNDEFINED   0x8000000000000000LL

Unknown or undefined time

#define GAVL_TIME_MAX   0x7fffffffffffffffLL

Maximum possible value

#define gavl_seconds_to_time (   s)    (gavl_time_t)((s)*(double)(GAVL_TIME_SCALE))

Convert seconds (as double) to a gavl time.

Parameters
sSeconds as double
Returns
Integer time scaled by GAVL_TIME_SCALE
#define gavl_time_to_seconds (   t)    ((double)(t)/(double)(GAVL_TIME_SCALE))

Convert a gavl time to seconds (as double)

Parameters
tInteger time scaled by GAVL_TIME_SCALE
Returns
Seconds as double
#define GAVL_TIME_STRING_LEN   11

Length of the string passed to gavl_time_prettyprint.

#define GAVL_TIME_STRING_LEN_MS   15

Length of the string passed to gavl_time_prettyprint_ms.

Typedef Documentation

typedef int64_t gavl_time_t

Times in gavl are 64 bit signed integers.

Function Documentation

GAVL_PUBLIC gavl_time_t gavl_samples_to_time ( int  samplerate,
int64_t  samples 
)

Convert a number of samples to a time for a given samplerate.

GAVL_PUBLIC int64_t gavl_time_to_samples ( int  samplerate,
gavl_time_t  time 
)

Convert a time to a number of audio samples for a given samplerate.

Parameters
samplerateSamplerate
timeTime
Returns
Number of audio samples
GAVL_PUBLIC gavl_time_t gavl_frames_to_time ( int  rate_num,
int  rate_den,
int64_t  frames 
)

Convert a number of video frames to a time for a given framerate.

GAVL_PUBLIC int64_t gavl_time_to_frames ( int  rate_num,
int  rate_den,
gavl_time_t  time 
)

Convert a time to a number of video frames for a given framerate.

Parameters
rate_numNumerator of the framerate
rate_denDenominator of the framerate
timeTime
Returns
Number of frames
GAVL_PUBLIC int64_t gavl_time_scale ( int  scale,
gavl_time_t  time 
)

Convert a gavl time to a time scaled by another base.

Parameters
scaleTime scale
timeTime scaled by GAVL_TIME_SCALE
Returns
Time scaled by scale
GAVL_PUBLIC gavl_time_t gavl_time_unscale ( int  scale,
int64_t  time 
)

Convert a time scaled by another base to a gavl time.

Parameters
scaleTime scale
timeTime scaled by scale
Returns
Time scaled by GAVL_TIME_SCALE
GAVL_PUBLIC int64_t gavl_time_rescale ( int  scale1,
int  scale2,
int64_t  time 
)

Convert a time scaled by one base to a time scaled by another base.

Parameters
scale1Initial time base
scale2New time base
timeTime scaled by scale1
Returns
Time scaled by scale2
GAVL_PUBLIC void gavl_time_delay ( gavl_time_t time)

Sleep for a specified time.

Parameters
timeTime after which execution of the current thread is resumed
GAVL_PUBLIC void gavl_time_prettyprint ( gavl_time_t  time,
char  str[GAVL_TIME_STRING_LEN] 
)

Convert a time to a string.

Parameters
timeTime to print
strString

This prints a gavl_time into ASCII string if a format suitable for player displays. The format is: -hhh:mm:ss

GAVL_PUBLIC void gavl_time_prettyprint_ms ( gavl_time_t  time,
char  str[GAVL_TIME_STRING_LEN_MS] 
)

Convert a time to a string with millisecond precision.

Parameters
timeTime to print
strString

This prints a gavl_time into ASCII string if a format suitable for player displays. The format is: -hhh:mm:ss.MMM

Since 1.1.1