Difference between revisions of "GoToMeeting Codec"

From MultimediaWiki
Jump to navigation Jump to search
(Chunk C8)
Line 36: Line 36:
 
   for 4/8bpp there is a palette in standard RGBTUPLE format
 
   for 4/8bpp there is a palette in standard RGBTUPLE format
 
   for 16-32bpp there are four bitmasks for each field
 
   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
 +
 +
=== 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.
  
 
[[Category:Video Codecs]]
 
[[Category:Video Codecs]]

Revision as of 12:25, 8 November 2011

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  number of tiles in column (maybe)
  4 bytes  number of tiles in row (maybe)
  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

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.