xine-lib: xine-lib-1.2.12/src/demuxers/demux_film.c File Reference

xine-lib 1.2.12

Data Structures | Macros | Functions
demux_film.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 | film_sample_t
struct | demux_film_t

## Macros
#define | LOG_MODULE "demux_film"
#define | LOG_VERBOSE
#define | DEBUG_FILM_LOAD 0
#define | DEBUG_FILM_DEMUX 0
#define | FOURCC_TAG BE_FOURCC
#define | FILM_TAG FOURCC_TAG('F', 'I', 'L', 'M')
#define | FDSC_TAG FOURCC_TAG('F', 'D', 'S', 'C')
#define | STAB_TAG FOURCC_TAG('S', 'T', 'A', 'B')
#define | CVID_TAG FOURCC_TAG('c', 'v', 'i', 'd')

## Functions
static int | probe_film_file (input_plugin_t *input, int *film_header_size)
static int | open_film_file (demux_film_t *film, int film_header_size)
static int | demux_film_send_chunk (demux_plugin_t *this_gen)
static void | demux_film_send_headers (demux_plugin_t *this_gen)
static int | demux_film_seek (demux_plugin_t *this_gen, off_t start_pos, int start_time, int playing)
static void | demux_film_dispose (demux_plugin_t *this_gen)
static int | demux_film_get_status (demux_plugin_t *this_gen)
static int | demux_film_get_stream_length (demux_plugin_t *this_gen)
static uint32_t | demux_film_get_capabilities (demux_plugin_t *this_gen)
static int | demux_film_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_film_init_plugin (xine_t *xine, const void *data)

## Macro Definition Documentation

## ◆ CVID_TAG

#define CVID_TAG FOURCC_TAG('c', 'v', 'i', 'd')

## ◆ DEBUG_FILM_DEMUX

#define DEBUG_FILM_DEMUX 0

## ◆ DEBUG_FILM_LOAD

#define DEBUG_FILM_LOAD 0

## ◆ FDSC_TAG

#define FDSC_TAG FOURCC_TAG('F', 'D', 'S', 'C')

## ◆ FILM_TAG

#define FILM_TAG FOURCC_TAG('F', 'I', 'L', 'M')

## ◆ FOURCC_TAG

#define FOURCC_TAG BE_FOURCC

## ◆ LOG_MODULE

#define LOG_MODULE "demux_film"

## ◆ LOG_VERBOSE

#define LOG_VERBOSE

## ◆ STAB_TAG

#define STAB_TAG FOURCC_TAG('S', 'T', 'A', 'B')

## Function Documentation

## ◆ demux_film_dispose()

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

References _x_freep().

Referenced by open_plugin().

## ◆ demux_film_get_capabilities()

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

References DEMUX_CAP_NOCAP.

Referenced by open_plugin().

## ◆ demux_film_get_optional_data()

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

References DEMUX_OPTIONAL_UNSUPPORTED.

Referenced by open_plugin().

## ◆ demux_film_get_status()

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

Referenced by open_plugin().

## ◆ demux_film_get_stream_length()

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

Referenced by open_plugin().

## ◆ demux_film_init_plugin()

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

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

## ◆ demux_film_seek()

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

References _x_demux_flush_engine(), DEMUX_FINISHED, DEMUX_OK, input(), and INPUT_IS_SEEKABLE.

Referenced by open_plugin().

## ◆ demux_film_send_chunk()

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

References _x_demux_control_newpts(), BUF_FLAG_FRAME_END, BUF_FLAG_FRAMERATE, BUF_FLAG_KEYFRAME, BUF_FLAG_SEEK, BUF_VIDEO_CINEPAK, BUF_VIDEO_SEGA, buf_element_s::content, DEBUG_FILM_DEMUX, buf_element_s::decoder_flags, buf_element_s::decoder_info, DEMUX_FINISHED, buf_element_s::extra_info, buf_element_s::free_buffer, input(), extra_info_s::input_normpos, extra_info_s::input_time, llprintf, buf_element_s::max_size, NULL, buf_element_s::pts, buf_element_s::size, and buf_element_s::type.

Referenced by open_plugin().

## ◆ demux_film_send_headers()

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

References _x_demux_control_start(), _x_stream_info_set(), BUF_AUDIO_LPCM_BE, 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, buf_element_s::size, buf_element_s::type, XINE_STREAM_INFO_AUDIO_BITS, XINE_STREAM_INFO_AUDIO_CHANNELS, XINE_STREAM_INFO_AUDIO_SAMPLERATE, XINE_STREAM_INFO_HAS_AUDIO, XINE_STREAM_INFO_HAS_VIDEO, XINE_STREAM_INFO_VIDEO_FOURCC, XINE_STREAM_INFO_VIDEO_HEIGHT, and XINE_STREAM_INFO_VIDEO_WIDTH.

Referenced by open_plugin().

## ◆ open_film_file()

static int open_film_file | ( | demux_film_t * | film,
|  | int | film_header_size
| ) |  |
| static

References _, _X_BE_16, _X_BE_32, _x_fourcc_to_buf_video(), _x_report_video_fourcc(), film_sample_t::audio, demux_film_t::audio_bits, demux_film_t::audio_channels, demux_film_t::audio_type, demux_film_t::bih, xine_bmiheader::biHeight, xine_bmiheader::biWidth, BUF_AUDIO_LPCM_BE, BUF_VIDEO_CINEPAK, BUF_VIDEO_SEGA, BUF_VIDEO_UNKNOWN, demux_film_t::data_size, demux_film_t::data_start, DEBUG_FILM_LOAD, film_sample_t::duration, FDSC_TAG, demux_film_t::frequency, input_plugin_s::get_current_pos, input_plugin_s::get_length, demux_film_t::input, demux_film_t::interleave_buffer, film_sample_t::keyframe, llprintf, LOG_MODULE, film_sample_t::pts, input_plugin_s::read, demux_film_t::sample_count, film_sample_t::sample_offset, demux_film_t::sample_rate, film_sample_t::sample_size, demux_film_t::sample_table, input_plugin_s::seek, STAB_TAG, demux_film_t::stream, demux_film_t::total_time, demux_film_t::version, demux_film_t::video_codec, demux_film_t::video_type, xine_stream_s::xine, xine_log(), XINE_LOG_MSG, and xine_xcalloc().

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_film_dispose(), demux_film_get_capabilities(), demux_film_get_optional_data(), demux_film_get_status(), demux_film_get_stream_length(), demux_film_seek(), demux_film_send_chunk(), demux_film_send_headers(), DEMUX_FINISHED, input(), METHOD_BY_CONTENT, METHOD_BY_MRL, METHOD_EXPLICIT, NULL, open_film_file(), and probe_film_file().

Referenced by demux_film_init_plugin().

## ◆ probe_film_file()

static int probe_film_file | ( | input_plugin_t * | input,
|  | int * | film_header_size
| ) |  |
| static

References _X_BE_32, _x_demux_read_header(), _x_is_fourcc(), DEBUG_FILM_LOAD, input(), and llprintf.

Referenced by open_plugin().