Advertisement
Guest User

accurate video capture timestep

a guest
Oct 25th, 2013
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.71 KB | None | 0 0
  1. // client.h
  2.  
  3. typedef struct {
  4. // ...
  5.     float       aviDemoRemain;      // Used for accurate fps recording
  6. } clientConnection_t;
  7.  
  8.  
  9.  
  10. // cl_main.cpp -> CL_Frame
  11.  
  12. void CL_Frame ( int msec ) {
  13. // ...
  14. if ( CL_VideoRecording( ) && cl_aviFrameRate->integer && msec) {
  15.     // save the current screen
  16.     if ( cls.state == CA_ACTIVE || cl_forceavidemo->integer) {
  17.         float frameTime, fps;
  18.         CL_TakeVideoFrame( );
  19.         // fixed time for next frame'
  20.         fps = cl_aviFrameRate->value * com_timescale->value;
  21.         if ( fps > 1000.0f)
  22.             fps = 1000.0f;
  23.         frameTime = (1000.0f / fps);
  24.         if (frameTime < 1) {
  25.             frameTime = 1;
  26.         }
  27.         frameTime += clc.aviDemoRemain;
  28.         msec = (int)frameTime;
  29.         clc.aviDemoRemain = frameTime - msec;
  30.     }
  31. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement