xine-lib: xine-lib-1.2.12/src/spu_dec/spu_decoder.c File Reference

xine-lib 1.2.12

Functions | Variables
spu_decoder.c File Reference
`#include <stdlib.h>`
`#include <unistd.h>`
`#include <pthread.h>`
`#include <string.h>`
`#include <sys/types.h>`
`#include <xine/xine_internal.h>`
`#include <xine/buffer.h>`
`#include "xine-engine/bswap.h"`
`#include <xine/xineutils.h>`
`#include "nav_read.h"`
`#include "nav_types.h"`
`#include "spudec.h"`

## Functions
static void | spudec_decode_data (spu_decoder_t *this_gen, buf_element_t *buf)
static void | spudec_reset (spu_decoder_t *this_gen)
static void | spudec_discontinuity (spu_decoder_t *this_gen)
static void | spudec_dispose (spu_decoder_t *this_gen)
static int | spudec_get_interact_info (spu_decoder_t *this_gen, void *data)
static void | spudec_set_button (spu_decoder_t *this_gen, int32_t button, int32_t show)
static spu_decoder_t * | open_plugin (spu_decoder_class_t *class_gen, xine_stream_t *stream)
static void * | init_plugin (xine_t *xine, const void *data)

## Variables
static const clut_t | default_clut []
static const uint32_t | supported_types [] = { BUF_SPU_DVD, 0 }
static const decoder_info_t | dec_info_data
const plugin_info_t xine_plugin_info[] | EXPORTED

## Function Documentation

## ◆ init_plugin()

static void * init_plugin | ( | xine_t * | xine,
|  | const void * | data
| ) |  |
| static

References lprintf, N_, NULL, open_plugin(), and spu_decoder_class_s::open_plugin.

## ◆ open_plugin()

static spu_decoder_t * open_plugin | ( | spu_decoder_class_t * | class_gen,
|  | xine_stream_t * | stream
| ) |  |
| static

References spudec_state_t::clut, default_clut, xine_video_port_s::get_capabilities, MAX_STREAMS, NULL, spudec_decode_data(), spudec_discontinuity(), spudec_dispose(), spudec_get_interact_info(), spudec_reset(), spudec_set_button(), spudec_decoder_s::state, and xine_stream_s::video_out.

Referenced by init_plugin().

## ◆ spudec_decode_data()

static void spudec_decode_data | ( | spu_decoder_t * | this_gen,
|  | buf_element_t * | buf
| ) |  |
| static

References bswap_32(), BUF_FLAG_PREVIEW, BUF_FLAG_SPECIAL, BUF_SPECIAL_SPU_DVD_SUBTYPE, BUF_SPU_DVD, buf_element_s::content, buf_element_s::decoder_flags, buf_element_s::decoder_info, metronom_s::got_spu_packet, buf_element_s::pts, buf_element_s::size, SPU_DVD_SUBTYPE_CLUT, SPU_DVD_SUBTYPE_NAV, SPU_DVD_SUBTYPE_VOBSUB_PACKAGE, spudec_decode_nav(), spudec_process(), spudec_reassembly(), spudec_update_nav(), buf_element_s::type, XINE_VERBOSITY_DEBUG, and xprintf.

Referenced by open_plugin().

## ◆ spudec_discontinuity()

static void spudec_discontinuity | ( | spu_decoder_t * | this_gen | ) |
| static

References spudec_clear_nav_list().

Referenced by open_plugin().

## ◆ spudec_dispose()

static void spudec_dispose | ( | spu_decoder_t * | this_gen | ) |
| static

References _x_freep(), video_overlay_manager_s::free_handle, MAX_STREAMS, and spudec_clear_nav_list().

Referenced by open_plugin().

## ◆ spudec_get_interact_info()

static int spudec_get_interact_info | ( | spu_decoder_t * | this_gen,
|  | void * | data
| ) |  |
| static

References spudec_update_nav().

Referenced by open_plugin().

## ◆ spudec_reset()

