Excellent document by Ramiro Polla at http://ml20rc.msnfanatic.com/vc_1_0.pdf

Video conversation (UDP):

Video conversation used WMV3 encode & decode the video.

1 data-transfer packet

the packet has a 10 bytes Video_con header, But in a packet, maybe exists different type (video & audio)payloads , so in a packet, maybe there are 2 or more Video_con header . I waste some time to know it . we discuss them with the example:

( UDP header )62 81 69 00 94 b4 cd 08 0a 04 ( payload)

The 1st byte 0x62 means it's a video payload, if 0x4a, means audio payload, (0x62 >> 1) & 0xF = 1 (video), (0x4a >> 1) & 0xF = 5 (audio), 2(syn/ack), 3(auth)

The next 2 bytes are length of the payload, in our example, 0x6981 >> 5 =844,844 is the length of the payload. A packet can contain 2 or more payload,So be careful to the value of the length.

The 4th byte is the chunk index number

The next four bytes is timestamp.

The 9th byte is the frame index number

The 10th byte is the total chuck number of the frame

In our example , 0x0a means the payload has the number 0x0a frame's chunk , and 0x00 means the packet has the payload of 1st chunk , and 0x04 means the full frame has 4 chunks.

msn messager used the method to get a full frame from different packets.

Maybe video_con decode the frame, it's always a 320x240 bitmap(right?)

2.audio

3. ack/syn

4 auth