FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
4xm.c File Reference

4X Technologies file demuxer by Mike Melanson (melan.nosp@m.son@.nosp@m.pcisy.nosp@m.s.ne.nosp@m.t) for more information on the .4xm file format, visit: http://www.pcisys.net/~melanson/codecs/ More...

#include "libavutil/intreadwrite.h"
#include "libavutil/intfloat.h"
#include "avformat.h"
#include "internal.h"

Go to the source code of this file.

Data Structures

struct  AudioTrack
 
struct  FourxmDemuxContext
 

Macros

#define RIFF_TAG   MKTAG('R', 'I', 'F', 'F')
 
#define FOURXMV_TAG   MKTAG('4', 'X', 'M', 'V')
 
#define LIST_TAG   MKTAG('L', 'I', 'S', 'T')
 
#define HEAD_TAG   MKTAG('H', 'E', 'A', 'D')
 
#define TRK__TAG   MKTAG('T', 'R', 'K', '_')
 
#define MOVI_TAG   MKTAG('M', 'O', 'V', 'I')
 
#define VTRK_TAG   MKTAG('V', 'T', 'R', 'K')
 
#define STRK_TAG   MKTAG('S', 'T', 'R', 'K')
 
#define std__TAG   MKTAG('s', 't', 'd', '_')
 
#define name_TAG   MKTAG('n', 'a', 'm', 'e')
 
#define vtrk_TAG   MKTAG('v', 't', 'r', 'k')
 
#define strk_TAG   MKTAG('s', 't', 'r', 'k')
 
#define ifrm_TAG   MKTAG('i', 'f', 'r', 'm')
 
#define pfrm_TAG   MKTAG('p', 'f', 'r', 'm')
 
#define cfrm_TAG   MKTAG('c', 'f', 'r', 'm')
 
#define ifr2_TAG   MKTAG('i', 'f', 'r', '2')
 
#define pfr2_TAG   MKTAG('p', 'f', 'r', '2')
 
#define cfr2_TAG   MKTAG('c', 'f', 'r', '2')
 
#define snd__TAG   MKTAG('s', 'n', 'd', '_')
 
#define vtrk_SIZE   0x44
 
#define strk_SIZE   0x28
 
#define GET_LIST_HEADER()
 

Functions

static int fourxm_probe (AVProbeData *p)
 
static int parse_vtrk (AVFormatContext *s, FourxmDemuxContext *fourxm, uint8_t *buf, int size, int left)
 
static int parse_strk (AVFormatContext *s, FourxmDemuxContext *fourxm, uint8_t *buf, int size, int left)
 
static int fourxm_read_header (AVFormatContext *s)
 
static int fourxm_read_packet (AVFormatContext *s, AVPacket *pkt)
 
static int fourxm_read_close (AVFormatContext *s)
 

Variables

AVInputFormat ff_fourxm_demuxer
 

Detailed Description

4X Technologies file demuxer by Mike Melanson (melan.nosp@m.son@.nosp@m.pcisy.nosp@m.s.ne.nosp@m.t) for more information on the .4xm file format, visit: http://www.pcisys.net/~melanson/codecs/

Definition in file 4xm.c.

Macro Definition Documentation

#define RIFF_TAG   MKTAG('R', 'I', 'F', 'F')

Definition at line 35 of file 4xm.c.

Referenced by fourxm_probe().

#define FOURXMV_TAG   MKTAG('4', 'X', 'M', 'V')

Definition at line 36 of file 4xm.c.

Referenced by fourxm_probe().

#define LIST_TAG   MKTAG('L', 'I', 'S', 'T')

Definition at line 37 of file 4xm.c.

Referenced by fourxm_read_packet().

#define HEAD_TAG   MKTAG('H', 'E', 'A', 'D')

Definition at line 38 of file 4xm.c.

Referenced by fourxm_read_header().

#define TRK__TAG   MKTAG('T', 'R', 'K', '_')

Definition at line 39 of file 4xm.c.

