Lines Matching refs:self
50 TimeFilter *self = av_mallocz(sizeof(TimeFilter));
53 if (!self)
56 self->clock_period = time_base;
57 self->feedback2_factor = qexpneg(M_SQRT2 * o);
58 self->feedback3_factor = qexpneg(o * o) / period;
59 return self;
62 void ff_timefilter_destroy(TimeFilter *self)
64 av_freep(&self);
67 void ff_timefilter_reset(TimeFilter *self)
69 self->count = 0;
72 double ff_timefilter_update(TimeFilter *self, double system_time, double period)
74 self->count++;
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;
88 double ff_timefilter_eval(TimeFilter *self, double delta)
90 return self->cycle_time + self->clock_period * delta;