xine-lib: xine-lib-1.2.13/src/demuxers/demux_iff.c File Reference

xine-lib 1.2.13-20230125hg15249

Data Structures | Macros | Functions
demux_iff.c File Reference
`#include <stdio.h>`
`#include <fcntl.h>`
`#include <unistd.h>`
`#include <string.h>`
`#include <stdlib.h>`
`#include "group_video.h"`
`#include <xine/xine_internal.h>`
`#include <xine/xineutils.h>`
`#include <xine/demux.h>`
`#include <xine/buffer.h>`
`#include "bswap.h"`
`#include "iff.h"`

## Data Structures
struct | demux_iff_t

## Macros
#define | LOG_MODULE "demux_iff"

## Functions
static int8_t | delta_decode_block (const int8_t *source, int32_t n, int8_t *dest, int8_t x, const int8_t *table)
static void | delta_decode (int8_t *dest, const int8_t *source, int32_t n, const int8_t *table)
static int | read_iff_chunk (demux_iff_t *this)
static int | open_iff_file (demux_iff_t *this)
static int | demux_iff_send_chunk (demux_plugin_t *this_gen)
static void | demux_iff_send_headers (demux_plugin_t *this_gen)
static int | demux_iff_seek (demux_plugin_t *this_gen, off_t start_pos, int start_time, int playing)
static void | demux_iff_dispose (demux_plugin_t *this_gen)
static int | demux_iff_get_status (demux_plugin_t *this_gen)
static int | demux_iff_get_stream_length (demux_plugin_t *this_gen)
static uint32_t | demux_iff_get_capabilities (demux_plugin_t *this_gen)
static int | demux_iff_get_optional_data (demux_plugin_t *this_gen, void *data, int data_type)
static demux_plugin_t * | open_plugin (demux_class_t *class_gen, xine_stream_t *stream, input_plugin_t *input)
void * | demux_iff_init_class (xine_t *xine, const void *data)

## Macro Definition Documentation

## ◆ LOG_MODULE

#define LOG_MODULE "demux_iff"

## Function Documentation

## ◆ delta_decode()

static void delta_decode | ( | int8_t * | dest,
|  | const int8_t * | source,
|  | int32_t | n,
|  | const int8_t * | table )
| static

References delta_decode_block().

Referenced by demux_iff_send_chunk().

## ◆ delta_decode_block()

static int8_t delta_decode_block | ( | const int8_t * | source,
|  | int32_t | n,
|  | int8_t * | dest,
|  | int8_t | x,
|  | const int8_t * | table )
| static

Referenced by delta_decode().

## ◆ demux_iff_dispose()

static void demux_iff_dispose | ( | demux_plugin_t * | this_gen | ) |
| static

Referenced by open_plugin().

## ◆ demux_iff_get_capabilities()

static uint32_t demux_iff_get_capabilities | ( | demux_plugin_t * | this_gen | ) |
| static

References DEMUX_CAP_NOCAP.

Referenced by open_plugin().

## ◆ demux_iff_get_optional_data()

static int demux_iff_get_optional_data | ( | demux_plugin_t * | this_gen,
|  | void * | data,
|  | int | data_type )
| static

References DEMUX_OPTIONAL_UNSUPPORTED.

Referenced by open_plugin().

## ◆ demux_iff_get_status()

static int demux_iff_get_status | ( | demux_plugin_t * | this_gen | ) |
| static

Referenced by open_plugin().

## ◆ demux_iff_get_stream_length()

static int demux_iff_get_stream_length | ( | demux_plugin_t * | this_gen | ) |
| static

Referenced by open_plugin().

## ◆ demux_iff_init_class()

void * demux_iff_init_class | ( | xine_t * | xine,
|  | const void * | data )

References demux_plugin_s::dispose, N_, NULL, demux_class_s::open_plugin, and open_plugin().

## ◆ demux_iff_seek()

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

References _x_demux_flush_engine(), DEMUX_OK, IFF_16SV_CHUNK, IFF_8SVX_CHUNK, IFF_ANIM_CHUNK, IFF_ILBM_CHUNK, input(), and INPUT_IS_SEEKABLE.

Referenced by open_plugin().

## ◆ demux_iff_send_chunk()

static int demux_iff_send_chunk | ( | demux_plugin_t * | this_gen | ) |
| static

References _X_BE_16, BUF_FLAG_FRAME_END, BUF_FLAG_FRAMERATE, BUF_FLAG_HEADER, BUF_FLAG_SPECIAL, BUF_SPECIAL_PALETTE, buf_element_s::content, buf_element_s::decoder_flags, buf_element_s::decoder_info, buf_element_s::decoder_info_ptr, delta_decode(), DEMUX_FINISHED, DEMUX_OK, exponential, buf_element_s::extra_info, fibonacci, buf_element_s::free_buffer, IFF_16SV_CHUNK, IFF_8SVX_CHUNK, IFF_ILBM_CHUNK, input(), extra_info_s::input_normpos, extra_info_s::input_time, LEFT, buf_element_s::max_size, max_volume, buf_element_s::mem, MONO, NULL, PAN, buf_element_s::pts, read_iff_chunk(), RIGHT, buf_element_s::size, SND_COMPRESSION_EXPONENTIAL, SND_COMPRESSION_FIBONACCI, STEREO, buf_element_s::type, XINE_VERBOSITY_LOG, and xprintf.