#define MOVI_TAG   MKTAG('M', 'O', 'V', 'I')

Definition at line 40 of file 4xm.c.

Referenced by fourxm_read_header().

#define VTRK_TAG   MKTAG('V', 'T', 'R', 'K')

Definition at line 41 of file 4xm.c.

#define STRK_TAG   MKTAG('S', 'T', 'R', 'K')

Definition at line 42 of file 4xm.c.

#define std__TAG   MKTAG('s', 't', 'd', '_')

Definition at line 43 of file 4xm.c.

Referenced by fourxm_read_header().

#define name_TAG   MKTAG('n', 'a', 'm', 'e')

Definition at line 44 of file 4xm.c.

#define vtrk_TAG   MKTAG('v', 't', 'r', 'k')

Definition at line 45 of file 4xm.c.

Referenced by fourxm_read_header().

#define strk_TAG   MKTAG('s', 't', 'r', 'k')

Definition at line 46 of file 4xm.c.

Referenced by fourxm_read_header().

#define ifrm_TAG   MKTAG('i', 'f', 'r', 'm')

Definition at line 47 of file 4xm.c.

Referenced by fourxm_read_packet().

#define pfrm_TAG   MKTAG('p', 'f', 'r', 'm')

Definition at line 48 of file 4xm.c.

Referenced by fourxm_read_packet().

#define cfrm_TAG   MKTAG('c', 'f', 'r', 'm')

Definition at line 49 of file 4xm.c.

Referenced by fourxm_read_packet().

#define ifr2_TAG   MKTAG('i', 'f', 'r', '2')

Definition at line 50 of file 4xm.c.

Referenced by fourxm_read_packet().

#define pfr2_TAG   MKTAG('p', 'f', 'r', '2')

Definition at line 51 of file 4xm.c.

Referenced by fourxm_read_packet().

#define cfr2_TAG   MKTAG('c', 'f', 'r', '2')

Definition at line 52 of file 4xm.c.

Referenced by fourxm_read_packet().

#define snd__TAG   MKTAG('s', 'n', 'd', '_')

Definition at line 53 of file 4xm.c.

Referenced by fourxm_read_packet().

#define vtrk_SIZE   0x44

Definition at line 55 of file 4xm.c.

Referenced by parse_vtrk().

#define strk_SIZE   0x28

Definition at line 56 of file 4xm.c.

Referenced by parse_strk().

#define GET_LIST_HEADER ( )
Value:
fourcc_tag = avio_rl32(pb); \
size = avio_rl32(pb); \
if (fourcc_tag != LIST_TAG) \
fourcc_tag = avio_rl32(pb);

Definition at line 58 of file 4xm.c.

Referenced by fourxm_read_header().

Function Documentation

static int fourxm_probe ( AVProbeData p)
static

Definition at line 83 of file 4xm.c.

static int parse_vtrk ( AVFormatContext s,
FourxmDemuxContext fourxm,
uint8_t buf,
int  size,
int  left 
)
static

Definition at line 92 of file 4xm.c.

Referenced by fourxm_read_header().

static int parse_strk ( AVFormatContext s,
FourxmDemuxContext fourxm,
uint8_t buf,
int  size,
int  left 
)
static

Definition at line 123 of file 4xm.c.

Referenced by fourxm_read_header().

static int fourxm_read_header ( AVFormatContext s)
static

Definition at line 194 of file 4xm.c.

static int fourxm_read_packet ( AVFormatContext s,
AVPacket pkt 
)
static

Definition at line 275 of file 4xm.c.

static int fourxm_read_close ( AVFormatContext s)
static

Definition at line 367 of file 4xm.c.

Variable Documentation

AVInputFormat ff_fourxm_demuxer
Initial value:
= {
.name = "4xm",
.long_name = NULL_IF_CONFIG_SMALL("4X Technologies"),
.priv_data_size = sizeof(FourxmDemuxContext),
}

Definition at line 376 of file 4xm.c.