xine-lib  1.2.10
yuv2rgb.h
Go to the documentation of this file.
1 /*
2  * yuv2rgb.h
3  *
4  * Copyright (C) 2001-2018 the xine project
5  * This file is part of xine, a free video player.
6  *
7  * based on work from mpeg2dec:
8  * Copyright (C) 1999-2001 Aaron Holtzman <aholtzma@ess.engr.uvic.ca>
9  *
10  * This file is part of mpeg2dec, a free MPEG-2 video stream decoder.
11  *
12  * mpeg2dec is free software; you can redistribute it and/or modify
13  * it under the terms of the GNU General Public License as published by
14  * the Free Software Foundation; either version 2 of the License, or
15  * (at your option) any later version.
16  *
17  * mpeg2dec is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20  * GNU General Public License for more details.
21  *
22  * You should have received a copy of the GNU General Public License
23  * along with this program; if not, write to the Free Software
24  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
25  */
26 
27 #ifndef XINE_YUV2RGB_H
28 #define XINE_YUV2RGB_H
29 
30 #include <inttypes.h>
31 
32 #include <xine/attributes.h>
33 
34 typedef struct yuv2rgb_s yuv2rgb_t;
35 
37 
38 /*
39  * function types for functions which can be replaced
40  * by hardware-accelerated versions
41  */
42 
43 typedef void (*yuv2rgb_fun_t) (yuv2rgb_t *this,
44  uint8_t *restrict image,
45  const uint8_t *restrict py,
46  const uint8_t *restrict pu,
47  const uint8_t *restrict pv);
48 
49 typedef void (*yuy22rgb_fun_t) (yuv2rgb_t *this,
50  uint8_t *restrict image,
51  const uint8_t *restrict p);
52 
53 typedef uint32_t (*yuv2rgb_single_pixel_fun_t) (yuv2rgb_t *this, uint8_t y, uint8_t u, uint8_t v);
54 
55 /*
56  * modes supported - feel free to implement yours
57  */
58 
59 #define MODE_8_RGB 1
60 #define MODE_8_BGR 2
61 #define MODE_15_RGB 3
62 #define MODE_15_BGR 4
63 #define MODE_16_RGB 5
64 #define MODE_16_BGR 6
65 #define MODE_24_RGB 7
66 #define MODE_24_BGR 8
67 #define MODE_32_RGB 9
68 #define MODE_32_BGR 10
69 #define MODE_8_GRAY 11
70 #define MODE_PALETTE 12
71 
72 /*
73  * colormatrix values - (mpeg_matrix_index << 1) | fullrange
74  */
75 
76 #define CM_DEFAULT 10
77 #define CM_SD 10
78 #define CM_HD 2
79 #define CM_FULLRANGE 1
80 
81 struct yuv2rgb_s {
82  /*
83  * configure converter for scaling factors
84  */
85  int (*configure) (yuv2rgb_t *this,
86  int source_width, int source_height,
87  int y_stride, int uv_stride,
88  int dest_width, int dest_height,
89  int rgb_stride);
90 
91  /*
92  * start a new field or frame if dest is NULL
93  */
94  int (*next_slice) (yuv2rgb_t *this, uint8_t **dest);
95 
96  /*
97  * free resources
98  */
99  void (*dispose) (yuv2rgb_t *this);
100 
101  /*
102  * this is the function to call for the yuv2rgb and scaling process
103  */
105 
106  /*
107  * this is the function to call for the yuy2->rgb and scaling process
108  */
110 
111  /*
112  * this is the function to call for the yuv2rgb for a single pixel
113  * (used for converting clut colors)
114  */
115 
117 };
118 
119 /*
120  * convenience class to easily create a lot of converters
121  */
122 
124  yuv2rgb_t* (*create_converter) (yuv2rgb_factory_t *this);
125 
126  /*
127  * set color space conversion levels
128  * for all converters produced by this factory
129  */
131  int brightness, int contrast, int saturation, int colormatrix);
132 
133  /*
134  * free resources
135  */
136  void (*dispose) (yuv2rgb_factory_t *this);
137 };
138 
139 yuv2rgb_factory_t *yuv2rgb_factory_init (int mode, int swapped, const uint8_t *colormap) XINE_PROTECTED;
140 
141 
142 #endif /* XINE_YUV2RGB_H */
xine_mutex_t
Definition: xineutils.h:137
free_xml_property
static void free_xml_property(xml_property_t *property)
Definition: xmlparser.c:102
scale_line_5_8
static void scale_line_5_8(const uint8_t *restrict source, uint8_t *restrict dest, int width, int step)
Definition: yuv2rgb.c:1126
STATE_T_STRING_DOUBLE
@ STATE_T_STRING_DOUBLE
Definition: xmllexer.c:158
scale_line_15_16
static void scale_line_15_16(const uint8_t *restrict source, uint8_t *restrict dest, int width, int step)
Definition: yuv2rgb.c:291
xml_escape_quote_t
xml_escape_quote_t
Definition: xmlparser.h:95
xml_property_s
Definition: xmlparser.h:43
lexer_entities
static struct @70 lexer_entities[]
yuv2rgb_private.h
UTF16BE
@ UTF16BE
Definition: xmllexer.c:55
xine_mutex_t::locked_by
char * locked_by
Definition: xineutils.h:140
static_xml_parser
xml_parser_t * static_xml_parser
Definition: xmlparser.c:63
T_TI_START
#define T_TI_START
Definition: xmllexer.h:44
utf
utf
Definition: xmllexer.c:55
XINE_MALLOC
#define XINE_MALLOC
Definition: attributes.h:139
yuv2rgb_s::next_slice
int(* next_slice)(yuv2rgb_t *this, uint8_t **dest)
Definition: yuv2rgb.h:94
yuv2rgb_s
Definition: yuv2rgb.h:81
STATE_Q_NODE
@ STATE_Q_NODE
Definition: xmlparser.c:196
xine_mutex_unlock
int xine_mutex_unlock(xine_mutex_t *mutex, const char *who)
Definition: xine_mutex.c:71
xineutils.h
STATE_SEPAR
@ STATE_SEPAR
Definition: xmllexer.c:152
MODE_16_RGB
#define MODE_16_RGB
Definition: yuv2rgb.h:63
find_scale_line_func
static scale_line_func_t find_scale_line_func(int step)
Definition: yuv2rgb.c:1347
xml_parser_finalize_r
void xml_parser_finalize_r(xml_parser_t *xml_parser)
Definition: xmlparser.c:134
STATE_IDENT
@ STATE_IDENT
Definition: xmllexer.c:163
STATE_STRING
@ STATE_STRING
Definition: xmlparser.c:193
XML_PARSER_CASE_INSENSITIVE
#define XML_PARSER_CASE_INSENSITIVE
Definition: xmlparser.h:28
yuv2rgb_c_init
static int yuv2rgb_c_init(yuv2rgb_factory_impl_t *this)
Definition: yuv2rgb.c:2691
STATE_IDLE
@ STATE_IDLE
Definition: xmllexer.c:150
xine_profiler_start_count
void xine_profiler_start_count(int id)
Definition: monitor.c:88
yuv2rgb_factory_s
Definition: yuv2rgb.h:123
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
yuy22rgb_c_24_bgr
static void yuy22rgb_c_24_bgr(yuv2rgb_t *this_gen, uint8_t *restrict _dst, const uint8_t *restrict _p)
Definition: yuv2rgb.c:2948
MODE_32_RGB
#define MODE_32_RGB
Definition: yuv2rgb.h:67
xine_mutex_init
int xine_mutex_init(xine_mutex_t *mutex, const pthread_mutexattr_t *mutexattr, const char *id)
Definition: xine_mutex.c:33
CDATA
@ CDATA
Definition: xmllexer.c:105
xmlparser.h
xine_fast_memcpy
void *(* xine_fast_memcpy)(void *to, const void *from, size_t len)
Definition: memcpy.c:60
T_C_STOP
#define T_C_STOP
Definition: xmllexer.h:43
STATE_Q_ATTRIBUTE
@ STATE_Q_ATTRIBUTE
Definition: xmlparser.c:197
NORMAL
@ NORMAL
Definition: xmllexer.c:103
contrast
contrast
Definition: eq.c:160
yuv2rgb_factory_impl_s::yuv2rgb_fun
yuv2rgb_fun_t yuv2rgb_fun
Definition: yuv2rgb_private.h:93
cdata
static const char cdata[]
Definition: xmlparser.c:85
yuv2rgb_factory_impl_s::yuv2rgb_single_pixel_fun
yuv2rgb_single_pixel_fun_t yuv2rgb_single_pixel_fun
Definition: yuv2rgb_private.h:95
yuv2rgb_c_16
static void yuv2rgb_c_16(yuv2rgb_t *this_gen, uint8_t *_dst, const uint8_t *restrict _py, const uint8_t *restrict _pu, const uint8_t *restrict _pv)
Definition: yuv2rgb.c:1911
xml_parser_free_tree_rec
static void xml_parser_free_tree_rec(xml_node_t *current_node, int free_next)
Definition: xmlparser.c:147
XML_PARSER_RELAXED
#define XML_PARSER_RELAXED
Definition: xmlparser.h:36
T_EQUAL
#define T_EQUAL
Definition: xmllexer.h:37
MM_ACCEL_X86_MMX
#define MM_ACCEL_X86_MMX
Definition: xineutils.h:164
MM_ACCEL_MLIB
#define MM_ACCEL_MLIB
Definition: xineutils.h:161
yuv2rgb_c_palette
static void yuv2rgb_c_palette(yuv2rgb_t *this_gen, uint8_t *restrict _dst, const uint8_t *restrict _py, const uint8_t *restrict _pu, const uint8_t *restrict _pv)
Definition: yuv2rgb.c:2230
T_CDATA_STOP
#define T_CDATA_STOP
Definition: xmllexer.h:49
xml_parser_free_props
static void xml_parser_free_props(xml_property_t *current_property)
Definition: xmlparser.c:139
div_round
static int div_round(int dividend, int divisor)
Definition: yuv2rgb.c:2362
xml_parser_get_property_bool
int xml_parser_get_property_bool(const xml_node_t *node, const char *name, int def_value)
Definition: xmlparser.c:830
mmx_yuv2rgb_set_csc_levels
void mmx_yuv2rgb_set_csc_levels(yuv2rgb_factory_t *this, int brightness, int contrast, int saturation, int colormatrix)
xml_property_s::value
char * value
Definition: xmlparser.h:45
xml_parser_s::lexer
struct lexer * lexer
Definition: xmlparser.h:68
scale_line_2
static void scale_line_2(const uint8_t *restrict source, uint8_t *restrict dest, int width, int step)
Definition: yuv2rgb.c:1394
yuv2rgb_s::yuy22rgb_fun
yuy22rgb_fun_t yuy22rgb_fun
Definition: yuv2rgb.h:109
STATE_T_STRING_SINGLE
@ STATE_T_STRING_SINGLE
Definition: xmllexer.c:157
STATE_ATTRIBUTE
@ STATE_ATTRIBUTE
Definition: xmlparser.c:189
xml_parser_get_node_internal
static int xml_parser_get_node_internal(xml_parser_t *xml_parser, char **token_buffer, int *token_buffer_size, char **pname_buffer, int *pname_buffer_size, char **nname_buffer, int *nname_buffer_size, xml_node_t *current_node, char *root_names[], int rec, int flags)
Definition: xmlparser.c:250
yuy22rgb_c_32
static void yuy22rgb_c_32(yuv2rgb_t *this_gen, uint8_t *restrict _dst, const uint8_t *restrict _p)
Definition: yuv2rgb.c:2785
T_EOF
#define T_EOF
Definition: xmllexer.h:30
xine_profiler_allocate_slot
int xine_profiler_allocate_slot(const char *label)
Definition: monitor.c:51
lexer::lexbuf_pos
int lexbuf_pos
Definition: xmllexer.h:57
T_SEPAR
#define T_SEPAR
Definition: xmllexer.h:32
MODE_32_BGR
#define MODE_32_BGR
Definition: yuv2rgb.h:68
S_ISREG
#define S_ISREG(mode)
Definition: input_file.c:464
lexer::lexbuf
const char * lexbuf
Definition: xmllexer.h:55
yuv2rgb_single_pixel_init
static int yuv2rgb_single_pixel_init(yuv2rgb_factory_impl_t *this)
Definition: yuv2rgb.c:2735
lexer::lex_mode
int lex_mode
Definition: xmllexer.h:58
xine_mutex_destroy
int xine_mutex_destroy(xine_mutex_t *mutex)
Definition: xine_mutex.c:78
lprintf
#define lprintf(...)
Definition: xineutils.h:620
T_M_START_2
#define T_M_START_2
Definition: xmllexer.h:34
lexer_init_r
struct lexer * lexer_init_r(const char *buf, int size)
Definition: xmllexer.c:108
STATE_Q_NODE_CLOSE
@ STATE_Q_NODE_CLOSE
Definition: xmlparser.c:198
yuv2rgb_factory_s::dispose
void(* dispose)(yuv2rgb_factory_t *this)
Definition: yuv2rgb.h:136
T_C_START
#define T_C_START
Definition: xmllexer.h:42
new_xml_property
static xml_property_t * new_xml_property(void)
Definition: xmlparser.c:94
DST1
#define DST1(i)
Definition: yuv2rgb.c:1458
yuv2rgb_single_pixel_16
static uint32_t yuv2rgb_single_pixel_16(yuv2rgb_t *this_gen, uint8_t y, uint8_t u, uint8_t v)
Definition: yuv2rgb.c:2646
yuv2rgb_single_pixel_24_rgb
static uint32_t yuv2rgb_single_pixel_24_rgb(yuv2rgb_t *this_gen, uint8_t y, uint8_t u, uint8_t v)
Definition: yuv2rgb.c:2618
STATE_NODE
@ STATE_NODE
Definition: xmlparser.c:188
Q_STATE
#define Q_STATE(CURRENT, NEW)
Definition: xmlparser.c:247
T_TI_STOP
#define T_TI_STOP
Definition: xmllexer.h:45
yuv2rgb_fun_t
void(* yuv2rgb_fun_t)(yuv2rgb_t *this, uint8_t *restrict image, const uint8_t *restrict py, const uint8_t *restrict pu, const uint8_t *restrict pv)
Definition: yuv2rgb.h:43
xml_escape_string_internal
static int xml_escape_string_internal(char *buf, const char *s, xml_escape_quote_t quote_type)
Definition: xmlparser.c:843
DST2RGB
#define DST2RGB(i)
Definition: yuv2rgb.c:1476
xml_node_s
Definition: xmlparser.h:58
xine_mutex_t::id
char id[80]
Definition: xineutils.h:139
yuv2rgb_s::yuv2rgb_single_pixel_fun
yuv2rgb_single_pixel_fun_t yuv2rgb_single_pixel_fun
Definition: yuv2rgb.h:116
scale_line_9_16
static void scale_line_9_16(const uint8_t *restrict source, uint8_t *restrict dest, int width, int step)
Definition: yuv2rgb.c:870
yuy22rgb_c_24_rgb
static void yuy22rgb_c_24_rgb(yuv2rgb_t *this_gen, uint8_t *restrict _dst, const uint8_t *restrict _p)
Definition: yuv2rgb.c:2867
attributes.h
yuv2rgb_impl_s
Definition: yuv2rgb_private.h:45
lexer_get_token_d
int lexer_get_token_d(char **_tok, int *_tok_size, int fixed)
Definition: xmllexer.c:167
T_CDATA_START
#define T_CDATA_START
Definition: xmllexer.h:48
new_xml_node
static xml_node_t * new_xml_node(void)
Definition: xmlparser.c:77
_X_BE_16
#define _X_BE_16(x)
Definition: bswap.h:40
_X_LE_16
#define _X_LE_16(x)
Definition: bswap.h:58
lexer::lex_malloc
char * lex_malloc
Definition: xmllexer.h:60
xml_node_s::props
struct xml_property_s * props
Definition: xmlparser.h:61
lexer_get_token
int lexer_get_token(char *tok, int tok_size)
Definition: xmllexer.c:600
yuv2rgb_factory_impl_s::table_gV
int table_gV[256]
Definition: yuv2rgb_private.h:88
scale_line_45_64
static void scale_line_45_64(const uint8_t *restrict source, uint8_t *restrict dest, int width, int step)
Definition: yuv2rgb.c:609
xml_parser_s::mode
int mode
Definition: xmlparser.h:69
_yuv2rgb_set_csc_levels
static int _yuv2rgb_set_csc_levels(yuv2rgb_factory_t *this_gen, int brightness, int contrast, int saturation, int colormatrix)
Definition: yuv2rgb.c:2370
MODE_8_BGR
#define MODE_8_BGR
Definition: yuv2rgb.h:60
STATE_Q_STRING
@ STATE_Q_STRING
Definition: xmlparser.c:201
yuv2rgb_factory_impl_s::table_bU
void * table_bU[256]
Definition: yuv2rgb_private.h:89
NULL
NULL
Definition: xine_plugin.c:78
MODE_PALETTE
#define MODE_PALETTE
Definition: yuv2rgb.h:70
STATE_T_C_STOP
@ STATE_T_C_STOP
Definition: xmllexer.c:162
scale_line_1_1
static void scale_line_1_1(const uint8_t *restrict source, uint8_t *restrict dest, int width, int step)
Definition: yuv2rgb.c:1336
yuv2rgb_factory_impl_s::cmap
const uint8_t * cmap
Definition: yuv2rgb_private.h:83
_x_assert
#define _x_assert(exp)
Definition: xineutils.h:550
xine_mm_accel
uint32_t xine_mm_accel(void)
Definition: cpu_accel.c:390
yuv2rgb_dispose
static void yuv2rgb_dispose(yuv2rgb_t *this_gen)
Definition: yuv2rgb.c:92
STATE_T_DASHDASH
@ STATE_T_DASHDASH
Definition: xmllexer.c:161
_x_freep
static void _x_freep(void *ptr)
Definition: xineutils.h:263
STATE_Q_ATTRIBUTE_EQUALS
@ STATE_Q_ATTRIBUTE_EQUALS
Definition: xmlparser.c:200
yuv2rgb_single_pixel_8
static uint32_t yuv2rgb_single_pixel_8(yuv2rgb_t *this_gen, uint8_t y, uint8_t u, uint8_t v)
Definition: yuv2rgb.c:2658
xml_parser_dump_node
static void xml_parser_dump_node(const xml_node_t *node, int indent)
Definition: xmlparser.c:877
STATE_TAG_TERM_IGNORE
@ STATE_TAG_TERM_IGNORE
Definition: xmlparser.c:194
xml_node_s::next
struct xml_node_s * next
Definition: xmlparser.h:63
width
unsigned int width
Definition: gfontrle.c:4
UTF32LE
@ UTF32LE
Definition: xmllexer.c:55
T_DOCTYPE_START
#define T_DOCTYPE_START
Definition: xmllexer.h:46
xml_parser_free_tree
void xml_parser_free_tree(xml_node_t *current_node)
Definition: xmlparser.c:179
parser_state_t
parser_state_t
Definition: xmlparser.c:184
xine_profiler_stop_count
void xine_profiler_stop_count(int id)
Definition: monitor.c:96
_X_LE_32
#define _X_LE_32(x)
Definition: bswap.h:63
yuv2rgb_init_mmxext
void yuv2rgb_init_mmxext(yuv2rgb_factory_impl_t *this)
yuv2rgb_factory_impl_s::table_rV
void * table_rV[256]
Definition: yuv2rgb_private.h:86
scale_line_gen
static void scale_line_gen(const uint8_t *restrict source, uint8_t *restrict dest, int width, int step)
Definition: yuv2rgb.c:196
xml_parser_build_tree_with_options
int xml_parser_build_tree_with_options(xml_node_t **root_node, int flags)
Definition: xmlparser.c:732
STATE_TAG_TERM
@ STATE_TAG_TERM
Definition: xmlparser.c:191
restrict
#define restrict
Definition: configure.h:935
yuv2rgb_c_24_rgb
static void yuv2rgb_c_24_rgb(yuv2rgb_t *this_gen, uint8_t *restrict _dst, const uint8_t *restrict _py, const uint8_t *restrict _pu, const uint8_t *restrict _pv)
Definition: yuv2rgb.c:1640
DST2BGR
#define DST2BGR(i)
Definition: yuv2rgb.c:1488
yuv2rgb_s::yuv2rgb_fun
yuv2rgb_fun_t yuv2rgb_fun
Definition: yuv2rgb.h:104
STATE_T_TI_STOP
@ STATE_T_TI_STOP
Definition: xmllexer.c:160
yuv2rgb_single_pixel_32
static uint32_t yuv2rgb_single_pixel_32(yuv2rgb_t *this_gen, uint8_t y, uint8_t u, uint8_t v)
Definition: yuv2rgb.c:2606
yuv2rgb_c_8
static void yuv2rgb_c_8(yuv2rgb_t *this_gen, uint8_t *restrict _dst, const uint8_t *restrict _py, const uint8_t *restrict _pu, const uint8_t *restrict _pv)
Definition: yuv2rgb.c:2045
xml_parser_get_node
static int xml_parser_get_node(xml_parser_t *xml_parser, xml_node_t *current_node, int flags)
Definition: xmlparser.c:704
prof_scale_line
static int prof_scale_line
Definition: yuv2rgb.c:44
UTF32BE
@ UTF32BE
Definition: xmllexer.c:55
yuv2rgb_factory_s::set_csc_levels
void(* set_csc_levels)(yuv2rgb_factory_t *this, int brightness, int contrast, int saturation, int colormatrix)
Definition: yuv2rgb.h:130
xine_private.h
Declaration of internal, private functions for xine-lib.
xml_node_s::child
struct xml_node_s * child
Definition: xmlparser.h:62
yuv2rgb_factory_impl_s::yuy22rgb_fun
yuy22rgb_fun_t yuy22rgb_fun
Definition: yuv2rgb_private.h:94
xml_parser_build_tree_with_options_r
int xml_parser_build_tree_with_options_r(xml_parser_t *xml_parser, xml_node_t **root_node, int flags)
Definition: xmlparser.c:736
STATE_T_M_START
@ STATE_T_M_START
Definition: xmllexer.c:153
yuv2rgb_factory_impl_s::swapped
int swapped
Definition: yuv2rgb_private.h:82
STATE_NODE_CLOSE
@ STATE_NODE_CLOSE
Definition: xmlparser.c:190
xml_node_s::data
char * data
Definition: xmlparser.h:60
xml_parser_append_text
static xml_node_t * xml_parser_append_text(xml_node_t *node, xml_node_t *subnode, const char *text, int flags)
Definition: xmlparser.c:208
STATE_T_COMMENT
@ STATE_T_COMMENT
Definition: xmllexer.c:159
yuv2rgb_factory_dispose
static void yuv2rgb_factory_dispose(yuv2rgb_factory_t *this_gen)
Definition: yuv2rgb.c:3390
MODE_8_RGB
#define MODE_8_RGB
Definition: yuv2rgb.h:59
DATA
@ DATA
Definition: xmllexer.c:104
CDATA_MARKER
#define CDATA_MARKER
Definition: xmlparser.h:40
XML_ESCAPE_SINGLE_QUOTE
@ XML_ESCAPE_SINGLE_QUOTE
Definition: xmlparser.h:97
yuv2rgb_init_mlib
void yuv2rgb_init_mlib(yuv2rgb_factory_impl_t *this)
xml_node_s::name
char * name
Definition: xmlparser.h:59
name
char name[6]
Definition: xmllexer.c:608
yuv2rgb_factory_s::create_converter
yuv2rgb_t *(* create_converter)(yuv2rgb_factory_t *this)
Definition: yuv2rgb.h:124
lexer::lexbuf_size
int lexbuf_size
Definition: xmllexer.h:56
STATE_CDATA
@ STATE_CDATA
Definition: xmlparser.c:205
code
char code
Definition: xmllexer.c:606
scale_line_func_t
void(* scale_line_func_t)(const uint8_t *restrict source, uint8_t *restrict dest, int width, int step)
Definition: yuv2rgb_private.h:41
lex_convert
static void lex_convert(struct lexer *lexer, const char *buf, int size, enum utf utf)
Definition: xmllexer.c:57
yuy22rgb_fun_t
void(* yuy22rgb_fun_t)(yuv2rgb_t *this, uint8_t *restrict image, const uint8_t *restrict p)
Definition: yuv2rgb.h:49
STRING
#define STRING
Definition: goomsl_lex.c:646
xml_parser_build_tree
int xml_parser_build_tree(xml_node_t **root_node)
Definition: xmlparser.c:785
scale_line_2_3
static void scale_line_2_3(const uint8_t *restrict source, uint8_t *restrict dest, int width, int step)
Definition: yuv2rgb.c:1286
xml_parser_dump_tree
void xml_parser_dump_tree(const xml_node_t *node)
Definition: xmlparser.c:920
lexer_get_token_d_r
int lexer_get_token_d_r(struct lexer *lexer, char **_tok, int *_tok_size, int fixed)
Definition: xmllexer.c:171
T_M_START_1
#define T_M_START_1
Definition: xmllexer.h:33
XML_PARSER_MULTI_TEXT
#define XML_PARSER_MULTI_TEXT
Definition: xmlparser.h:37
yuv2rgb_factory_init
yuv2rgb_factory_t * yuv2rgb_factory_init(int mode, int swapped, const uint8_t *cmap)
Definition: yuv2rgb.c:3399
name
const char name[16]
Definition: memcpy.c:569
scale_line_4
static void scale_line_4(const uint8_t *restrict source, uint8_t *restrict dest, int width, int step)
Definition: yuv2rgb.c:1422
STATE_DOCTYPE
@ STATE_DOCTYPE
Definition: xmlparser.c:204
xine_freep_aligned
#define xine_freep_aligned(xinefreepptr)
Definition: xineutils.h:294
xine_mutex_t::mutex
pthread_mutex_t mutex
Definition: xineutils.h:138
height
unsigned int height
Definition: gfontrle.c:5
T_IDENT
#define T_IDENT
Definition: xmllexer.h:40
yuy22rgb_c_16
static void yuy22rgb_c_16(yuv2rgb_t *this_gen, uint8_t *restrict _dst, const uint8_t *restrict _p)
Definition: yuv2rgb.c:3025
yuv2rgb_set_csc_levels
static void yuv2rgb_set_csc_levels(yuv2rgb_factory_t *this_gen, int brightness, int contrast, int saturation, int colormatrix)
Definition: yuv2rgb.c:2599
T_DATA
#define T_DATA
Definition: xmllexer.h:41
namelen
unsigned char namelen
Definition: xmllexer.c:607
STATE_EOL
@ STATE_EOL
Definition: xmllexer.c:151
DST1CMAP
#define DST1CMAP(i)
Definition: yuv2rgb.c:1494
yuv2rgb_factory_impl_s::table_gU
void * table_gU[256]
Definition: yuv2rgb_private.h:87
T_M_STOP_2
#define T_M_STOP_2
Definition: xmllexer.h:36
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
yuv2rgb_c_gray
static void yuv2rgb_c_gray(yuv2rgb_t *this_gen, uint8_t *restrict _dst, const uint8_t *restrict _py, const uint8_t *restrict _pu, const uint8_t *restrict _pv)
Definition: yuv2rgb.c:2179
static_lexer
struct lexer * static_lexer
Definition: xmllexer.c:53
lexer_finalize_r
void lexer_finalize_r(struct lexer *lexer)
Definition: xmllexer.c:142
yuv2rgb_single_pixel_24_bgr
static uint32_t yuv2rgb_single_pixel_24_bgr(yuv2rgb_t *this_gen, uint8_t y, uint8_t u, uint8_t v)
Definition: yuv2rgb.c:2632
DST1BGR
#define DST1BGR(i)
Definition: yuv2rgb.c:1482
yuy22rgb_c_8
static void yuy22rgb_c_8(yuv2rgb_t *this_gen, uint8_t *restrict _dst, const uint8_t *restrict _p)
Definition: yuv2rgb.c:3102
xml_parser_s
Definition: xmlparser.h:67
yuv2rgb_single_pixel_palette
static uint32_t yuv2rgb_single_pixel_palette(yuv2rgb_t *this_gen, uint8_t y, uint8_t u, uint8_t v)
Definition: yuv2rgb.c:2678
STATE_T_M_STOP_2
@ STATE_T_M_STOP_2
Definition: xmllexer.c:155
scale_line_1_2
static void scale_line_1_2(const uint8_t *restrict source, uint8_t *restrict dest, int width, int step)
Definition: yuv2rgb.c:1214
yuv2rgb_s::dispose
void(* dispose)(yuv2rgb_t *this)
Definition: yuv2rgb.h:99
yuv2rgb_configure
static int yuv2rgb_configure(yuv2rgb_t *this_gen, int source_width, int source_height, int y_stride, int uv_stride, int dest_width, int dest_height, int rgb_stride)
Definition: yuv2rgb.c:105
DST2CMAP
#define DST2CMAP(i)
Definition: yuv2rgb.c:1500
yuv2rgb_factory_impl_s
Definition: yuv2rgb_private.h:77
MODE_8_GRAY
#define MODE_8_GRAY
Definition: yuv2rgb.h:69
yuv2rgb_single_pixel_fun_t
uint32_t(* yuv2rgb_single_pixel_fun_t)(yuv2rgb_t *this, uint8_t y, uint8_t u, uint8_t v)
Definition: yuv2rgb.h:53
xml_escape_string
char * xml_escape_string(const char *s, xml_escape_quote_t quote_type)
Definition: xmlparser.c:871
bswap.h
lexer_state_t
lexer_state_t
Definition: xmllexer.c:148
Inverse_Table_6_9
const int32_t Inverse_Table_6_9[8][4]
Definition: yuv2rgb.c:48
STATE_UNKNOWN
@ STATE_UNKNOWN
Definition: xmllexer.c:149
lexer
Definition: xmllexer.h:53
yuv2rgb_c_24_bgr
static void yuv2rgb_c_24_bgr(yuv2rgb_t *this_gen, uint8_t *restrict _dst, const uint8_t *restrict _py, const uint8_t *restrict _pu, const uint8_t *restrict _pv)
Definition: yuv2rgb.c:1775
MODE_24_BGR
#define MODE_24_BGR
Definition: yuv2rgb.h:66
_X_BE_32
#define _X_BE_32(x)
Definition: bswap.h:45
STATE_IDLE
@ STATE_IDLE
Definition: xmlparser.c:186
yuy22rgb_c_gray
static void yuy22rgb_c_gray(yuv2rgb_t *this_gen, uint8_t *restrict _dst, const uint8_t *restrict _p)
Definition: yuv2rgb.c:3179
xml_property_s::next
struct xml_property_s * next
Definition: xmlparser.h:46
xmllexer.h
CM_DEFAULT
#define CM_DEFAULT
Definition: yuv2rgb.h:76
STATE_ATTRIBUTE_EQUALS
@ STATE_ATTRIBUTE_EQUALS
Definition: xmlparser.c:192
scale_line_11_24
static void scale_line_11_24(const uint8_t *restrict source, uint8_t *restrict dest, int width, int step)
Definition: yuv2rgb.c:1020
yuv2rgb_next_slice_intf
static int yuv2rgb_next_slice_intf(yuv2rgb_t *this_gen, uint8_t **dest)
Definition: yuv2rgb.c:86
lexer_decode_entities
char * lexer_decode_entities(const char *tok)
Definition: xmllexer.c:618
T_STRING
#define T_STRING
Definition: xmllexer.h:39
T_M_STOP_1
#define T_M_STOP_1
Definition: xmllexer.h:35
xml_parser_init
void xml_parser_init(const char *buf, int size, int mode)
Definition: xmlparser.c:109
STATE_COMMENT
@ STATE_COMMENT
Definition: xmlparser.c:203
yuv2rgb_s::configure
int(* configure)(yuv2rgb_t *this, int source_width, int source_height, int y_stride, int uv_stride, int dest_width, int dest_height, int rgb_stride)
Definition: yuv2rgb.h:85
config.h
XINE_PROTECTED
#define XINE_PROTECTED
Definition: attributes.h:73
scale_line_5_4
static void scale_line_5_4(const uint8_t *restrict source, uint8_t *restrict dest, int width, int step)
Definition: yuv2rgb.c:1247
MODE_24_RGB
#define MODE_24_RGB
Definition: yuv2rgb.h:65
yuy22rgb_c_init
static int yuy22rgb_c_init(yuv2rgb_factory_impl_t *this)
Definition: yuv2rgb.c:3302
MODE_15_RGB
#define MODE_15_RGB
Definition: yuv2rgb.h:61
yuv2rgb_factory_impl_s::table_mmx
void * table_mmx
Definition: yuv2rgb_private.h:90
scale_line_3_4
static void scale_line_3_4(const uint8_t *restrict source, uint8_t *restrict dest, int width, int step)
Definition: yuv2rgb.c:1178
xml_parser_get_property_int
int xml_parser_get_property_int(const xml_node_t *node, const char *name, int def_value)
Definition: xmlparser.c:813
MODE_15_BGR
#define MODE_15_BGR
Definition: yuv2rgb.h:62
TOKEN_SIZE
#define TOKEN_SIZE
Definition: xmlparser.c:58
yuv2rgb_c_32
static void yuv2rgb_c_32(yuv2rgb_t *this_gen, uint8_t *restrict _dst, const uint8_t *restrict _py, const uint8_t *restrict _pu, const uint8_t *restrict _pv)
Definition: yuv2rgb.c:1506
DST1RGB
#define DST1RGB(i)
Definition: yuv2rgb.c:1470
yuv2rgb_factory_init
yuv2rgb_factory_t * yuv2rgb_factory_init(int mode, int swapped, const uint8_t *colormap)
Definition: yuv2rgb.c:3399
xml_property_s::name
char * name
Definition: xmlparser.h:44
STATE_T_M_STOP_1
@ STATE_T_M_STOP_1
Definition: xmllexer.c:154
yuv2rgb_create_converter
static yuv2rgb_t * yuv2rgb_create_converter(yuv2rgb_factory_t *this_gen)
Definition: yuv2rgb.c:3345
yuv2rgb_single_pixel_gray
static uint32_t yuv2rgb_single_pixel_gray(yuv2rgb_t *this_gen, uint8_t y, uint8_t u, uint8_t v)
Definition: yuv2rgb.c:2670
yuy22rgb_c_palette
static void yuy22rgb_c_palette(yuv2rgb_t *this_gen, uint8_t *restrict _dst, const uint8_t *restrict _p)
Definition: yuv2rgb.c:3227
T_EOL
#define T_EOL
Definition: xmllexer.h:31
STATE_Q_TAG_TERM
@ STATE_Q_TAG_TERM
Definition: xmlparser.c:199
yuv2rgb_next_slice
static int yuv2rgb_next_slice(yuv2rgb_impl_t *this, uint8_t *restrict *dest)
Definition: yuv2rgb.c:60
strtoupper
static char * strtoupper(char *str)
Definition: xmlparser.c:67
scale_line_45_53
static void scale_line_45_53(const uint8_t *restrict source, uint8_t *restrict dest, int width, int step)
Definition: yuv2rgb.c:379
DST2
#define DST2(i)
Definition: yuv2rgb.c:1464
xml_parser_get_property
const char * xml_parser_get_property(const xml_node_t *node, const char *name)
Definition: xmlparser.c:793
T_ERROR
#define T_ERROR
Definition: xmllexer.h:29
xine_mutex_lock
int xine_mutex_lock(xine_mutex_t *mutex, const char *who)
Definition: xine_mutex.c:46
STATE_T_EQUAL
@ STATE_T_EQUAL
Definition: xmllexer.c:156
MODE_16_BGR
#define MODE_16_BGR
Definition: yuv2rgb.h:64
xine_free_aligned
void xine_free_aligned(void *ptr)
Definition: utils.c:882
scale_line_11_12
static void scale_line_11_12(const uint8_t *restrict source, uint8_t *restrict dest, int width, int step)
Definition: yuv2rgb.c:949
lexer::in_comment
int in_comment
Definition: xmllexer.h:59
xml_parser_init_r
xml_parser_t * xml_parser_init_r(const char *buf, int size, int mode)
Definition: xmlparser.c:116
MM_ACCEL_X86_MMXEXT
#define MM_ACCEL_X86_MMXEXT
Definition: xineutils.h:166
UTF16LE
@ UTF16LE
Definition: xmllexer.c:55
lexer_init
void lexer_init(const char *buf, int size)
Definition: xmllexer.c:94
MAX_RECURSION
#define MAX_RECURSION
Definition: xmlparser.c:60
XML_ESCAPE_DOUBLE_QUOTE
@ XML_ESCAPE_DOUBLE_QUOTE
Definition: xmlparser.h:98
xine_malloc_aligned
void * xine_malloc_aligned(size_t size)
Definition: utils.c:869
yuv2rgb_init_mmx
void yuv2rgb_init_mmx(yuv2rgb_factory_impl_t *this)
X_RGB
#define X_RGB(i)
Definition: yuv2rgb.c:1451
free_xml_node
static void free_xml_node(xml_node_t *node)
Definition: xmlparser.c:87