LMLM4

From MultimediaWiki
Revision as of 13:22, 4 January 2008 by Ivo (talk | contribs) (faster method of calculating the number of padding bytes)
Jump to navigation Jump to search
  • Extension: LML uses .divx on their website, though there are other file formats that use that, too.
  • Company: Linux Media Labs
  • Website: http://www.linuxmedialabs.com/

LMLM4 files are near-raw files, containing MPEG-4 video and MPEG-1 Layer II, μ-law or ADPCM audio.

A file contains multiple packets, padded with zeroes to a multiple of 512 (one block).

typedef struct {
   uint16_t channel_number;
   uint16_t frame_type;
   uint32_t packet_size;
   uint8_t data[packet_size - 8];
   uint8_t padding[ -packet_size & 511 ];
} LMLM4_Packet;

The maximum size of a packet is 1048576 bytes, which is 2048 blocks.

channel_number, frame_type and packet_size are stored in big-endian order.

The following frametypes are supported:

0x00 - I-Frame, video
0x01 - P-Frame, video
0x02 - B-Frame, video
0x04 - MPEG-1 Layer 2 audio
0x05 - μ-law, audio
0x06 - ADPCM, audio

One packet contains a complete decodable frame.