xine-lib 1.2.13-20230125hg15249
Data Structures | Macros | Functions
demux_ipmovie.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_ipmovie_t
 

Macros

#define LOG_MODULE   "demux_ipmovie"
 
#define LOG_VERBOSE
 
#define IPMOVIE_SIGNATURE   "Interplay MVE File\x1A\0"
 
#define IPMOVIE_SIGNATURE_SIZE   20
 
#define CHUNK_PREAMBLE_SIZE   4
 
#define OPCODE_PREAMBLE_SIZE   4
 
#define CHUNK_INIT_AUDIO   0x0000
 
#define CHUNK_AUDIO_ONLY   0x0001
 
#define CHUNK_INIT_VIDEO   0x0002
 
#define CHUNK_VIDEO   0x0003
 
#define CHUNK_SHUTDOWN   0x0004
 
#define CHUNK_END   0x0005
 
#define CHUNK_BAD   0xFFFF
 
#define OPCODE_END_OF_STREAM   0x00
 
#define OPCODE_END_OF_CHUNK   0x01
 
#define OPCODE_CREATE_TIMER   0x02
 
#define OPCODE_INIT_AUDIO_BUFFERS   0x03
 
#define OPCODE_START_STOP_AUDIO   0x04
 
#define OPCODE_INIT_VIDEO_BUFFERS   0x05
 
#define OPCODE_UNKNOWN_06   0x06
 
#define OPCODE_SEND_BUFFER   0x07
 
#define OPCODE_AUDIO_FRAME   0x08
 
#define OPCODE_SILENCE_FRAME   0x09
 
#define OPCODE_INIT_VIDEO_MODE   0x0A
 
#define OPCODE_CREATE_GRADIENT   0x0B
 
#define OPCODE_SET_PALETTE   0x0C
 
#define OPCODE_SET_PALETTE_COMPRESSED   0x0D
 
#define OPCODE_UNKNOWN_0E   0x0E
 
#define OPCODE_SET_DECODING_MAP   0x0F
 
#define OPCODE_UNKNOWN_10   0x10
 
#define OPCODE_VIDEO_DATA   0x11
 
#define OPCODE_UNKNOWN_12   0x12
 
#define OPCODE_UNKNOWN_13   0x13
 
#define OPCODE_UNKNOWN_14   0x14
 
#define OPCODE_UNKNOWN_15   0x15
 
#define PALETTE_COUNT   256
 

Functions

static int process_ipmovie_chunk (demux_ipmovie_t *this)
 
static int open_ipmovie_file (demux_ipmovie_t *this)
 
static int demux_ipmovie_send_chunk (demux_plugin_t *this_gen)
 
static void demux_ipmovie_send_headers (demux_plugin_t *this_gen)
 
static int demux_ipmovie_seek (demux_plugin_t *this_gen, off_t start_pos, int start_time, int playing)
 
static void demux_ipmovie_dispose (demux_plugin_t *this_gen)
 
static int demux_ipmovie_get_status (demux_plugin_t *this_gen)
 
static int demux_ipmovie_get_stream_length (demux_plugin_t *this_gen)
 
static uint32_t demux_ipmovie_get_capabilities (demux_plugin_t *this_gen)
 
static int demux_ipmovie_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_ipmovie_init_plugin (xine_t *xine, const void *data)
 

Macro Definition Documentation

◆ CHUNK_AUDIO_ONLY

#define CHUNK_AUDIO_ONLY   0x0001

Referenced by process_ipmovie_chunk().

◆ CHUNK_BAD

#define CHUNK_BAD   0xFFFF

◆ CHUNK_END

#define CHUNK_END   0x0005

Referenced by process_ipmovie_chunk().

◆ CHUNK_INIT_AUDIO

#define CHUNK_INIT_AUDIO   0x0000

◆ CHUNK_INIT_VIDEO

#define CHUNK_INIT_VIDEO   0x0002

◆ CHUNK_PREAMBLE_SIZE

#define CHUNK_PREAMBLE_SIZE   4

Referenced by process_ipmovie_chunk().

◆ CHUNK_SHUTDOWN

#define CHUNK_SHUTDOWN   0x0004

Referenced by process_ipmovie_chunk().

◆ CHUNK_VIDEO

#define CHUNK_VIDEO   0x0003

Referenced by process_ipmovie_chunk().

◆ IPMOVIE_SIGNATURE

#define IPMOVIE_SIGNATURE   "Interplay MVE File\x1A\0"

Referenced by open_ipmovie_file().

◆ IPMOVIE_SIGNATURE_SIZE

#define IPMOVIE_SIGNATURE_SIZE   20

Referenced by open_ipmovie_file().

◆ LOG_MODULE

#define LOG_MODULE   "demux_ipmovie"

◆ LOG_VERBOSE

#define LOG_VERBOSE

◆ OPCODE_AUDIO_FRAME

#define OPCODE_AUDIO_FRAME   0x08

Referenced by process_ipmovie_chunk().

◆ OPCODE_CREATE_GRADIENT

#define OPCODE_CREATE_GRADIENT   0x0B

