JV

From MultimediaWiki
Revision as of 03:39, 31 January 2007 by Suxen drol (talk | contribs) (bitmap brothers jv)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

JV is a multimedia format developed by the Bitmap Brothers and is used in the DOS game Z. No other games are known to use this format.

File Structure

Files consist of a fixed-length header, followed by an index table, and the

   0x0000  70 bytes  ASCIIZ "JV00 Compression by John M Phillips Copyright (C) 1995 The Bitmap Brothers Ltd."
   0x0050  le_u16    frame width (pixels)
   0x0052  le_u16    frame height (pixels)
   0x0054  le_u16    total frame count
   0x0056  le_u16    always 0x50
   0x0058  le_u16    always 0x01
   0x005a  le_u16    always 0x02
   0x005c  le_u16    audio samples per second (22050 observed)
   0x0060  7 bytes   always zero
   0x0067  u8        always non-zero

The frame index table begins at offset 0x68, and contains an index record for each frame. The size of the table can be calculated using the total frame count field.

   le_u32 - total frame length (octets)
   le_u32 - audio chunk length (octets)
   le_u32 - video chunk length (octets)
   le_u16 - unknown
   le_u16 - unknown

Frame data is stored immediately follows the header, where each frame corresonds to an entry in the index table. Each frame comprises an audio chunk followed immediately by a video chunk. The length of the audio and video data corresponds to the value indicated in the index record. Video chunks may sometimes be zero length. Frames sometimes contain additional unknown data (suspected to be padding), therefore the "total frame length" field must considered when parsing each frame.

Audio Chunk

Each audio chunk contains mono unsigned 8-bit PCM audio samples.

Video Chunk

The compression algorithm is unknown.