Go to the documentation of this file.
   43     return 1 - 1 / (1 + x * (1 + x / 2 * (1 + x / 3)));
 
   51     double o               = 2 * 
M_PI * bandwidth * 
period * time_base;
 
   56     self->clock_period     = time_base;
 
   75     if (self->count == 1) {
 
   76         self->cycle_time = system_time;
 
   79         self->cycle_time += 
self->clock_period * 
period;
 
   80         loop_error = system_time - 
self->cycle_time;
 
   82         self->cycle_time   += 
FFMAX(self->feedback2_factor, 1.0 / self->count) * loop_error;
 
   83         self->clock_period += 
self->feedback3_factor * loop_error;
 
   85     return self->cycle_time;
 
   90     return self->cycle_time + 
self->clock_period * 
delta;
 
  
Opaque type representing a time filter state.
double ff_timefilter_eval(TimeFilter *self, double delta)
Evaluate the filter at a specified time.
TimeFilter * ff_timefilter_new(double time_base, double period, double bandwidth)
Create a new Delay Locked Loop time filter.
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default minimum maximum flags name is the option keep it simple and lowercase description are in without period
void ff_timefilter_reset(TimeFilter *self)
Reset the filter.
void ff_timefilter_destroy(TimeFilter *self)
Free all resources associated with the filter.
void * av_mallocz(size_t size)
Allocate a memory block with alignment suitable for all memory accesses (including vectors if availab...
double ff_timefilter_update(TimeFilter *self, double system_time, double period)
Update the filter.
static double qexpneg(double x)