Referenced by open_plugin().

## ◆ demux_iff_send_headers()

static void demux_iff_send_headers | ( | demux_plugin_t * | this_gen | ) |
| static

References _x_demux_control_start(), _x_meta_info_set(), _x_stream_info_set(), BUF_FLAG_FRAME_END, BUF_FLAG_FRAMERATE, BUF_FLAG_HEADER, BUF_FLAG_STDHEADER, buf_element_s::content, buf_element_s::decoder_flags, buf_element_s::decoder_info, DEMUX_OK, IFF_16SV_CHUNK, IFF_8SVX_CHUNK, IFF_ANIM_CHUNK, IFF_ILBM_CHUNK, buf_element_s::size, buf_element_s::type, XINE_META_INFO_ARTIST, XINE_META_INFO_COMMENT, XINE_META_INFO_TITLE, XINE_STREAM_INFO_AUDIO_BITS, XINE_STREAM_INFO_AUDIO_CHANNELS, XINE_STREAM_INFO_AUDIO_SAMPLERATE, XINE_STREAM_INFO_FRAME_DURATION, XINE_STREAM_INFO_HAS_AUDIO, XINE_STREAM_INFO_HAS_VIDEO, XINE_STREAM_INFO_VIDEO_HEIGHT, and XINE_STREAM_INFO_VIDEO_WIDTH.

Referenced by open_plugin().

## ◆ open_iff_file()

static int open_iff_file | ( | demux_iff_t * | this | ) |
| static

References _X_BE_32, _x_demux_read_header(), IFF_16SV_CHUNK, IFF_8SVX_CHUNK, IFF_ANIM_CHUNK, IFF_FORM_CHUNK, IFF_ILBM_CHUNK, IFF_SIGNATURE_SIZE, input(), NULL, and read_iff_chunk().

Referenced by open_plugin().

## ◆ open_plugin()

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

References xine_stream_s::content_detection_method, DEMUX_FINISHED, demux_iff_dispose(), demux_iff_get_capabilities(), demux_iff_get_optional_data(), demux_iff_get_status(), demux_iff_get_stream_length(), demux_iff_seek(), demux_iff_send_chunk(), demux_iff_send_headers(), input(), METHOD_BY_CONTENT, METHOD_BY_MRL, METHOD_EXPLICIT, NULL, open_iff_file(), and input_plugin_s::seek.

Referenced by demux_iff_init_class().

## ◆ read_iff_chunk()

static int read_iff_chunk | ( | demux_iff_t * | this | ) |
| static

References _, _X_BE_16, _X_BE_32, BUF_AUDIO_LPCM_BE, BUF_VIDEO_BITPLANE, BUF_VIDEO_BITPLANE_BR1, CAMG_PAL, IFF_16SV_CHUNK, IFF_8SVX_CHUNK, IFF_ANHD_CHUNK, IFF_ANIM_CHUNK, IFF_ANNO_CHUNK, IFF_ATAK_CHUNK, IFF_AUTH_CHUNK, IFF_BMHD_CHUNK, IFF_BODY_CHUNK, IFF_CAMG_CHUNK, IFF_CCRT_CHUNK, IFF_CHAN_CHUNK, IFF_CMAP_CHUNK, IFF_COPY_CHUNK, IFF_CRNG_CHUNK, IFF_DEST_CHUNK, IFF_DLTA_CHUNK, IFF_DPAN_CHUNK, IFF_DPI_CHUNK, IFF_DPPS_CHUNK, IFF_FORM_CHUNK, IFF_FVER_CHUNK, IFF_GRAB_CHUNK, IFF_ILBM_CHUNK, IFF_JUNK_CHUNK, IFF_JUNK_SIZE, IFF_NAME_CHUNK, IFF_PAN_CHUNK, IFF_RLSE_CHUNK, IFF_SIGNATURE_SIZE, IFF_SPRT_CHUNK, IFF_TEXT_CHUNK, IFF_VHDR_CHUNK, input(), LEFT, max_volume, MONO, NULL, PAN, PCM_BLOCK_ALIGN, PIC_COMPRESSION_BYTERUN1, PIC_COMPRESSION_NONE, PIC_SIZE_OF_COLOR_REGISTER, RIGHT, SND_COMPRESSION_EXPONENTIAL, SND_COMPRESSION_FIBONACCI, SND_COMPRESSION_NONE, STEREO, xine_log(), XINE_LOG_MSG, XINE_VERBOSITY_LOG, and xprintf.

Referenced by demux_iff_send_chunk(), and open_iff_file().