CamStudio Screen Codec

From MultimediaWiki
Jump to navigation Jump to search

This is very simple codec. First byte is header byte, bits 7-1 are compression method, bit 0 signs if this is keyframe. Second byte is reserved. The next bytes are compressed data.

There are two possible compression methods: LZO (=0) and ZLib (=1).

Decoding algorithm:

 header = getbyte();
 method = header >> 1;
 keyframe = header & 1;
 getbyte();
 switch (method){
   case 0:
     unpack_lzo(data, buf);
     break;
   case 1:
     unpack_zlib(data, buf);
     break;
 }
 if(keyframe){
   frame = unpacked data
 }else{
   add deltas to previous frame
 }