- FourCC: G2M2, G2M3, G2M4
- Company: GoToMeeting (Citrix)
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'.
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
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
Probably mouse cursor position.
2 bytes cursor position X 2 bytes cursor position Y 1 byte seems to be always 1
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)
Maybe some resync chunk, it's supposed to contain only 4-byte value equal to 2000.
One dword, something to do with time.