libavformat/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"
Include dependency graph for libavformat/4xm.c:

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()
 

Typedefs

typedef struct AudioTrack AudioTrack
 
typedef struct FourxmDemuxContext FourxmDemuxContext
 

Functions

static int fourxm_probe (AVProbeData *p)
 
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 libavformat/4xm.c.

Macro Definition Documentation

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

Definition at line 52 of file libavformat/4xm.c.

Referenced by fourxm_read_packet().

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

Definition at line 49 of file libavformat/4xm.c.

Referenced by fourxm_read_packet().

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

Definition at line 36 of file libavformat/4xm.c.

Referenced by fourxm_probe().

#define GET_LIST_HEADER ( )
Value:
fourcc_tag = avio_rl32(pb); \
if (fourcc_tag != LIST_TAG) \
fourcc_tag = avio_rl32(pb);
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
Definition: error.h:59
initialize output if(nPeaks >3)%at least 3 peaks in spectrum for trying to find f0 nf0peaks
unsigned int avio_rl32(AVIOContext *s)
Definition: aviobuf.c:579
int size
#define LIST_TAG
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame This method is called when a frame is wanted on an output For an it should directly call filter_frame on the corresponding output For a if there are queued frames already one of these frames should be pushed If the filter should request a frame on one of its repeatedly until at least one frame has been pushed Return it should return

Definition at line 58 of file libavformat/4xm.c.

Referenced by fourxm_read_header().

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

Definition at line 38 of file libavformat/4xm.c.

Referenced by fourxm_read_header().

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

Definition at line 50 of file libavformat/4xm.c.

Referenced by fourxm_read_packet().

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

Definition at line 47 of file libavformat/4xm.c.

Referenced by fourxm_read_packet().

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

Definition at line 37 of file libavformat/4xm.c.

Referenced by fourxm_read_packet().

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

Definition at line 40 of file libavformat/4xm.c.

Referenced by fourxm_read_header().

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

Definition at line 44 of file libavformat/4xm.c.

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

Definition at line 51 of file libavformat/4xm.c.

Referenced by fourxm_read_packet().

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

Definition at line 48 of file libavformat/4xm.c.

Referenced by fourxm_read_packet().

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

Definition at line 35 of file libavformat/4xm.c.

Referenced by fourxm_probe().

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

Definition at line 53 of file libavformat/4xm.c.

Referenced by fourxm_read_packet().

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

Definition at line 43 of file libavformat/4xm.c.

Referenced by fourxm_read_header().

#define strk_SIZE   0x28

Definition at line 56 of file libavformat/4xm.c.

Referenced by fourxm_read_header().

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

Definition at line 42 of file libavformat/4xm.c.

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

Definition at line 46 of file libavformat/4xm.c.

Referenced by fourxm_read_header().

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

Definition at line 39 of file libavformat/4xm.c.

#define vtrk_SIZE   0x44

Definition at line 55 of file libavformat/4xm.c.

Referenced by fourxm_read_header().

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

Definition at line 41 of file libavformat/4xm.c.

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

Definition at line 45 of file libavformat/4xm.c.

Referenced by fourxm_read_header().

Typedef Documentation

typedef struct AudioTrack AudioTrack

Function Documentation

static int fourxm_probe ( AVProbeData p)
static

Definition at line 85 of file libavformat/4xm.c.

static int fourxm_read_close ( AVFormatContext s)
static

Definition at line 355 of file libavformat/4xm.c.

static int fourxm_read_header ( AVFormatContext s)
static

Definition at line 94 of file libavformat/4xm.c.

static int fourxm_read_packet ( AVFormatContext s,
AVPacket pkt 
)
static

Definition at line 261 of file libavformat/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),
}
static int fourxm_probe(AVProbeData *p)
static int fourxm_read_packet(AVFormatContext *s, AVPacket *pkt)
static av_cold int read_close(AVFormatContext *ctx)
Definition: libcdio.c:145
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
static int fourxm_read_close(AVFormatContext *s)
static int read_probe(AVProbeData *pd)
static int fourxm_read_header(AVFormatContext *s)
static int read_header(FFV1Context *f)
Definition: ffv1dec.c:517
static int read_packet(AVFormatContext *ctx, AVPacket *pkt)
Definition: libcdio.c:114
struct FourxmDemuxContext FourxmDemuxContext

Definition at line 364 of file libavformat/4xm.c.