Data Structures | Macros | Functions | Variables
mm.c File Reference
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"

Go to the source code of this file.

Data Structures

struct  MmDemuxContext


#define MM_PREAMBLE_SIZE   6
#define MM_TYPE_HEADER   0x0
#define MM_TYPE_INTER   0x5
#define MM_TYPE_INTRA   0x8
#define MM_TYPE_INTRA_HH   0xc
#define MM_TYPE_INTER_HH   0xd
#define MM_TYPE_INTRA_HHV   0xe
#define MM_TYPE_INTER_HHV   0xf
#define MM_TYPE_AUDIO   0x15
#define MM_TYPE_PALETTE   0x31
#define MM_HEADER_LEN_V   0x16 /* video only */
#define MM_HEADER_LEN_AV   0x18 /* video + audio */
#define MM_PALETTE_COUNT   128


static int probe (const AVProbeData *p)
static int read_header (AVFormatContext *s)
static int read_packet (AVFormatContext *s, AVPacket *pkt)


const FFInputFormat ff_mm_demuxer

Detailed Description

American Laser Games MM Format Demuxer by Peter Ross (pross.nosp@m.@xvi.nosp@m.d.org)

The MM format was used by IBM-PC ports of ALG's "arcade shooter" games, including Mad Dog McCree and Crime Patrol.

Technical details here: http://wiki.multimedia.cx/index.php?title=American_Laser_Games_MM

Definition in file mm.c.

Macro Definition Documentation


#define MM_PREAMBLE_SIZE   6

Definition at line 40 of file mm.c.


#define MM_TYPE_HEADER   0x0

Definition at line 42 of file mm.c.


#define MM_TYPE_INTER   0x5

Definition at line 43 of file mm.c.


#define MM_TYPE_INTRA   0x8

Definition at line 44 of file mm.c.


#define MM_TYPE_INTRA_HH   0xc

Definition at line 45 of file mm.c.


#define MM_TYPE_INTER_HH   0xd

Definition at line 46 of file mm.c.


#define MM_TYPE_INTRA_HHV   0xe

Definition at line 47 of file mm.c.


#define MM_TYPE_INTER_HHV   0xf

Definition at line 48 of file mm.c.


#define MM_TYPE_AUDIO   0x15

Definition at line 49 of file mm.c.


#define MM_TYPE_PALETTE   0x31

Definition at line 50 of file mm.c.


#define MM_HEADER_LEN_V   0x16 /* video only */

Definition at line 52 of file mm.c.


#define MM_HEADER_LEN_AV   0x18 /* video + audio */

Definition at line 53 of file mm.c.


#define MM_PALETTE_COUNT   128

Definition at line 55 of file mm.c.



Definition at line 56 of file mm.c.

Function Documentation

◆ probe()

static int probe ( const AVProbeData p)

Definition at line 62 of file mm.c.

◆ read_header()

static int read_header ( AVFormatContext s)

Definition at line 86 of file mm.c.

◆ read_packet()

static int read_packet ( AVFormatContext s,
AVPacket pkt 

Definition at line 138 of file mm.c.

Variable Documentation

◆ ff_mm_demuxer

const FFInputFormat ff_mm_demuxer
Initial value:
= {
.p.name = "mm",
.p.long_name = NULL_IF_CONFIG_SMALL("American Laser Games MM"),
.priv_data_size = sizeof(MmDemuxContext),

Definition at line 193 of file mm.c.

static int read_packet(AVFormatContext *s, AVPacket *pkt)
Definition: mm.c:138
static int probe(const AVProbeData *p)
Definition: mm.c:62
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
Definition: internal.h:94
Definition: mm.c:58
static int read_probe(const AVProbeData *p)
Definition: cdg.c:30
static int read_header(AVFormatContext *s)
Definition: mm.c:86