FFmpeg
Functions
timefilter.h File Reference

Go to the source code of this file.

Functions

TimeFilterff_timefilter_new (double time_base, double period, double bandwidth)
 Create a new Delay Locked Loop time filter. More...
 
double ff_timefilter_update (TimeFilter *self, double system_time, double period)
 Update the filter. More...
 
double ff_timefilter_eval (TimeFilter *self, double delta)
 Evaluate the filter at a specified time. More...
 
void ff_timefilter_reset (TimeFilter *)
 Reset the filter. More...
 
void ff_timefilter_destroy (TimeFilter *)
 Free all resources associated with the filter. More...
 

Function Documentation

◆ ff_timefilter_new()

TimeFilter* ff_timefilter_new ( double  time_base,
double  period,
double  bandwidth 
)

Create a new Delay Locked Loop time filter.

Where bandwidth is up to you to choose. Smaller values will filter out more of the jitter, but also take a longer time for the loop to settle. A good starting point is something between 0.3 and 3 Hz.

Parameters
time_baseperiod of the hardware clock in seconds (for example 1.0/44100)
periodexpected update interval, in input units
brandwidthfiltering bandwidth, in Hz
Returns
a pointer to a TimeFilter struct, or NULL on error

Definition at line 50 of file timefilter.c.

Referenced by audio_read_header(), init_convert_timestamp(), main(), pulse_read_header(), and start_jack().

◆ ff_timefilter_update()

double ff_timefilter_update ( TimeFilter self,
double  system_time,
double  period 
)

Update the filter.

This function must be called in real time, at each process cycle.

Parameters
periodthe device cycle duration in clock_periods. For example, at 44.1kHz and a buffer size of 512 frames, period = 512 when clock_period was 1.0/44100, or 512/44100 if clock_period was 1.

system_time, in seconds, should be the value of the system clock time, at (or as close as possible to) the moment the device hardware interrupt occurred (or any other event the device clock raises at the beginning of a cycle).

Returns
the filtered time, in seconds

Definition at line 76 of file timefilter.c.

Referenced by audio_read_packet(), convert_timestamp(), main(), process_callback(), and pulse_read_packet().

◆ ff_timefilter_eval()

double ff_timefilter_eval ( TimeFilter self,
double  delta 
)

Evaluate the filter at a specified time.

Parameters
deltadifference between the requested time and the current time (last call to ff_timefilter_update).
Returns
the filtered time

Definition at line 92 of file timefilter.c.

Referenced by convert_timestamp().

◆ ff_timefilter_reset()

void ff_timefilter_reset ( TimeFilter )

Reset the filter.

This function should mainly be called in case of XRUN.

Warning: after calling this, the filter is in an undetermined state until the next call to ff_timefilter_update()

Definition at line 71 of file timefilter.c.

Referenced by audio_read_packet(), and xrun_callback().

◆ ff_timefilter_destroy()

void ff_timefilter_destroy ( TimeFilter )

Free all resources associated with the filter.

Definition at line 66 of file timefilter.c.

Referenced by ff_alsa_close(), main(), pulse_close(), and stop_jack().