VLC  3.0.23
Data Structures | Macros | Functions
vlc_mtime.h File Reference
Include dependency graph for vlc_mtime.h:

Go to the source code of this file.

Data Structures

struct  date_t
 

Macros

#define LAST_MDATE   ((vlc_tick_t)((uint64_t)(-1)/2))
 
#define VLC_TICK_FROM_MS(ms)   ((CLOCK_FREQ / INT64_C(1000)) * (ms))
 
#define MS_FROM_VLC_TICK(vtk)   ((vtk) / (CLOCK_FREQ / INT64_C(1000)))
 
#define VLC_TICK_FROM_SEC(sec)   (CLOCK_FREQ * (sec))
 
#define SEC_FROM_VLC_TICK(vtk)   ((vtk) / CLOCK_FREQ)
 
#define vlc_tick_from_sec(sec)
 
#define MSTRTIME_MAX_SIZE   22
 

Functions

static vlc_tick_t vlc_tick_from_seci (int64_t sec)
 
static vlc_tick_t vlc_tick_from_secf (double secf)
 
static double secf_from_vlc_tick (vlc_tick_t vtk)
 
char * secstotimestr (char *psz_buffer, int32_t secs)
 Convert seconds to a time in the format h:mm:ss. More...
 
void date_Init (date_t *, uint32_t, uint32_t)
 Initialize a date_t. More...
 
void date_Change (date_t *, uint32_t, uint32_t)
 Change a date_t. More...
 
void date_Set (date_t *, vlc_tick_t)
 Set the date value of a date_t. More...
 
vlc_tick_t date_Get (const date_t *)
 Get the date of a date_t. More...
 
void date_Move (date_t *, vlc_tick_t)
 Move forwards or backwards the date of a date_t. More...
 
vlc_tick_t date_Increment (date_t *, uint32_t)
 Increment the date and return the result, taking into account rounding errors. More...
 
vlc_tick_t date_Decrement (date_t *, uint32_t)
 Decrement the date and return the result, taking into account rounding errors. More...
 
uint64_t NTPtime64 (void)
 

Macro Definition Documentation

◆ LAST_MDATE

#define LAST_MDATE   ((vlc_tick_t)((uint64_t)(-1)/2))

◆ MS_FROM_VLC_TICK

#define MS_FROM_VLC_TICK (   vtk)    ((vtk) / (CLOCK_FREQ / INT64_C(1000)))

◆ MSTRTIME_MAX_SIZE

#define MSTRTIME_MAX_SIZE   22

◆ SEC_FROM_VLC_TICK

#define SEC_FROM_VLC_TICK (   vtk)    ((vtk) / CLOCK_FREQ)

◆ VLC_TICK_FROM_MS

#define VLC_TICK_FROM_MS (   ms)    ((CLOCK_FREQ / INT64_C(1000)) * (ms))

◆ VLC_TICK_FROM_SEC

#define VLC_TICK_FROM_SEC (   sec)    (CLOCK_FREQ * (sec))

◆ vlc_tick_from_sec

#define vlc_tick_from_sec (   sec)
Value:
_Generic((sec), \
double: vlc_tick_from_secf(sec), \
float: vlc_tick_from_secf(sec), \
default: vlc_tick_from_seci(sec) )

Function Documentation

◆ date_Change()

void date_Change ( date_t p_date,
uint32_t  i_divider_n,
uint32_t  i_divider_d 
)

Change a date_t.

Parameters
dateto change
divider(sample rate) numerator
divider(sample rate) denominator

References date_t::i_divider_den, date_t::i_divider_num, and date_t::i_remainder.

◆ date_Decrement()

vlc_tick_t date_Decrement ( date_t p_date,
uint32_t  i_nb_samples 
)

Decrement the date and return the result, taking into account rounding errors.

Parameters
dateto decrement
decrementationin number of samples
Returns
date value

References CLOCK_FREQ, date_t::date, date_t::i_divider_den, date_t::i_divider_num, and date_t::i_remainder.

◆ date_Get()

vlc_tick_t date_Get ( const date_t p_date)

Get the date of a date_t.

Parameters
dateto get
Returns
date value

References date_t::date.

◆ date_Increment()

vlc_tick_t date_Increment ( date_t p_date,
uint32_t  i_nb_samples 
)

Increment the date and return the result, taking into account rounding errors.

Parameters
dateto increment
incrementationin number of samples
Returns
date value

References CLOCK_FREQ, date_t::date, date_t::i_divider_den, date_t::i_divider_num, date_t::i_remainder, lldiv(), lldiv_t::quot, and lldiv_t::rem.

◆ date_Init()

void date_Init ( date_t p_date,
uint32_t  i_divider_n,
uint32_t  i_divider_d 
)

Initialize a date_t.

Parameters
dateto initialize
divider(sample rate) numerator
divider(sample rate) denominator

References date_t::date, date_t::i_divider_den, date_t::i_divider_num, and date_t::i_remainder.

◆ date_Move()

void date_Move ( date_t p_date,
vlc_tick_t  i_difference 
)

Move forwards or backwards the date of a date_t.

Parameters
dateto move
differencevalue

References date_t::date.

◆ date_Set()

void date_Set ( date_t p_date,
vlc_tick_t  i_new_date 
)

Set the date value of a date_t.

Parameters
dateto set
datevalue

References date_t::date, and date_t::i_remainder.

◆ NTPtime64()

uint64_t NTPtime64 ( void  )
Returns
NTP 64-bits timestamp in host byte order.

References TIME_UTC, timespec_get(), timespec::tv_nsec, and timespec::tv_sec.

Referenced by vlc_rand_bytes(), and vlc_sdp_Start().

◆ secf_from_vlc_tick()

static double secf_from_vlc_tick ( vlc_tick_t  vtk)
inlinestatic

References CLOCK_FREQ.

◆ secstotimestr()

char* secstotimestr ( char *  psz_buffer,
int32_t  i_seconds 
)

Convert seconds to a time in the format h:mm:ss.

This function is provided for any interface function which need to print a time string in the format h:mm:ss date.

Parameters
secsthe date to be converted
psz_buffershould be a buffer at least MSTRTIME_MAX_SIZE characters
Returns
psz_buffer is returned so this can be used as printf parameter.

References MSTRTIME_MAX_SIZE, secstotimestr(), and unlikely.

Referenced by secstotimestr().

◆ vlc_tick_from_secf()

static vlc_tick_t vlc_tick_from_secf ( double  secf)
inlinestatic

◆ vlc_tick_from_seci()

static vlc_tick_t vlc_tick_from_seci ( int64_t  sec)
inlinestatic
vlc_tick_from_seci
static vlc_tick_t vlc_tick_from_seci(int64_t sec)
Definition: vlc_mtime.h:81
vlc_tick_from_secf
static vlc_tick_t vlc_tick_from_secf(double secf)
Definition: vlc_mtime.h:86