xine-lib 1.2.11
Data Structures | Macros | Functions | Variables
demux_wc3movie.c File Reference
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <xine/xine_internal.h>
#include <xine/xineutils.h>
#include <xine/compat.h>
#include <xine/demux.h>
#include "bswap.h"
#include "group_games.h"

Data Structures

struct  demux_mve_t
 

Macros

#define LOG_MODULE   "demux_wc3movie"
 
#define LOG_VERBOSE
 
#define FOURCC_TAG   BE_FOURCC
 
#define FORM_TAG   FOURCC_TAG('F', 'O', 'R', 'M')
 
#define MOVE_TAG   FOURCC_TAG('M', 'O', 'V', 'E')
 
#define PC_TAG   FOURCC_TAG('_', 'P', 'C', '_')
 
#define SOND_TAG   FOURCC_TAG('S', 'O', 'N', 'D')
 
#define PALT_TAG   FOURCC_TAG('P', 'A', 'L', 'T')
 
#define INDX_TAG   FOURCC_TAG('I', 'N', 'D', 'X')
 
#define BNAM_TAG   FOURCC_TAG('B', 'N', 'A', 'M')
 
#define SIZE_TAG   FOURCC_TAG('S', 'I', 'Z', 'E')
 
#define BRCH_TAG   FOURCC_TAG('B', 'R', 'C', 'H')
 
#define SHOT_TAG   FOURCC_TAG('S', 'H', 'O', 'T')
 
#define VGA_TAG   FOURCC_TAG('V', 'G', 'A', ' ')
 
#define AUDI_TAG   FOURCC_TAG('A', 'U', 'D', 'I')
 
#define TEXT_TAG   FOURCC_TAG('T', 'E', 'X', 'T')
 
#define PALETTE_SIZE   256
 
#define PALETTE_CHUNK_SIZE   (PALETTE_SIZE * 3)
 
#define WC3_FRAMERATE   15
 
#define WC3_PTS_INC   (90000 / 15)
 
#define WC3_USUAL_WIDTH   320
 
#define WC3_USUAL_HEIGHT   165
 
#define WC3_HEADER_SIZE   16
 
#define PREAMBLE_SIZE   8
 

Functions

static int demux_mve_send_chunk (demux_plugin_t *this_gen)
 
static void demux_mve_send_headers (demux_plugin_t *this_gen)
 
static int probe_mve_file (input_plugin_t *input)
 
static int open_mve_file (demux_mve_t *this)
 
static int demux_mve_seek (demux_plugin_t *this_gen, off_t start_pos, int start_time, int playing)
 
static void demux_mve_dispose (demux_plugin_t *this_gen)
 
static int demux_mve_get_status (demux_plugin_t *this_gen)
 
static int demux_mve_get_stream_length (demux_plugin_t *this_gen)
 
static uint32_t demux_mve_get_capabilities (demux_plugin_t *this_gen)
 
static int demux_mve_get_optional_data (demux_plugin_t *this_gen, void *data, int data_type)
 
static demux_plugin_topen_plugin (demux_class_t *class_gen, xine_stream_t *stream, input_plugin_t *input)
 
void * demux_wc3movie_init_plugin (xine_t *xine, const void *data)
 

Variables

static const unsigned char wc3_pal_lookup []
 

Macro Definition Documentation

◆ AUDI_TAG

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

◆ BNAM_TAG

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

◆ BRCH_TAG

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

◆ FORM_TAG

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

◆ FOURCC_TAG

#define FOURCC_TAG   BE_FOURCC

◆ INDX_TAG

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

◆ LOG_MODULE

#define LOG_MODULE   "demux_wc3movie"

◆ LOG_VERBOSE

#define LOG_VERBOSE

◆ MOVE_TAG

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

◆ PALETTE_CHUNK_SIZE

#define PALETTE_CHUNK_SIZE   (PALETTE_SIZE * 3)

◆ PALETTE_SIZE

#define PALETTE_SIZE   256

◆ PALT_TAG

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

◆ PC_TAG

#define PC_TAG   FOURCC_TAG('_', 'P', 'C', '_')

◆ PREAMBLE_SIZE

#define PREAMBLE_SIZE   8

◆ SHOT_TAG

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

◆ SIZE_TAG

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

◆ SOND_TAG

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

◆ TEXT_TAG

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

◆ VGA_TAG

#define VGA_TAG   FOURCC_TAG('V', 'G', 'A', ' ')

◆ WC3_FRAMERATE

#define WC3_FRAMERATE   15

◆ WC3_HEADER_SIZE

#define WC3_HEADER_SIZE   16

◆ WC3_PTS_INC

#define WC3_PTS_INC   (90000 / 15)

◆ WC3_USUAL_HEIGHT

#define WC3_USUAL_HEIGHT   165

◆ WC3_USUAL_WIDTH

#define WC3_USUAL_WIDTH   320

Function Documentation

◆ demux_mve_dispose()

static void demux_mve_dispose ( demux_plugin_t this_gen)
static

References _x_freep().

Referenced by open_plugin().

◆ demux_mve_get_capabilities()

static uint32_t demux_mve_get_capabilities ( demux_plugin_t this_gen)
static

References DEMUX_CAP_NOCAP.

Referenced by open_plugin().

◆ demux_mve_get_optional_data()

static int demux_mve_get_optional_data ( demux_plugin_t this_gen,
void *  data,
int  data_type 
)
static

References DEMUX_OPTIONAL_UNSUPPORTED.

Referenced by open_plugin().

◆ demux_mve_get_status()

static int demux_mve_get_status ( demux_plugin_t this_gen)
static

Referenced by open_plugin().

◆ demux_mve_get_stream_length()

static int demux_mve_get_stream_length ( demux_plugin_t this_gen)
static

Referenced by open_plugin().

◆ demux_mve_seek()

static int demux_mve_seek ( demux_plugin_t this_gen,
off_t  start_pos,
int  start_time,
int  playing 
)
static

◆ demux_mve_send_chunk()

static int demux_mve_send_chunk ( demux_plugin_t this_gen)
static

◆ demux_mve_send_headers()

static void demux_mve_send_headers ( demux_plugin_t this_gen)
static

◆ demux_wc3movie_init_plugin()

void * demux_wc3movie_init_plugin ( xine_t xine,
const void *  data 
)

◆ open_mve_file()

static int open_mve_file ( demux_mve_t this)
static

◆ open_plugin()

static demux_plugin_t * open_plugin ( demux_class_t class_gen,
xine_stream_t stream,
input_plugin_t input 
)
static

◆ probe_mve_file()

static int probe_mve_file ( input_plugin_t input)
static

Variable Documentation

◆ wc3_pal_lookup

const unsigned char wc3_pal_lookup[]
static

Referenced by open_mve_file().