Vivo: Difference between revisions

From MultimediaWiki
Jump to navigation Jump to search
mNo edit summary
No edit summary
Line 30: Line 30:


But this is not sure since only header packets seem to be longer than 127 bytes?
But this is not sure since only header packets seem to be longer than 127 bytes?
Header packets are simply text with CRLF line-breaks, defining one "variable" per line in the form Name:Value

Revision as of 10:53, 7 March 2008

Proprietary web audio/video streaming format. Uses H.263 video and G.723 ADPCM audio (not the G.723.1 speech codec).

Vivo files consist of a sequence of packets.

Each packet starts with 4 bit packet type (see below). Then follows a 4 bit "sequence number". Packets with same packet number probably must be combined? If the packet is not fixed-size type, the packet length follows and after that the packet data.

Known packet types are:

0: header
1: video (fixed length 128 unless prefixed)
2: video
3: audio (fixed length 40 unless prefixed)
4: audio (fixed length 24 unless prefixed)

Each packet may be prefixed with 0x82 in which case the packet types marked as fixed length above have a packet length as well.

Packet length is probably coded in the way that the following code would decode:

len = 0
do
  c = get_byte();
  len = (len << 7) + (c & 0x7f)
while c & 0x80

But this is not sure since only header packets seem to be longer than 127 bytes?

Header packets are simply text with CRLF line-breaks, defining one "variable" per line in the form Name:Value