Referenced by process_ipmovie_chunk().

◆ OPCODE_CREATE_TIMER

#define OPCODE_CREATE_TIMER   0x02

Referenced by process_ipmovie_chunk().

◆ OPCODE_END_OF_CHUNK

#define OPCODE_END_OF_CHUNK   0x01

Referenced by process_ipmovie_chunk().

◆ OPCODE_END_OF_STREAM

#define OPCODE_END_OF_STREAM   0x00

Referenced by process_ipmovie_chunk().

◆ OPCODE_INIT_AUDIO_BUFFERS

#define OPCODE_INIT_AUDIO_BUFFERS   0x03

Referenced by process_ipmovie_chunk().

◆ OPCODE_INIT_VIDEO_BUFFERS

#define OPCODE_INIT_VIDEO_BUFFERS   0x05

Referenced by process_ipmovie_chunk().

◆ OPCODE_INIT_VIDEO_MODE

#define OPCODE_INIT_VIDEO_MODE   0x0A

Referenced by process_ipmovie_chunk().

◆ OPCODE_PREAMBLE_SIZE

#define OPCODE_PREAMBLE_SIZE   4

Referenced by process_ipmovie_chunk().

◆ OPCODE_SEND_BUFFER

#define OPCODE_SEND_BUFFER   0x07

Referenced by process_ipmovie_chunk().

◆ OPCODE_SET_DECODING_MAP

#define OPCODE_SET_DECODING_MAP   0x0F

Referenced by process_ipmovie_chunk().

◆ OPCODE_SET_PALETTE

#define OPCODE_SET_PALETTE   0x0C

Referenced by process_ipmovie_chunk().

◆ OPCODE_SET_PALETTE_COMPRESSED

#define OPCODE_SET_PALETTE_COMPRESSED   0x0D

Referenced by process_ipmovie_chunk().

◆ OPCODE_SILENCE_FRAME

#define OPCODE_SILENCE_FRAME   0x09

Referenced by process_ipmovie_chunk().

◆ OPCODE_START_STOP_AUDIO

#define OPCODE_START_STOP_AUDIO   0x04

Referenced by process_ipmovie_chunk().

◆ OPCODE_UNKNOWN_06

#define OPCODE_UNKNOWN_06   0x06

Referenced by process_ipmovie_chunk().

◆ OPCODE_UNKNOWN_0E

#define OPCODE_UNKNOWN_0E   0x0E

Referenced by process_ipmovie_chunk().

◆ OPCODE_UNKNOWN_10

#define OPCODE_UNKNOWN_10   0x10

Referenced by process_ipmovie_chunk().

◆ OPCODE_UNKNOWN_12

#define OPCODE_UNKNOWN_12   0x12

Referenced by process_ipmovie_chunk().

◆ OPCODE_UNKNOWN_13

#define OPCODE_UNKNOWN_13   0x13

Referenced by process_ipmovie_chunk().

◆ OPCODE_UNKNOWN_14

#define OPCODE_UNKNOWN_14   0x14

Referenced by process_ipmovie_chunk().

◆ OPCODE_UNKNOWN_15

#define OPCODE_UNKNOWN_15   0x15

Referenced by process_ipmovie_chunk().

◆ OPCODE_VIDEO_DATA

#define OPCODE_VIDEO_DATA   0x11

Referenced by process_ipmovie_chunk().

◆ PALETTE_COUNT

#define PALETTE_COUNT   256

Function Documentation

◆ demux_ipmovie_dispose()

static void demux_ipmovie_dispose ( demux_plugin_t * this_gen)
static

References _x_freep().

Referenced by open_plugin().

◆ demux_ipmovie_get_capabilities()

static uint32_t demux_ipmovie_get_capabilities ( demux_plugin_t * this_gen)
static

References DEMUX_CAP_NOCAP.

Referenced by open_plugin().

◆ demux_ipmovie_get_optional_data()

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

References DEMUX_OPTIONAL_UNSUPPORTED.

Referenced by open_plugin().

◆ demux_ipmovie_get_status()

static int demux_ipmovie_get_status ( demux_plugin_t * this_gen)
static

Referenced by open_plugin().

◆ demux_ipmovie_get_stream_length()

static int demux_ipmovie_get_stream_length ( demux_plugin_t * this_gen)
static

Referenced by open_plugin().

◆ demux_ipmovie_init_plugin()

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

◆ demux_ipmovie_seek()

static int demux_ipmovie_seek ( demux_plugin_t * this_gen,
off_t start_pos,
int start_time,
int playing )
static

References _x_demux_control_newpts(), and DEMUX_OK.

Referenced by open_plugin().

◆ demux_ipmovie_send_chunk()

static int demux_ipmovie_send_chunk ( demux_plugin_t * this_gen)
static

◆ demux_ipmovie_send_headers()

static void demux_ipmovie_send_headers ( demux_plugin_t * this_gen)
static

◆ open_ipmovie_file()

static int open_ipmovie_file ( demux_ipmovie_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

◆ process_ipmovie_chunk()

static int process_ipmovie_chunk ( demux_ipmovie_t * this)
static