When your frame rate goes down, and the video starts lagging, it is important to be able to analyse where it can come from. Today we’re going to look at some information we can use to troubleshoot this.
Roughly, the way our application works is the following: at each pass, we read a video frame from the disk if needed, decode it and then send it to the GPU (the Graphic card’s CPU) together with all blending and effect operations. Then we ask the graphic card to flush all operations (that is actually processing all pending graphical instructions) and present it to the display.
If you look at the bottom of the user interface window in either NuVJ, GrandVJ or MediaMaster, you will notice that there are two numbers constantly updated.
Something like:
Graph: 400.00 Total: 60.00
These numbers indicate the speed at which the engine does its rendering.
The numbers next to ”Total” represents an average of the actual frame rate of the display. If you start the application’s fullscreen without any visuals, the total should give you the monitor’s frequency, which is the maximum frame rate you can ever achieve.
The numbers next to ”Graph” will give you an indication of what the framerate would be if we only decoded the movie and send the graphic instruction to the graphic card without asking it to actually flush the instructions and update the display.
So unless you use a lot of heavy effects (like the rotozoom for example), the graph value is a rough reading on how heavy it is to decompress your loops.
From these indications you can conclude the following:
- If your framerate drops and but the “Graph” reading stays high, it’s most likely resolving the graphical output that is the bottleneck. Probably you run at a resolution that is too high for your graphical card or your card doesn’t cope well with downloading the textures back to central memory for preview display.
- On the other hand, if both the graph and the total value go down, it’s most likely the movie decompression that is the bottleneck. Either you use a codec that isn’t effective (make sure all you videos are decoded through our FFMPEGplayer – preferably photoJPEG, mpeg2, H.264), or you are decoding to many movies for what your harddrive can cope with.