libavformat/wc3movie.c File Reference

Wing Commander III Movie file demuxer by Mike Melanson (melanson@pcisys.net) for more information on the WC3 .mve file format, visit: http://www.pcisys.net/~melanson/codecs/. More...

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

Go to the source code of this file.

Data Structures

struct  Wc3DemuxContext

Defines

#define FORM_TAG   MKTAG('F', 'O', 'R', 'M')
#define MOVE_TAG   MKTAG('M', 'O', 'V', 'E')
#define PC__TAG   MKTAG('_', 'P', 'C', '_')
#define SOND_TAG   MKTAG('S', 'O', 'N', 'D')
#define BNAM_TAG   MKTAG('B', 'N', 'A', 'M')
#define SIZE_TAG   MKTAG('S', 'I', 'Z', 'E')
#define PALT_TAG   MKTAG('P', 'A', 'L', 'T')
#define INDX_TAG   MKTAG('I', 'N', 'D', 'X')
#define BRCH_TAG   MKTAG('B', 'R', 'C', 'H')
#define SHOT_TAG   MKTAG('S', 'H', 'O', 'T')
#define VGA__TAG   MKTAG('V', 'G', 'A', ' ')
#define TEXT_TAG   MKTAG('T', 'E', 'X', 'T')
#define AUDI_TAG   MKTAG('A', 'U', 'D', 'I')
#define WC3_DEFAULT_WIDTH   320
#define WC3_DEFAULT_HEIGHT   165
#define WC3_SAMPLE_RATE   22050
#define WC3_AUDIO_CHANNELS   1
#define WC3_AUDIO_BITS   16
#define WC3_FRAME_FPS   15
#define PALETTE_SIZE   (256 * 3)
#define PALETTE_COUNT   256

Functions

static int wc3_probe (AVProbeData *p)
static int wc3_read_header (AVFormatContext *s, AVFormatParameters *ap)
static int wc3_read_packet (AVFormatContext *s, AVPacket *pkt)
static int wc3_read_close (AVFormatContext *s)

Variables

static const unsigned char wc3_pal_lookup []
 palette lookup table that does gamma correction
AVInputFormat wc3_demuxer


Detailed Description

Wing Commander III Movie file demuxer by Mike Melanson (melanson@pcisys.net) for more information on the WC3 .mve file format, visit: http://www.pcisys.net/~melanson/codecs/.

Definition in file wc3movie.c.


Define Documentation

#define AUDI_TAG   MKTAG('A', 'U', 'D', 'I')

Definition at line 45 of file wc3movie.c.

Referenced by wc3_read_packet().

#define BNAM_TAG   MKTAG('B', 'N', 'A', 'M')

Definition at line 37 of file wc3movie.c.

Referenced by wc3_read_header().

#define BRCH_TAG   MKTAG('B', 'R', 'C', 'H')

Definition at line 41 of file wc3movie.c.

Referenced by wc3_read_header(), and wc3_read_packet().

#define FORM_TAG   MKTAG('F', 'O', 'R', 'M')

Definition at line 33 of file wc3movie.c.

#define INDX_TAG   MKTAG('I', 'N', 'D', 'X')

Definition at line 40 of file wc3movie.c.

Referenced by wc3_read_header().

#define MOVE_TAG   MKTAG('M', 'O', 'V', 'E')

Definition at line 34 of file wc3movie.c.

Referenced by wc3_probe().

#define PALETTE_COUNT   256

Definition at line 60 of file wc3movie.c.

#define PALETTE_SIZE   (256 * 3)

Definition at line 59 of file wc3movie.c.

Referenced by wc3_read_header().

#define PALT_TAG   MKTAG('P', 'A', 'L', 'T')

Definition at line 39 of file wc3movie.c.

Referenced by wc3_read_header().

#define PC__TAG   MKTAG('_', 'P', 'C', '_')

Definition at line 35 of file wc3movie.c.

Referenced by wc3_read_header().

#define SHOT_TAG   MKTAG('S', 'H', 'O', 'T')

Definition at line 42 of file wc3movie.c.

Referenced by wc3_read_packet().

#define SIZE_TAG   MKTAG('S', 'I', 'Z', 'E')

Definition at line 38 of file wc3movie.c.

Referenced by wc3_read_header().

#define SOND_TAG   MKTAG('S', 'O', 'N', 'D')

Definition at line 36 of file wc3movie.c.

Referenced by wc3_read_header().

#define TEXT_TAG   MKTAG('T', 'E', 'X', 'T')

Definition at line 44 of file wc3movie.c.

Referenced by wc3_read_packet().

#define VGA__TAG   MKTAG('V', 'G', 'A', ' ')

Definition at line 43 of file wc3movie.c.

Referenced by wc3_read_packet().

#define WC3_AUDIO_BITS   16

Definition at line 54 of file wc3movie.c.

Referenced by wc3_read_header().

#define WC3_AUDIO_CHANNELS   1

Definition at line 53 of file wc3movie.c.

Referenced by wc3_read_header().

#define WC3_DEFAULT_HEIGHT   165

Definition at line 49 of file wc3movie.c.

Referenced by wc3_read_header().

#define WC3_DEFAULT_WIDTH   320

Definition at line 48 of file wc3movie.c.

Referenced by wc3_read_header().

#define WC3_FRAME_FPS   15

Definition at line 57 of file wc3movie.c.

Referenced by wc3_read_header().

#define WC3_SAMPLE_RATE   22050

Definition at line 52 of file wc3movie.c.

Referenced by wc3_read_header().


Function Documentation

static int wc3_probe ( AVProbeData p  )  [static]

Definition at line 123 of file wc3movie.c.

static int wc3_read_close ( AVFormatContext s  )  [static]

Definition at line 369 of file wc3movie.c.

static int wc3_read_header ( AVFormatContext s,
AVFormatParameters ap 
) [static]

Definition at line 135 of file wc3movie.c.

static int wc3_read_packet ( AVFormatContext s,
AVPacket pkt 
) [static]

Definition at line 273 of file wc3movie.c.


Variable Documentation

Initial value:

 {
    "wc3movie",
    NULL_IF_CONFIG_SMALL("Wing Commander III movie format"),
    sizeof(Wc3DemuxContext),
    wc3_probe,
    wc3_read_header,
    wc3_read_packet,
    wc3_read_close,
}

Definition at line 378 of file wc3movie.c.

const unsigned char wc3_pal_lookup[] [static]

palette lookup table that does gamma correction

can be calculated by this formula: for i between 0 and 251 inclusive: wc3_pal_lookup[i] = round(pow(i / 256.0, 0.8) * 256); values 252, 253, 254 and 255 are all 0xFD calculating this at runtime should not cause any rounding issues, the maximum difference between the table values and the calculated doubles is about 0.497527

Definition at line 87 of file wc3movie.c.

Referenced by wc3_read_header().


Generated on Fri Oct 26 02:36:55 2012 for FFmpeg by  doxygen 1.5.8