static void spudec_reset | ( | spu_decoder_t * | this_gen | ) |
| static

References video_overlay_manager_s::free_handle, MAX_STREAMS, and spudec_clear_nav_list().

Referenced by open_plugin().

## ◆ spudec_set_button()

static void spudec_set_button | ( | spu_decoder_t * | this_gen,
|  | int32_t | button,
|  | int32_t | show
| ) |  |
| static

References _x_assert, video_overlay_manager_s::add_event, video_overlay_event_s::event_type, video_overlay_manager_s::get_handle, video_overlay_object_s::handle, MAX_OBJECTS, video_overlay_event_s::object, video_overlay_object_s::overlay, OVERLAY_EVENT_HIDE, OVERLAY_EVENT_MENU_BUTTON, video_overlay_object_s::pts, spudec_copy_nav_to_overlay(), spudec_update_nav(), video_overlay_event_s::vpts, XINE_VERBOSITY_DEBUG, and xprintf.

Referenced by open_plugin().

## Variable Documentation

## ◆ dec_info_data

const decoder_info_t dec_info_data
| static

Initial value:
= {
.supported_types = supported_types,
.priority = 5,
}
supported_types
static const uint32_t supported_types[]
Definition: spu_decoder.c:379

## ◆ default_clut

const clut_t default_clut[]
| static

Initial value:
= {
CLUT_Y_CR_CB_INIT(0x00, 0x80, 0x80),
CLUT_Y_CR_CB_INIT(0xbf, 0x80, 0x80),
CLUT_Y_CR_CB_INIT(0x10, 0x80, 0x80),
CLUT_Y_CR_CB_INIT(0x28, 0x6d, 0xef),
CLUT_Y_CR_CB_INIT(0x51, 0xef, 0x5a),
CLUT_Y_CR_CB_INIT(0xbf, 0x80, 0x80),
CLUT_Y_CR_CB_INIT(0x36, 0x80, 0x80),
CLUT_Y_CR_CB_INIT(0x28, 0x6d, 0xef),
CLUT_Y_CR_CB_INIT(0xbf, 0x80, 0x80),
CLUT_Y_CR_CB_INIT(0x51, 0x80, 0x80),
CLUT_Y_CR_CB_INIT(0xbf, 0x80, 0x80),
CLUT_Y_CR_CB_INIT(0x10, 0x80, 0x80),
CLUT_Y_CR_CB_INIT(0x28, 0x6d, 0xef),
CLUT_Y_CR_CB_INIT(0x5c, 0x80, 0x80),
CLUT_Y_CR_CB_INIT(0xbf, 0x80, 0x80),
CLUT_Y_CR_CB_INIT(0x1c, 0x80, 0x80),
}
CLUT_Y_CR_CB_INIT
#define CLUT_Y_CR_CB_INIT(_y, _cr, _cb)
Definition: video_overlay.h:31

Referenced by open_plugin(), and reset_clut().

## ◆ EXPORTED

const plugin_info_t xine_plugin_info [] EXPORTED

Initial value:
= {
{ PLUGIN_SPU_DECODER, 17, "spudec", XINE_VERSION_CODE, &dec_info_data, &init_plugin },
{ PLUGIN_NONE, 0, NULL, 0, NULL, NULL }
}
dec_info_data
static const decoder_info_t dec_info_data
Definition: spu_decoder.c:381
init_plugin
static void * init_plugin(xine_t *xine, const void *data)
Definition: spu_decoder.c:365
XINE_VERSION_CODE
#define XINE_VERSION_CODE
Definition: xine_internal.h:57
NULL
NULL
Definition: xine_plugin.c:78
PLUGIN_NONE
#define PLUGIN_NONE
Definition: xine_plugin.h:29
PLUGIN_SPU_DECODER
#define PLUGIN_SPU_DECODER
Definition: xine_plugin.h:34

## ◆ supported_types

const uint32_t supported_types[] = { BUF_SPU_DVD, 0 }
| static