xine-lib 1.2.11
|
#include <time.h>
#include <pthread.h>
#include <errno.h>
#include <xine/xine_internal.h>
#include <xine/spu.h>
#include <xine/osd.h>
#include "xine-engine/bswap.h"
Data Structures | |
struct | sparse_array_entry_t |
struct | sparse_array_t |
struct | visible_region_t |
struct | page_t |
struct | region_t |
union | clut_union_t |
struct | dds_t |
struct | dvbsub_func_t |
struct | dvb_spu_decoder_s |
Macros | |
#define | LOG_MODULE "spudvb" |
#define | MAX_REGIONS 16 |
#define | SPU_MAX_WIDTH 1920 |
#define | SPU_MAX_HEIGHT 1080 |
#define | YUVA(r, g, b, a) (clut_t) { COMPUTE_V(r, g, b), COMPUTE_U(r, g, b), COMPUTE_V(r, g, b), a } |
#define | GETBIT(s, v1, v2, tr) |
Typedefs | |
typedef struct dvb_spu_decoder_s | dvb_spu_decoder_t |
Functions | |
static void | sparse_array_new (sparse_array_t *sa) |
static void | sparse_array_delete (sparse_array_t *sa) |
static int | _sparse_array_find (sparse_array_t *sa, uint32_t key, uint32_t *pos) |
static void | _sparse_array_sort (sparse_array_t *sa) |
static int | sparse_array_set (sparse_array_t *sa, uint32_t key, uint32_t value) |
static int | sparse_array_get (sparse_array_t *sa, uint32_t key, uint32_t *value) |
static void | sparse_array_unset (sparse_array_t *sa, uint32_t key, uint32_t mask) |
static void | reset_clut (dvbsub_func_t *dvbsub) |
static void | update_region (region_t *reg, int region_id, int region_width, int region_height, int fill, int fill_color) |
static void | do_plot (region_t *reg, int x, int y, unsigned char pixel) |
static void | plot (dvbsub_func_t *dvbsub, int r, unsigned int run_length, unsigned char pixel) |
static const uint8_t * | lookup_lut (const dvbsub_func_t *dvbsub, int r) |
static unsigned char | next_datum (dvbsub_func_t *dvbsub, int width) |
static void | decode_2bit_pixel_code_string (dvbsub_func_t *dvbsub, int r, int n) |
static void | decode_4bit_pixel_code_string (dvbsub_func_t *dvbsub, int r, int n) |
static void | decode_8bit_pixel_code_string (dvbsub_func_t *dvbsub, int r, int n) |
static void | set_clut (dvbsub_func_t *dvbsub, int CLUT_id, int CLUT_entry_id, int Y_value, int Cr_value, int Cb_value, int T_value) |
static void | process_CLUT_definition_segment (dvbsub_func_t *dvbsub) |
static void | process_pixel_data_sub_block (dvbsub_func_t *dvbsub, int r, unsigned int pos, int ofs, int n) |
static void | process_page_composition_segment (dvbsub_func_t *dvbsub) |
static void | process_region_composition_segment (dvbsub_func_t *dvbsub) |
static void | process_object_data_segment (dvbsub_func_t *dvbsub) |
static void | process_display_definition_segment (dvbsub_func_t *dvbsub) |
static void | unlock_mutex_cancellation_func (void *mutex_gen) |
static void | _hide_overlays_locked (dvb_spu_decoder_t *this) |
static void * | dvbsub_timer_func (void *this_gen) |
static void | update_osd (dvb_spu_decoder_t *this, region_t *reg) |
static void | downscale_region_image (region_t *reg, unsigned char *dest, int dest_width) |
static void | recalculate_trans (dvb_spu_decoder_t *this) |
static void | draw_subtitles (dvb_spu_decoder_t *this) |
static void | _hide_overlays (dvb_spu_decoder_t *this) |
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_stopped (dvb_spu_decoder_t *this) |
static void | spudec_dispose (spu_decoder_t *this_gen) |
static spu_decoder_t * | dvb_spu_class_open_plugin (spu_decoder_class_t *class_gen, xine_stream_t *stream) |
static void * | init_spu_decoder_plugin (xine_t *xine, const void *data) |
Variables | |
static const uint32_t | supported_types [] = { BUF_SPU_DVB, 0 } |
static const decoder_info_t | spudec_info |
const plugin_info_t xine_plugin_info[] | EXPORTED |
#define GETBIT | ( | s, | |
v1, | |||
v2, | |||
tr | |||
) |
#define LOG_MODULE "spudvb" |
#define MAX_REGIONS 16 |
#define SPU_MAX_HEIGHT 1080 |
#define SPU_MAX_WIDTH 1920 |
#define YUVA | ( | r, | |
g, | |||
b, | |||
a | |||
) | (clut_t) { COMPUTE_V(r, g, b), COMPUTE_U(r, g, b), COMPUTE_V(r, g, b), a } |
typedef struct dvb_spu_decoder_s dvb_spu_decoder_t |
|
static |
References _hide_overlays_locked().
Referenced by spudec_decode_data(), and spudec_reset().
|
static |
Referenced by _hide_overlays(), and dvbsub_timer_func().
|
static |
References sparse_array_t::entries, key, sparse_array_entry_t::key, and sparse_array_t::sorted_entries.
Referenced by _sparse_array_sort(), and sparse_array_get().
|
static |
|
static |
References dvbsub_func_t::i, dvbsub_func_t::i_bits, lookup_lut(), next_datum(), and plot().
Referenced by process_pixel_data_sub_block().
|
static |
References dvbsub_func_t::i, dvbsub_func_t::i_bits, lookup_lut(), next_datum(), and plot().
Referenced by process_pixel_data_sub_block().
|
static |
References dvbsub_func_t::buf, dvbsub_func_t::i, and plot().
Referenced by process_pixel_data_sub_block().
|
static |
References region_t::empty, region_t::height, region_t::img, width, and region_t::width.
Referenced by plot().
|
static |
References region_t::height, region_t::img, and region_t::width.
Referenced by draw_subtitles().
|
static |
|
static |
References _x_spu_calculate_opacity(), _x_spu_get_opacity(), dvbsub_timer_func(), LOG_MODULE, MAX_REGIONS, NULL, sparse_array_new(), spudec_decode_data(), spudec_discontinuity(), spudec_dispose(), spudec_dispose_stopped(), spudec_reset(), xine_stream_s::xine, XINE_VERBOSITY_LOG, and xprintf.
Referenced by init_spu_decoder_plugin().
|
static |
References _hide_overlays_locked(), lprintf, NULL, and unlock_mutex_cancellation_func().
Referenced by dvb_spu_class_open_plugin().
|
static |
References dvb_spu_class_open_plugin(), N_, NULL, and spu_decoder_class_s::open_plugin.
|
static |
References dvbsub_func_t::compat_depth, dvbsub_func_t::lut, dvbsub_func_t::lut24, dvbsub_func_t::lut28, and dvbsub_func_t::lut48.
Referenced by decode_2bit_pixel_code_string(), and decode_4bit_pixel_code_string().
|
static |
References dvbsub_func_t::buf, dvbsub_func_t::i, dvbsub_func_t::i_bits, next_datum(), and width.
Referenced by decode_2bit_pixel_code_string(), decode_4bit_pixel_code_string(), and next_datum().
|
static |
References do_plot(), dvbsub_func_t::regions, dvbsub_func_t::x, and dvbsub_func_t::y.
Referenced by decode_2bit_pixel_code_string(), decode_4bit_pixel_code_string(), and decode_8bit_pixel_code_string().
|
static |
References dvbsub_func_t::buf, dvbsub_func_t::i, lprintf, and set_clut().
Referenced by spudec_decode_data().
|
static |
References _X_BE_16, dvbsub_func_t::buf, dvbsub_func_t::dds, dds_t::height, dvbsub_func_t::i, lprintf, dds_t::version_number, dds_t::width, and dds_t::windowed.
Referenced by spudec_decode_data().
|
static |
|
static |
References dvbsub_func_t::buf, dvbsub_func_t::i, visible_region_t::is_visible, lprintf, MAX_REGIONS, dvbsub_func_t::max_regions, dvbsub_func_t::page, page_t::page_id, page_t::page_state, page_t::page_time_out, page_t::page_version_number, page_t::regions, visible_region_t::x, and visible_region_t::y.
Referenced by spudec_decode_data().
|
static |
References dvbsub_func_t::buf, decode_2bit_pixel_code_string(), decode_4bit_pixel_code_string(), decode_8bit_pixel_code_string(), dvbsub_func_t::i, lprintf, dvbsub_func_t::lut, dvbsub_func_t::lut24, dvbsub_func_t::lut28, dvbsub_func_t::lut48, dvbsub_func_t::x, and dvbsub_func_t::y.
Referenced by process_object_data_segment().
|
static |
References dvbsub_func_t::buf, region_t::CLUT_id, dvbsub_func_t::compat_depth, dvbsub_func_t::i, lprintf, MAX_REGIONS, dvbsub_func_t::max_regions, dvbsub_func_t::object_pos, dvbsub_func_t::page, page_t::page_id, dvbsub_func_t::regions, sparse_array_set(), sparse_array_unset(), update_region(), and region_t::version_number.
Referenced by spudec_decode_data().
|
static |
References _x_spu_calculate_opacity(), _x_spu_get_opacity(), clut_union_t::c, dvbsub_func_t::colours, clut_s::foo, dvbsub_func_t::max_regions, dvbsub_func_t::trans, and clut_s::y.
Referenced by spudec_decode_data().
|
static |
References dvbsub_func_t::colours, default_clut, GETBIT, dvbsub_func_t::lut, dvbsub_func_t::lut24, dvbsub_func_t::lut28, dvbsub_func_t::lut48, MAX_REGIONS, dvbsub_func_t::trans, and YUVA.
Referenced by spudec_reset().
|
static |
References clut_union_t::c, dvbsub_func_t::colours, clut_s::cr, clut_s::foo, and MAX_REGIONS.
Referenced by process_CLUT_definition_segment().
|
static |
References _x_freep(), sparse_array_t::entries, sparse_array_t::max_entries, sparse_array_t::sorted_entries, and sparse_array_t::used_entries.
Referenced by spudec_dispose_stopped().
|
static |
|
static |
References sparse_array_t::entries, sparse_array_t::max_entries, NULL, sparse_array_t::sorted_entries, and sparse_array_t::used_entries.
Referenced by dvb_spu_class_open_plugin().
|
static |
|
static |
References _sparse_array_sort(), sparse_array_t::entries, key, sparse_array_entry_t::key, NULL, sparse_array_t::sorted_entries, and sparse_array_t::used_entries.
Referenced by process_region_composition_segment().
|
static |
References _hide_overlays(), BUF_FLAG_SPECIAL, BUF_SPECIAL_SPU_DVB_DESCRIPTOR, BUF_SPU_DVB, buf_element_s::content, buf_element_s::decoder_flags, buf_element_s::decoder_info, buf_element_s::decoder_info_ptr, draw_subtitles(), metronom_clock_s::get_current_time, metronom_s::get_option, LOG_MODULE, lprintf, METRONOM_SPU_OFFSET, METRONOM_VPTS_OFFSET, process_CLUT_definition_segment(), process_display_definition_segment(), process_object_data_segment(), process_page_composition_segment(), process_region_composition_segment(), buf_element_s::pts, recalculate_trans(), buf_element_s::size, buf_element_s::type, xine_fast_memcpy, XINE_VERBOSITY_LOG, and xprintf.
Referenced by dvb_spu_class_open_plugin().
|
static |
Referenced by dvb_spu_class_open_plugin().
|
static |
References NULL, and spudec_dispose_stopped().
Referenced by dvb_spu_class_open_plugin().
|
static |
References _x_freep(), MAX_REGIONS, and sparse_array_delete().
Referenced by dvb_spu_class_open_plugin(), and spudec_dispose().
|
static |
References _hide_overlays(), MAX_REGIONS, and reset_clut().
Referenced by dvb_spu_class_open_plugin().
|
static |
Referenced by dvbsub_timer_func().
|
static |
References osd_object_s::height, region_t::height, region_t::img, NULL, region_t::osd, osd_object_s::width, and region_t::width.
Referenced by draw_subtitles().
|
static |
References _x_freep(), region_t::empty, region_t::height, region_t::img, lprintf, SPU_MAX_HEIGHT, SPU_MAX_WIDTH, and region_t::width.
Referenced by process_region_composition_segment().
const plugin_info_t xine_plugin_info [] EXPORTED |
|
static |
|
static |