[FFmpeg-cvslog] r17839 - trunk/libavformat/timefilter.c

michael subversion
Fri Mar 6 00:57:42 CET 2009


Author: michael
Date: Fri Mar  6 00:57:42 2009
New Revision: 17839

Log:
Reorder operations, 20% improved performance, 1 variable less.

Modified:
   trunk/libavformat/timefilter.c

Modified: trunk/libavformat/timefilter.c
==============================================================================
--- trunk/libavformat/timefilter.c	Fri Mar  6 00:45:18 2009	(r17838)
+++ trunk/libavformat/timefilter.c	Fri Mar  6 00:57:42 2009	(r17839)
@@ -29,7 +29,6 @@ struct TimeFilter {
     /// Delay Locked Loop data. These variables refer to mathematical
     /// concepts described in: http://www.kokkinizita.net/papers/usingdll.pdf
     double cycle_time;
-    double next_cycle_time;
     double feedback2_factor;
     double feedback3_factor;
     double integrator2_state;
@@ -59,14 +58,14 @@ void ff_timefilter_update(TimeFilter *se
     if (!self->cycle_time) {
         /// init loop
         self->cycle_time        = system_time;
-        self->next_cycle_time   = self->cycle_time + self->integrator2_state;
     } else {
+        double loop_error;
+        self->cycle_time+= self->integrator2_state;
         /// calculate loop error
-        double loop_error = system_time - self->next_cycle_time;
+        loop_error = system_time - self->cycle_time;
 
         /// update loop
-        self->cycle_time         = self->next_cycle_time;
-        self->next_cycle_time   += self->feedback2_factor * loop_error + self->integrator2_state;
+        self->cycle_time        += self->feedback2_factor * loop_error;
         self->integrator2_state += self->feedback3_factor * loop_error;
     }
 }




More information about the ffmpeg-cvslog mailing list