Go to the documentation of this file.
   47     return 1 - 1 / (1 + x * (1 + x / 2 * (1 + x / 3)));
 
   55     double o               = 2 * 
M_PI * bandwidth * 
period * time_base;
 
   60     self->clock_period     = time_base;
 
   79     if (self->count == 1) {
 
   80         self->cycle_time = system_time;
 
   83         self->cycle_time += 
self->clock_period * 
period;
 
   84         loop_error = system_time - 
self->cycle_time;
 
   86         self->cycle_time   += 
FFMAX(self->feedback2_factor, 1.0 / self->count) * loop_error;
 
   87         self->clock_period += 
self->feedback3_factor * loop_error;
 
   89     return self->cycle_time;
 
   94     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)