Some notes on Fraps

Here is what I currently know about Fraps v2 (v1 is supported by FFmpeg):

  • all data is stored in 32-bit little-endian words
  • first word indicates codec version and flag 0x8000000 – delta frame
  • second word is zero
  • next word is ‘FPSx’ magic
  • next three words are offsets in frame (from position 8) to packed YUV planes
  • each plane starts with 256 words – frequencies for each possible value
  • the rest of data¬† is bits packed in words
  • each bit looks like an input to state machine which outputs pair (value, skip) and changes its internal state
  • the rest is still needs to be figured out

2 Responses to “Some notes on Fraps”

  1. What do you make of the fact that the binary Win32 Fraps codec claims that it seems a Pentium III or better CPU?

  2. Kostya says:

    It uses SSE for such things as memset(), memcpy() yuv2rgb and a lot of prefetches.