xine-lib  1.2.10
spudec.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2000-2017 the xine project
3  *
4  * Copyright (C) James Courtier-Dutton James@superbug.demon.co.uk - July 2001
5  *
6  * This file is part of xine, a free video player.
7  *
8  * xine is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * xine is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
21  *
22  * This file was originally part of the OMS program.
23  */
24 
25 #ifndef __SPU_H__
26 #define __SPU_H__
27 
28 #ifdef HAVE_CONFIG_H
29 #include "config.h"
30 #endif
31 
32 #include <inttypes.h>
33 #include <xine/video_out.h>
34 #include <xine/video_overlay.h>
35 #ifdef HAVE_DVDNAV
36 # ifdef HAVE_DVDNAV_NAVTYPES_H
37 # include <dvdnav/nav_types.h>
38 # else
39 # include <dvdread/nav_types.h>
40 # endif
41 #else
42 # include "nav_types.h"
43 #endif
44 
45 #define NUM_SEQ_BUFFERS 50
46 #define MAX_STREAMS 32
47 
48 typedef struct spudec_clut_struct {
49 #ifdef WORDS_BIGENDIAN
50  uint8_t entry0 : 4;
51  uint8_t entry1 : 4;
52  uint8_t entry2 : 4;
53  uint8_t entry3 : 4;
54 #else
55  uint8_t entry1 : 4;
56  uint8_t entry0 : 4;
57  uint8_t entry3 : 4;
58  uint8_t entry2 : 4;
59 #endif
61 
62 typedef struct {
63  uint8_t *buf;
64  uint32_t ra_offs; /* reassembly offset */
65  uint32_t seq_len;
66  uint32_t buf_len;
67  uint32_t cmd_offs;
68  int64_t pts; /* Base PTS of this sequence */
69  int32_t finished; /* Has this control sequence been finished? */
70  uint32_t complete; /* Has this reassembly been finished? */
71  uint32_t broken; /* this SPU is broken and should be dropped */
72 } spudec_seq_t;
73 
74 typedef struct {
75  uint8_t *cmd_ptr;
76 
77  uint32_t field_offs[2];
78  int32_t b_top, o_top;
79  int32_t b_bottom, o_bottom;
80  int32_t b_left, o_left;
81  int32_t b_right, o_right;
82 
83  int32_t modified; /* Was the sub-picture modified? */
84  int32_t visible; /* Must the sub-picture be shown? */
85  int32_t forced_display; /* This overlay is a menu */
86  int32_t delay; /* Delay in 90Khz / 1000 */
87  int32_t need_clut; /* doesn't have the right clut yet */
88  int32_t cur_colors[4];/* current 4 colors been used */
89  int32_t vobsub; /* vobsub must be aligned to bottom */
90 
91  uint32_t clut[16];
93 
94 typedef struct spudec_stream_state_s {
97  int64_t vpts;
98  int64_t pts;
99  int32_t overlay_handle;
101 
102 typedef struct pci_node_s pci_node_t;
103 struct pci_node_s {
104  pci_t pci;
105  uint64_t vpts;
106  pci_node_t *next;
107 };
108 
109 typedef struct spudec_decoder_s {
111 
114 
117  int32_t menu_handle;
118 
120 
122  int ovl_caps;
124  pthread_mutex_t nav_pci_lock;
126  uint32_t buttonN; /* Current button number for highlights */
127  int32_t button_filter; /* Allow highlight changes or not */
130 
131 void spudec_reassembly (xine_t *xine, spudec_seq_t *seq, uint8_t *pkt_data, unsigned pkt_len);
132 void spudec_process( spudec_decoder_t *this, int stream_id);
133 /* the nav functions must be called with the nav_pci_lock held */
138 int spudec_copy_nav_to_overlay(xine_t *xine, pci_t* nav_pci, uint32_t* clut, int32_t button, int32_t mode,
139  vo_overlay_t * overlay, vo_overlay_t * base );
140 
141 #endif
OVERLAY_EVENT_MENU_BUTTON
#define OVERLAY_EVENT_MENU_BUTTON
Definition: video_overlay.h:41
xine_s
Definition: xine_internal.h:80
CMD_SPU_FORCE_DISPLAY
#define CMD_SPU_FORCE_DISPLAY
Definition: spudec.c:563
dec_info_data
static const decoder_info_t dec_info_data
Definition: spu_decoder.c:377
put_y
static int put_y
Definition: spudec.c:734
spudec_decode_nav
void spudec_decode_nav(spudec_decoder_t *this, buf_element_t *buf)
Definition: spudec.c:85
vo_overlay_s::color
uint32_t color[256]
Definition: video_out.h:492
spucmml_decoder_s::font_size
int font_size
Definition: cmml_decoder.c:78
buf_element_s::size
int32_t size
Definition: buffer.h:343
xml_property_s
Definition: xmlparser.h:43
spudec_state_t::visible
int32_t visible
Definition: spudec.h:84
CMD_SPU_SET_PXD_OFFSET
#define CMD_SPU_SET_PXD_OFFSET
Definition: spudec.c:569
spudec_stream_state_s
Definition: spudec.h:94
xine_stream_s
Definition: xine_internal.h:123
spudec_process
void spudec_process(spudec_decoder_t *this, int stream_id)
Definition: spudec.c:379
SPU_DVD_SUBTYPE_CLUT
#define SPU_DVD_SUBTYPE_CLUT
Definition: buffer.h:537
metronom_clock_s
Definition: metronom.h:199
spudec_info
static const decoder_info_t spudec_info
Definition: cmml_decoder.c:551
xine_ui_data_t::str_len
int str_len
Definition: xine.h:1949
PLUGIN_SPU_DECODER
#define PLUGIN_SPU_DECODER
Definition: xine_plugin.h:34
bit_ptr
static uint8_t * bit_ptr[2]
Definition: spudec.c:732
spudec_state_t::need_clut
int32_t need_clut
Definition: spudec.h:87
spudec_seq_t::buf
uint8_t * buf
Definition: spudec.h:63
draw_subtitle
static void draw_subtitle(spucmml_decoder_t *this, int64_t sub_start)
Definition: cmml_decoder.c:202
cmml_anchor_s::href
char * href
Definition: cmml_decoder.c:58
supported_types
static const uint32_t supported_types[]
Definition: cmml_decoder.c:549
xineutils.h
pci_node_s::next
pci_node_t * next
Definition: dxr3_decode_spu.c:96
update_font_size
static void update_font_size(spucmml_decoder_t *this)
Definition: cmml_decoder.c:93
xml_parser_finalize_r
void xml_parser_finalize_r(xml_parser_t *xml_parser)
Definition: xmlparser.c:134
XML_PARSER_CASE_INSENSITIVE
#define XML_PARSER_CASE_INSENSITIVE
Definition: xmlparser.h:28
spudec_state_t
Definition: spudec.h:74
BUF_SPU_DVD
#define BUF_SPU_DVD
Definition: buffer.h:286
CMD_SPU_WIPE
#define CMD_SPU_WIPE
Definition: spudec.c:570
spudec_state_t::o_bottom
int32_t o_bottom
Definition: spudec.h:79
video_overlay_event_s::event_type
uint32_t event_type
Definition: video_overlay.h:60
video_overlay_manager_s::free_handle
void(* free_handle)(video_overlay_manager_t *this_gen, int32_t handle)
Definition: video_out.h:525
update_src_encoding
static void update_src_encoding(void *this_gen, xine_cfg_entry_t *entry)
Definition: cmml_decoder.c:506
xine_cfg_entry_s::str_value
char * str_value
Definition: xine.h:1646
OSD_TEXT1
#define OSD_TEXT1
Definition: osd.h:281
spudec_get_interact_info
static int spudec_get_interact_info(spu_decoder_t *this_gen, void *data)
Definition: spu_decoder.c:213
xml_parser_build_tree_r
int xml_parser_build_tree_r(xml_parser_t *xml_parser, xml_node_t **root_node)
Definition: xmlparser.c:789
spudec_state_t::forced_display
int32_t forced_display
Definition: spudec.h:85
CLUT_Y_CR_CB_INIT
#define CLUT_Y_CR_CB_INIT(_y, _cr, _cb)
Definition: video_overlay.h:31
EXPORTED
const plugin_info_t xine_plugin_info[] EXPORTED
Definition: cmml_decoder.c:556
xine_fast_memcpy
void *(* xine_fast_memcpy)(void *to, const void *from, size_t len)
Definition: memcpy.c:60
xine_event_t
Definition: xine.h:1923
spudec_reset
static void spudec_reset(spu_decoder_t *this_gen)
Definition: spu_decoder.c:150
video_overlay.h
SUBTITLE_SIZE_NUM
@ SUBTITLE_SIZE_NUM
Definition: cmml_decoder.c:44
buf_element_s::decoder_info
uint32_t decoder_info[5]
Definition: buffer.h:353
spudec_state_t::clut
uint32_t clut[16]
Definition: spudec.h:91
vo_overlay_s::hili_color
uint32_t hili_color[256]
Definition: video_out.h:501
spudec_stream_state_s::pts
int64_t pts
Definition: spudec.h:98
video_overlay_object_s::handle
int32_t handle
Definition: video_overlay.h:45
metronom_s::got_spu_packet
int64_t(* got_spu_packet)(metronom_t *self, int64_t pts)
Definition: metronom.h:121
spudec_decoder_s::object
video_overlay_object_t object
Definition: spudec.h:116
_x_meta_info_set
void _x_meta_info_set(xine_stream_t *s, int info, const char *str)
Definition: info_helper.c:321
spudec_decoder_s::last_event_vpts
int64_t last_event_vpts
Definition: spudec.h:128
xine_event_new_queue
xine_event_queue_t * xine_event_new_queue(xine_stream_t *s)
Definition: events.c:330
spudec_state_t::o_right
int32_t o_right
Definition: spudec.h:81
pci_node_s
Definition: dxr3_decode_spu.c:93
xml_property_s::value
char * value
Definition: xmlparser.h:45
spudec_next_line
static int spudec_next_line(vo_overlay_t *spu)
Definition: spudec.c:764
spucmml_class_s::xine
xine_t * xine
Definition: cmml_decoder.c:51
spudec_clear_nav_list
void spudec_clear_nav_list(spudec_decoder_t *this)
Definition: spudec.c:274
spudec_clut_struct
Definition: spudec.h:48
default_clut
static const clut_t default_clut[]
Definition: spu_decoder.c:59
spudec_decode_nav
void spudec_decode_nav(spudec_decoder_t *this, buf_element_t *buf)
Definition: spudec.c:85
spudec_copy_nav_to_overlay
int spudec_copy_nav_to_overlay(xine_t *xine, pci_t *nav_pci, uint32_t *clut, int32_t button, int32_t mode, vo_overlay_t *overlay, vo_overlay_t *base)
Definition: spudec.c:972
spucmml_decoder_s::line_height
int line_height
Definition: cmml_decoder.c:79
SPU_DVD_SUBTYPE_NAV
#define SPU_DVD_SUBTYPE_NAV
Definition: buffer.h:540
spucmml_decoder_s::current_anchor
cmml_anchor_t current_anchor
Definition: cmml_decoder.c:89
video_overlay_event_s::object
video_overlay_object_t object
Definition: video_overlay.h:61
spudec_state_t::modified
int32_t modified
Definition: spudec.h:83
spudec_stream_state_s::state
spudec_state_t state
Definition: spudec.h:96
MAX_OBJECTS
#define MAX_OBJECTS
Definition: video_overlay.h:34
spu_decoder_s
Definition: spu_decoder.h:74
video_overlay_manager_s::get_handle
int32_t(* get_handle)(video_overlay_manager_t *this_gen, int object_type)
Definition: video_out.h:523
CMD_SPU_SET_PALETTE
#define CMD_SPU_SET_PALETTE
Definition: spudec.c:566
update_vertical_offset
static void update_vertical_offset(void *this_gen, xine_cfg_entry_t *entry)
Definition: cmml_decoder.c:440
config_values_s::register_string
char *(* register_string)(config_values_t *self, const char *key, const char *def_value, const char *description, const char *help, int exp_level, xine_config_cb_t changed_cb, void *cb_data)
Definition: configfile.h:106
spucmml_decoder_s::lines
int lines
Definition: cmml_decoder.c:72
field
static int field
Definition: spudec.c:733
vo_overlay_s::hili_bottom
int hili_bottom
Definition: video_out.h:498
xine_video_port_s::get_capabilities
uint32_t(* get_capabilities)(xine_video_port_t *self)
Definition: video_out.h:178
osd_object_s
Definition: osd.h:37
lprintf
#define lprintf(...)
Definition: xineutils.h:620
spudec_clut_struct::entry0
uint8_t entry0
Definition: spudec.h:56
spudec_stream_state_t
struct spudec_stream_state_s spudec_stream_state_t
vo_overlay_s::hili_top
int hili_top
Definition: video_out.h:497
pci_node_s::vpts
uint64_t vpts
Definition: dxr3_decode_spu.c:95
spucmml_decoder_s::vertical_offset
int vertical_offset
Definition: cmml_decoder.c:85
video_overlay_object_s
Definition: video_overlay.h:44
get_width
static int get_width(spucmml_decoder_t *this, char *text)
Definition: cmml_decoder.c:141
XINE_EVENT_INPUT_BUTTON_FORCE
#define XINE_EVENT_INPUT_BUTTON_FORCE
Definition: xine.h:1850
vo_overlay_s
Definition: video_out.h:472
subtitle_size
subtitle_size
Definition: cmml_decoder.c:39
vo_overlay_s::hili_trans
uint8_t hili_trans[256]
Definition: video_out.h:502
vo_overlay_s::rgb_clut
int rgb_clut
Definition: video_out.h:494
spudec_stream_state_s::vpts
int64_t vpts
Definition: spudec.h:97
spudec_seq_t::cmd_offs
uint32_t cmd_offs
Definition: spudec.h:67
spucmml_decoder_s::cached_img_duration
int64_t cached_img_duration
Definition: cmml_decoder.c:77
xml_node_s
Definition: xmlparser.h:58
spudec_decoder_s::spu_decoder
spu_decoder_t spu_decoder
Definition: spudec.h:110
spucmml_class_open_plugin
static spu_decoder_t * spucmml_class_open_plugin(spu_decoder_class_t *class_gen, xine_stream_t *stream)
Definition: cmml_decoder.c:458
OVERLAY_EVENT_HIDE
#define OVERLAY_EVENT_HIDE
Definition: video_overlay.h:40
MAX_STREAMS
#define MAX_STREAMS
Definition: spudec.h:46
spudec_discontinuity
static void spudec_discontinuity(spu_decoder_t *this_gen)
Definition: spu_decoder.c:174
video_out.h
user_data
static void user_data(vdpau_mpeg4_decoder_t *this_gen, uint8_t *buffer, int len)
Definition: vdpau_mpeg4.c:695
xml_node_s::props
struct xml_property_s * props
Definition: xmlparser.h:61
llprintf
#define llprintf(cat,...)
Definition: xineutils.h:642
spudec_stream_state_s::overlay_handle
int32_t overlay_handle
Definition: spudec.h:99
buf_element_s::pts
int64_t pts
Definition: buffer.h:345
render_line
static void render_line(spucmml_decoder_t *this, int x, int y, char *text)
Definition: cmml_decoder.c:190
spudec_decoder_s::output_open
int output_open
Definition: spudec.h:123
spudec_state_t::delay
int32_t delay
Definition: spudec.h:86
vo_overlay_s::hili_right
int hili_right
Definition: video_out.h:500
cmml_anchor_s::text
char * text
Definition: cmml_decoder.c:57
EXPORTED
const plugin_info_t xine_plugin_info[] EXPORTED
Definition: spu_decoder.c:382
NULL
NULL
Definition: xine_plugin.c:78
spudec_decoder_s::stream
xine_stream_t * stream
Definition: spudec.h:112
video_overlay_object_s::overlay
vo_overlay_t * overlay
Definition: video_overlay.h:48
xine_event_send
void xine_event_send(xine_stream_t *s, const xine_event_t *event)
Definition: events.c:194
spudec_state_t::field_offs
uint32_t field_offs[2]
Definition: spudec.h:77
spudec_decoder_s::state
spudec_state_t state
Definition: spudec.h:119
xine_event_dispose_queue
void xine_event_dispose_queue(xine_event_queue_t *queue)
Definition: events.c:379
spudec_decoder_s::spudec_stream_state
spudec_stream_state_t spudec_stream_state[32]
Definition: spudec.h:113
SUB_MAX_TEXT
#define SUB_MAX_TEXT
Definition: cmml_decoder.c:35
spudec_draw_picture
static void spudec_draw_picture(xine_t *xine, spudec_state_t *state, spudec_seq_t *seq, vo_overlay_t *ovl)
Definition: spudec.c:781
_x_freep
static void _x_freep(void *ptr)
Definition: xineutils.h:263
spudec_state_t::cmd_ptr
uint8_t * cmd_ptr
Definition: spudec.h:75
xine_ui_data_t::str
char str[256]
Definition: xine.h:1950
xml_node_s::next
struct xml_node_s * next
Definition: xmlparser.h:63
spucmml_decoder_s::cached_height
int cached_height
Definition: cmml_decoder.c:76
_x_abort
#define _x_abort()
Definition: xine_mpeg2new_decoder.c:50
decoder_info_t
Definition: xine_plugin.h:77
xine_s::config
config_values_t * config
Definition: xine_internal.h:82
width
unsigned int width
Definition: gfontrle.c:4
SUBTITLE_SIZE_SMALL
@ SUBTITLE_SIZE_SMALL
Definition: cmml_decoder.c:40
bswap_32
static always_inline uint32_t bswap_32(uint32_t x)
Definition: ffmpeg_bswap.h:129
video_overlay_event_s::vpts
int64_t vpts
Definition: video_overlay.h:55
XINE_VERSION_CODE
#define XINE_VERSION_CODE
Definition: xine_internal.h:57
CMD_SPU_SET_ALPHA
#define CMD_SPU_SET_ALPHA
Definition: spudec.c:567
SPU_DVD_SUBTYPE_VOBSUB_PACKAGE
#define SPU_DVD_SUBTYPE_VOBSUB_PACKAGE
Definition: buffer.h:539
spucmml_decoder_s::cached_width
int cached_width
Definition: cmml_decoder.c:75
_
#define _(String)
Definition: vcdplayer.h:39
BUF_SPECIAL_SPU_DVD_SUBTYPE
#define BUF_SPECIAL_SPU_DVD_SUBTYPE
Definition: buffer.h:534
config_values_s
Definition: configfile.h:83
BUF_FLAG_SPECIAL
#define BUF_FLAG_SPECIAL
Definition: buffer.h:395
video_overlay_event_s
Definition: video_overlay.h:54
spudec_seq_t::finished
int32_t finished
Definition: spudec.h:69
XINE_EVENT_UI_SET_TITLE
#define XINE_EVENT_UI_SET_TITLE
Definition: xine.h:1816
spudec_seq_t::buf_len
uint32_t buf_len
Definition: spudec.h:66
vo_overlay_s::rle
rle_elem_t * rle
Definition: video_out.h:474
spudec_decode_data
static void spudec_decode_data(spu_decoder_t *this_gen, buf_element_t *buf)
Definition: spu_decoder.c:79
CMD_SPU_SHOW
#define CMD_SPU_SHOW
Definition: spudec.c:564
rle_elem_s::len
uint16_t len
Definition: video_out.h:459
decoder_info_t::supported_types
const uint32_t * supported_types
Definition: xine_plugin.h:78
vo_overlay_s::unscaled
int unscaled
Definition: video_out.h:505
vo_overlay_s::num_rle
int num_rle
Definition: video_out.h:476
XML_PARSER_OK
#define XML_PARSER_OK
Definition: xmlparser.h:32
spudec_clut_struct::entry1
uint8_t entry1
Definition: spudec.h:55
xine_event_queue_s
Definition: xine_internal.h:107
spudec_process_nav
void spudec_process_nav(spudec_decoder_t *this)
Definition: spudec.c:297
spudec_seq_t
Definition: spudec.h:62
SUB_BUFSIZE
#define SUB_BUFSIZE
Definition: cmml_decoder.c:34
xine_event_create_listener_thread
int xine_event_create_listener_thread(xine_event_queue_t *queue, xine_event_listener_cb_t callback, void *user_data)
Definition: events.c:509
xml_node_s::child
struct xml_node_s * child
Definition: xmlparser.h:62
SUBTITLE_SIZE_LARGE
@ SUBTITLE_SIZE_LARGE
Definition: cmml_decoder.c:42
metronom_clock_s::get_current_time
int64_t(* get_current_time)(metronom_clock_t *self)
Definition: metronom.h:239
spu_decoder_class_s
Definition: spu_decoder.h:42
spucmml_decoder_s::spu_decoder
spu_decoder_t spu_decoder
Definition: cmml_decoder.c:63
spudec_seq_t::ra_offs
uint32_t ra_offs
Definition: spudec.h:64
buf_element_s
Definition: buffer.h:337
xml_node_s::data
char * data
Definition: xmlparser.h:60
spucmml_decoder_s::stream
xine_stream_t * stream
Definition: cmml_decoder.c:66
spudec_discover_clut
static void spudec_discover_clut(xine_t *xine, spudec_state_t *state, vo_overlay_t *ovl)
Definition: spudec.c:871
spudec_reassembly
void spudec_reassembly(xine_t *xine, spudec_seq_t *seq, uint8_t *pkt_data, unsigned pkt_len)
XINE_VERBOSITY_DEBUG
#define XINE_VERBOSITY_DEBUG
Definition: xine.h:426
xine_stream_s::video_out
xine_video_port_t *volatile video_out
Definition: xine_internal.h:135
cmml_anchor_s
Definition: cmml_decoder.c:56
vo_overlay_s::width
int width
Definition: video_out.h:479
buffer.h
xml_node_s::name
char * name
Definition: xmlparser.h:59
spudec_state_t::vobsub
int32_t vobsub
Definition: spudec.h:89
spudec_clear_nav_list
void spudec_clear_nav_list(spudec_decoder_t *this)
Definition: spudec.c:274
spudec_decoder_s::button_filter
int32_t button_filter
Definition: spudec.h:127
config_values_s::xine
xine_t * xine
Definition: configfile.h:255
spudec_seq_t::seq_len
uint32_t seq_len
Definition: spudec.h:65
SUBTITLE_SIZE_NORMAL
@ SUBTITLE_SIZE_NORMAL
Definition: cmml_decoder.c:41
spudec_copy_nav_to_overlay
int spudec_copy_nav_to_overlay(xine_t *xine, pci_t *nav_pci, uint32_t *clut, int32_t button, int32_t mode, vo_overlay_t *overlay, vo_overlay_t *base)
Definition: spudec.c:972
spucmml_decoder_s::subtitle_size
subtitle_size subtitle_size
Definition: cmml_decoder.c:84
spudec_decoder_s::pci_cur
pci_node_t pci_cur
Definition: spudec.h:125
BUF_SPU_CMML
#define BUF_SPU_CMML
Definition: buffer.h:293
spudec_state_t::cur_colors
int32_t cur_colors[4]
Definition: spudec.h:88
spucmml_decoder_t
struct spucmml_decoder_s spucmml_decoder_t
video_overlay_manager_s::add_event
int32_t(* add_event)(video_overlay_manager_t *this_gen, void *event)
Definition: video_out.h:527
spudec_update_nav
void spudec_update_nav(spudec_decoder_t *this)
Definition: spudec.c:285
video_overlay_manager_s
Definition: video_out.h:518
spucmml_decoder_s::osd
osd_object_t * osd
Definition: cmml_decoder.c:87
get_bits
static unsigned int get_bits(unsigned int bits)
Definition: spudec.c:736
height
unsigned int height
Definition: gfontrle.c:5
xine_cfg_entry_s
Definition: xine.h:1632
xine_cfg_entry_s::num_value
int num_value
Definition: xine.h:1653
spucmml_decoder_s::font
const char * font
Definition: cmml_decoder.c:83
vo_overlay_s::hili_left
int hili_left
Definition: video_out.h:499
vo_overlay_s::trans
uint8_t trans[256]
Definition: video_out.h:493
spucmml_decoder_s::slave_started
int slave_started
Definition: cmml_decoder.c:81
spucmml_class_s
Definition: cmml_decoder.c:48
open_plugin
static spu_decoder_t * open_plugin(spu_decoder_class_t *class_gen, xine_stream_t *stream)
Definition: spu_decoder.c:314
mode
enable disable number of frames of telecine pattern sync required before mode change make frames evenly spaced for film mode(24 fps)" ) PARAM_ITEM( POST_PARAM_TYPE_BOOL
config_values_s::unregister_callback
void(* unregister_callback)(config_values_t *self, const char *key)
Definition: configfile.h:191
CMD_SPU_EOF
#define CMD_SPU_EOF
Definition: spudec.c:571
MINFOUND
#define MINFOUND
Definition: spudec.c:870
spudec_seq_t::broken
uint32_t broken
Definition: spudec.h:71
xine_ui_data_t
Definition: xine.h:1947
xml_parser_s
Definition: xmlparser.h:67
metronom_s
Definition: metronom.h:71
bswap.h
buf_element_s::content
unsigned char * content
Definition: buffer.h:341
vo_overlay_s::x
int x
Definition: video_out.h:477
spudec_do_commands
static void spudec_do_commands(xine_t *xine, spudec_state_t *state, spudec_seq_t *seq, vo_overlay_t *ovl)
Definition: spudec.c:573
spudec_decoder_t
struct spudec_decoder_s spudec_decoder_t
spudec_discontinuity
static void spudec_discontinuity(spu_decoder_t *this_gen)
Definition: cmml_decoder.c:416
spudec_reassembly
void spudec_reassembly(xine_t *xine, spudec_seq_t *seq, uint8_t *pkt_data, unsigned int pkt_len)
Definition: spudec.c:316
update_osd_font
static void update_osd_font(void *this_gen, xine_cfg_entry_t *entry)
Definition: cmml_decoder.c:448
PLUGIN_NONE
#define PLUGIN_NONE
Definition: xine_plugin.h:29
spudec_clut_struct::entry2
uint8_t entry2
Definition: spudec.h:58
xine_ui_data_t::num_buttons
int num_buttons
Definition: xine.h:1948
xml_property_s::next
struct xml_property_s * next
Definition: xmlparser.h:46
xine_internal.h
spudec.h
spudec_clut_struct::entry3
uint8_t entry3
Definition: spudec.h:57
buf_element_s::decoder_flags
uint32_t decoder_flags
Definition: buffer.h:350
spudec_process
void spudec_process(spudec_decoder_t *this, int stream_id)
Definition: spudec.c:379
config.h
spudec_seq_t::complete
uint32_t complete
Definition: spudec.h:70
xine_event_t::type
int type
Definition: xine.h:1929
spudec_stream_state_s::ra_seq
spudec_seq_t ra_seq
Definition: spudec.h:95
spucmml_class_s::src_encoding
const char * src_encoding
Definition: cmml_decoder.c:50
init_spu_decoder_plugin
static void * init_spu_decoder_plugin(xine_t *xine, const void *data)
Definition: cmml_decoder.c:523
spu_decoder_class_s::open_plugin
spu_decoder_t *(* open_plugin)(spu_decoder_class_t *this_gen, xine_stream_t *stream)
Definition: spu_decoder.h:47
CMD_SPU_HIDE
#define CMD_SPU_HIDE
Definition: spudec.c:565
spucmml_decoder_s::text
char text[5][1024]
Definition: cmml_decoder.c:73
spudec_set_button
static void spudec_set_button(spu_decoder_t *this_gen, int32_t button, int32_t show)
Definition: spu_decoder.c:228
buf_element_s::type
uint32_t type
Definition: buffer.h:362
LOG_WIDTH
#define LOG_WIDTH
Definition: cmml_decoder.c:32
rle_elem_s::color
uint16_t color
Definition: video_out.h:460
spudec_dispose
static void spudec_dispose(spu_decoder_t *this_gen)
Definition: cmml_decoder.c:421
spudec_clut_t
struct spudec_clut_struct spudec_clut_t
vo_overlay_s::y
int y
Definition: video_out.h:478
LOG_OSD
#define LOG_OSD
Definition: cmml_decoder.c:30
supported_types
static const uint32_t supported_types[]
Definition: spu_decoder.c:375
clut_s
Definition: alphablend.h:44
xml_property_s::name
char * name
Definition: xmlparser.h:44
spudec_update_nav
void spudec_update_nav(spudec_decoder_t *this)
Definition: spudec.c:285
spucmml_decoder_s::master_started
int master_started
Definition: cmml_decoder.c:80
spucmml_class_t
struct spucmml_class_s spucmml_class_t
spudec_reset
static void spudec_reset(spu_decoder_t *this_gen)
Definition: cmml_decoder.c:410
XINE_EVENT_UI_NUM_BUTTONS
#define XINE_EVENT_UI_NUM_BUTTONS
Definition: xine.h:1823
spudec_decoder_s::buttonN
uint32_t buttonN
Definition: spudec.h:126
spudec_decoder_s::ovl_caps
int ovl_caps
Definition: spudec.h:122
cmml_anchor_t
struct cmml_anchor_s cmml_anchor_t
spudec_decoder_s::overlay
vo_overlay_t overlay
Definition: spudec.h:121
spudec_dispose
static void spudec_dispose(spu_decoder_t *this_gen)
Definition: spu_decoder.c:183
spudec_state_t::o_left
int32_t o_left
Definition: spudec.h:80
pci_node_s::pci
pci_t pci
Definition: dxr3_decode_spu.c:94
spudec_process_nav
void spudec_process_nav(spudec_decoder_t *this)
Definition: spudec.c:297
spudec_decoder_s::nav_pci_lock
pthread_mutex_t nav_pci_lock
Definition: spudec.h:124
spudec_decoder_s::event
video_overlay_event_t event
Definition: spudec.h:115
video_overlay_object_s::pts
int64_t pts
Definition: video_overlay.h:47
xml_parser_init_r
xml_parser_t * xml_parser_init_r(const char *buf, int size, int mode)
Definition: xmlparser.c:116
plugin_info_t
Definition: xine_plugin.h:55
spudec_decode_data
static void spudec_decode_data(spu_decoder_t *this_gen, buf_element_t *buf)
Definition: cmml_decoder.c:242
MAX_STREAMS
#define MAX_STREAMS
Definition: xine_ogg_demuxer.c:85
spudec_state_t::o_top
int32_t o_top
Definition: spudec.h:78
bits
#define bits
xprintf
#define xprintf(xine, verbose,...)
Definition: xineutils.h:664
spudec_seq_t::pts
int64_t pts
Definition: spudec.h:68
init_plugin
static void * init_plugin(xine_t *xine, const void *data)
Definition: spu_decoder.c:361
put_x
static int put_x
Definition: spudec.c:734
spu_decoder_class_dispose
static void spu_decoder_class_dispose(spu_decoder_class_t *this_gen)
Definition: cmml_decoder.c:514
LOG_SCHEDULING
#define LOG_SCHEDULING
Definition: cmml_decoder.c:31
spudec_decoder_s
Definition: spudec.h:109
vo_overlay_s::data_size
int data_size
Definition: video_out.h:475
N_
#define N_(String)
Definition: xineintl.h:47
rle_elem_s
Definition: video_out.h:458
spucmml_decoder_s
Definition: cmml_decoder.c:62
CMD_SPU_SET_SIZE
#define CMD_SPU_SET_SIZE
Definition: spudec.c:568
XINE_EVENT_FRAME_FORMAT_CHANGE
#define XINE_EVENT_FRAME_FORMAT_CHANGE
Definition: xine.h:1818
BUF_FLAG_PREVIEW
#define BUF_FLAG_PREVIEW
Definition: buffer.h:380
vo_overlay_s::height
int height
Definition: video_out.h:480
XINE_META_INFO_TITLE
#define XINE_META_INFO_TITLE
Definition: xine.h:1062
OVERLAY_EVENT_SHOW
#define OVERLAY_EVENT_SHOW
Definition: video_overlay.h:39
spudec_decoder_s::menu_handle
int32_t menu_handle
Definition: spudec.h:117