summaryrefslogtreecommitdiff
path: root/libavformat/timefilter.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2009-03-06 00:09:14 +0000
committerMichael Niedermayer <michaelni@gmx.at>2009-03-06 00:09:14 +0000
commit08ffd3708bd15613e85e331b04c89fbde2054b30 (patch)
tree566ba900f4254f6649706275cda4ed93407177fc /libavformat/timefilter.c
parent28e947e458638aae240677b41905bc75bff725bd (diff)
Allow timespans to vary.
No change in performance if they do not vary. Originally committed as revision 17840 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat/timefilter.c')
-rw-r--r--libavformat/timefilter.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/libavformat/timefilter.c b/libavformat/timefilter.c
index 6fdc148d00..26d57c0617 100644
--- a/libavformat/timefilter.c
+++ b/libavformat/timefilter.c
@@ -34,10 +34,10 @@ struct TimeFilter {
double integrator2_state;
};
-TimeFilter * ff_timefilter_new(double period, double feedback2_factor, double feedback3_factor)
+TimeFilter * ff_timefilter_new(double feedback2_factor, double feedback3_factor)
{
TimeFilter *self = av_mallocz(sizeof(TimeFilter));
- self->integrator2_state = period;
+ self->integrator2_state = 1.0;
self->feedback2_factor = feedback2_factor;
self->feedback3_factor = feedback3_factor;
return self;
@@ -53,20 +53,20 @@ void ff_timefilter_reset(TimeFilter *self)
self->cycle_time = 0;
}
-void ff_timefilter_update(TimeFilter *self, double system_time)
+void ff_timefilter_update(TimeFilter *self, double system_time, double period)
{
if (!self->cycle_time) {
/// init loop
self->cycle_time = system_time;
} else {
double loop_error;
- self->cycle_time+= self->integrator2_state;
+ self->cycle_time+= self->integrator2_state * period;
/// calculate loop error
loop_error = system_time - self->cycle_time;
/// update loop
self->cycle_time += self->feedback2_factor * loop_error;
- self->integrator2_state += self->feedback3_factor * loop_error;
+ self->integrator2_state += self->feedback3_factor * loop_error / period;
}
}