GoToMeeting Codec: Difference between revisions
Line 50: | Line 50: | ||
ELS-coded data size | ELS-coded data size | ||
ELS-coded data | ELS-coded data for transparency pixel | ||
ELS-coded data for whole image | |||
JPEG data | JPEG data | ||
Revision as of 13:02, 17 July 2012
- FourCC: G2M2, G2M3, G2M4
- Company: GoToMeeting (Citrix)
- Samples:
This is a codec used to save recordings in GoToMeeting. The codec also calls itself GoToWebinar (see http://www.gotowebinar.com/).
Win32 binary decoder available here: http://www.gotomeeting.com/codec
According to samples, all G2M2 video frames begin with the characters 'G2M2', followed by a series of chunks. Each chunk has the following layout:
bytes 0-3 length of chunk payload, not including this length field byte 4 type of chunk bytes 5.. remainder of payload, format unknown
Supported chunk types are 0xC8-0xCD.
It appears that the minimum size for a G2M2 frame (possibly a no-change frame) is 14 bytes. This includes the 4 signature bytes, a 4-byte length indicating a chunk length of 6, and a 6-byte payload of type 0xCA followed by 5 more bytes.
G2M3 bears much similarity to G2M2 at the surface level. Naturally, each frame has a signature of 'G2M3'.
Chunk C8
This seems to contain display information.
Chunk contents (all values are big-endian):
4 bytes image width 4 bytes image height 4 bytes compression mode (should be 2 or 3) 4 bytes tile width 4 bytes tile height 1 byte colour depth (4, 8, 16, 24 or 32) for 4/8bpp there is a palette in standard RGBTUPLE format for 16-32bpp there are four bitmasks for each field
Chunk C9
Should be image update.
1 byte tile position in row? 1 byte tile position in column? ... compressed data
REing compressed data format is left as an exercise to the reader, an example is provided below
Compression 2
ELS-coded data size ELS-coded data for transparency pixel ELS-coded data for whole image JPEG data
ELS-coded data size:
0xxxxxxx 10xxxxxx xxxxxxxx 110xxxxx xxxxxxxx xxxxxxxx 111xxxxx xxxxxxxx xxxxxxxx xxxxxxxx
ELS-coded data seems to consist of coded flags and differences for RGB triplets.
JPEG data seems to be scan data with escapes but no headers (default Huffman tables and quantisation matrices are used).
Chunk CA
Probably mouse cursor position.
2 bytes cursor position X 2 bytes cursor position Y 1 byte seems to be always 1
Chunk CB
This one seems to define mouse cursor shape:
4 bytes data size 1 byte width 1 byte height 1 byte hotspot x 1 byte hotspot y ... cursor bitmask and its inverse (in M$ format 98% sure)
Chunk CC
Maybe some resync chunk, it's supposed to contain only 4-byte value equal to 2000.
Chunk CD
One dword, something to do with time.