xine-lib  1.2.10
mangle.h
Go to the documentation of this file.
1 /*
2  * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
3  * copyright (c) 2008-2010 the xine-project
4  *
5  * This file is part of FFmpeg.
6  *
7  * xine is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2 of the License, or
10  * (at your option) any later version.
11  *
12  * xine is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
20  */
21 
29 #ifndef _XINE_MANGLE_H
30 #define _XINE_MANGLE_H
31 
32 #if defined(PIC) && ! defined(__PIC__)
33 #define __PIC__
34 #endif
35 
36 // Use rip-relative addressing if compiling PIC code on x86-64.
37 #if defined(__MINGW32__) || defined(__CYGWIN__) || defined(__DJGPP__) || \
38  defined(__OS2__) || (defined (__OpenBSD__) && !defined(__ELF__))
39 # if defined(__MINGW64__)
40 # define EXTERN_PREFIX ""
41 # else
42 # define EXTERN_PREFIX "_"
43 # endif
44 # if defined(__x86_64__) && defined(__PIC__)
45 # define MANGLE(a) EXTERN_PREFIX #a"(%%rip)"
46 # else
47 # define MANGLE(a) EXTERN_PREFIX #a
48 # endif
49 #else
50 # if defined(__x86_64__) && defined(__PIC__)
51 # define MANGLE(a) #a"(%%rip)"
52 # elif defined(__APPLE__)
53 # define MANGLE(a) "_" #a
54 # else
55 # define MANGLE(a) #a
56 # endif
57 #endif
58 
59 #endif
xine_array_add
void xine_array_add(xine_array_t *array, void *value)
Definition: array.c:85
C_YUV420_YUYV_INTERLACED
#define C_YUV420_YUYV_INTERLACED(p_y1, p_y2, p_u, p_ut, p_ub, p_v, p_vt, p_vb, p_line1, p_line2)
Definition: color.c:664
dlist_t::tail
dnode_t *volatile tail
Definition: xineutils.h:82
xine_array_size
size_t xine_array_size(const xine_array_t *array)
Definition: array.c:77
punpcklbw_r2r
#define punpcklbw_r2r(regs, regd)
Definition: mmx.h:695
rgb2yuy2_s::pfmt
int pfmt
Definition: color.c:1758
dnode_st
Definition: xineutils.h:64
xine_mallocz_aligned
void * xine_mallocz_aligned(size_t size)
Definition: utils.c:856
YR
#define YR
XINE_MALLOC
#define XINE_MALLOC
Definition: attributes.h:139
yuv_planes_s::row_count
unsigned int row_count
Definition: xineutils.h:397
xine_list_new
xine_list_t * xine_list_new(void)
Definition: list.c:72
xineutils.h
yuv9_to_yv12_c
static void yuv9_to_yv12_c(const uint8_t *restrict y_src, int y_src_pitch, uint8_t *restrict y_dest, int y_dest_pitch, const uint8_t *restrict u_src, int u_src_pitch, uint8_t *restrict u_dest, int u_dest_pitch, const uint8_t *restrict v_src, int v_src_pitch, uint8_t *restrict v_dest, int v_dest_pitch, int width, int height)
Definition: color.c:568
DLIST_ADD_TAIL
#define DLIST_ADD_TAIL(n, l)
Definition: xineutils.h:106
pmaddwd_r2r
#define pmaddwd_r2r(regs, regd)
Definition: mmx.h:529
GET_Y
#define GET_Y(v)
Definition: color.c:2058
v_b_table
int v_b_table[256]
Definition: color.c:86
u_b_table
int u_b_table[256]
Definition: color.c:89
rgb_rgba_clut
@ rgb_rgba_clut
Definition: color.c:1764
rgb2yuy2_s::cm
int cm
Definition: color.c:1758
xine_array_ensure_chunk_size
static void xine_array_ensure_chunk_size(xine_array_t *array, size_t size)
Definition: array.c:39
MIN_CHUNK_SIZE
#define MIN_CHUNK_SIZE
Definition: array.c:30
xine_list_push_back
void xine_list_push_back(xine_list_t *list, void *value)
Definition: list.c:162
xine_list_delete
void xine_list_delete(xine_list_t *list)
Definition: list.c:108
xine_fast_memcpy
void *(* xine_fast_memcpy)(void *to, const void *from, size_t len)
Definition: memcpy.c:60
xine_array_remove
void xine_array_remove(xine_array_t *array, unsigned int position)
Definition: array.c:104
YB
#define YB
xine_list_find
xine_list_iterator_t xine_list_find(xine_list_t *list, void *value)
Definition: list.c:275
_xine_list_chunk_s::next
_xine_list_chunk_t * next
Definition: list.c:44
yuv444_to_yuy2
void(* yuv444_to_yuy2)(const yuv_planes_t *yuv_planes, unsigned char *yuy2_map, int pitch)
Definition: color.c:92
MM_ACCEL_X86_MMX
#define MM_ACCEL_X86_MMX
Definition: xineutils.h:164
xine_array_get
void * xine_array_get(const xine_array_t *array, unsigned int position)
Definition: array.c:115
xine_list_elem_s::value
void * value
Definition: list.c:40
VG
#define VG
_xine_list_elem_new
static xine_list_elem_t * _xine_list_elem_new(xine_list_t *list)
Definition: list.c:115
SCALEFACTOR
#define SCALEFACTOR
Definition: xineutils.h:433
xine_mmx.h
xine_list_clear
void xine_list_clear(xine_list_t *list)
Definition: list.c:103
xine_list_s::size
uint32_t size
Definition: list.c:55
xine_list_next_value
void * xine_list_next_value(xine_list_t *list, xine_list_iterator_t *ite)
Definition: list.c:197
paddd_r2r
#define paddd_r2r(regs, regd)
Definition: mmx.h:439
rgb2yuy2_slice
void rgb2yuy2_slice(rgb2yuy2_t *rgb2yuy2, const uint8_t *restrict in, int ipitch, uint8_t *restrict out, int opitch, int width, int height)
Definition: color.c:2063
rgb2yuy2_s::t1
uint64_t t1[256]
Definition: color.c:1754
xine_list_s::chunks
_xine_list_chunk_t * chunks
Definition: list.c:54
_xine_list_chunk_new
static _xine_list_chunk_t * _xine_list_chunk_new(xine_list_t *list, uint32_t size)
Definition: list.c:59
upsample_c_plane_c
static void upsample_c_plane_c(const uint8_t *src, int src_width, int src_height, uint8_t *dest, unsigned int src_pitch, unsigned int dest_pitch)
Definition: color.c:522
rgb_pal2
@ rgb_pal2
Definition: color.c:1765
free_yuv_planes
void free_yuv_planes(yuv_planes_t *yuv_planes)
Definition: color.c:140
_xine_list_chunk_s
Definition: list.c:43
ALIGN4
#define ALIGN4(ptr)
Definition: color.c:72
y_r_table
int y_r_table[256]
Definition: color.c:78
rgb2yuy2_palette
void rgb2yuy2_palette(rgb2yuy2_t *rgb2yuy2, const uint8_t *pal, int num_colors, int bits_per_pixel)
Definition: color.c:1947
rgb_rgba
@ rgb_rgba
Definition: color.c:1762
yv12_to_yv12
void yv12_to_yv12(const unsigned char *y_src, int y_src_pitch, unsigned char *y_dst, int y_dst_pitch, const unsigned char *u_src, int u_src_pitch, unsigned char *u_dst, int u_dst_pitch, const unsigned char *v_src, int v_src_pitch, unsigned char *v_dst, int v_dst_pitch, int width, int height)
Definition: copy.c:48
MIN_CHUNK_SIZE
#define MIN_CHUNK_SIZE
Definition: list.c:30
sfence
#define sfence()
Definition: mmx.h:263
_xine_list_reset
static void _xine_list_reset(xine_list_t *list)
Definition: list.c:88
VB
#define VB
rgb2yuy2_s::t2
uint64_t t2[256]
Definition: color.c:1754
YG
#define YG
psrlq_i2r
#define psrlq_i2r(imm, reg)
Definition: mmx.h:633
array.h
xine_array_set
void xine_array_set(xine_array_t *array, unsigned int position, void *value)
Definition: array.c:122
_xine_list_chunk_s::first_unused
uint32_t first_unused
Definition: list.c:47
u_r_table
int u_r_table[256]
Definition: color.c:84
xine_list_size
unsigned int xine_list_size(xine_list_t *list)
Definition: list.c:146
attributes.h
xine_array_delete
void xine_array_delete(xine_array_t *array)
Definition: array.c:72
yuy2_to_yv12
void(* yuy2_to_yv12)(const unsigned char *yuy2_map, int yuy2_pitch, unsigned char *y_dst, int y_dst_pitch, unsigned char *u_dst, int u_dst_pitch, unsigned char *v_dst, int v_dst_pitch, int width, int height)
Definition: color.c:110
xine_array_new
xine_array_t * xine_array_new(size_t initial_size)
Definition: array.c:50
_xine_list_chunk_s::max_elems
uint32_t max_elems
Definition: list.c:46
yuv411_to_yv12_c
static void yuv411_to_yv12_c(const uint8_t *restrict y_src, int y_src_pitch, uint8_t *restrict y_dest, int y_dest_pitch, const uint8_t *restrict u_src, int u_src_pitch, uint8_t *restrict u_dest, int u_dest_pitch, const uint8_t *restrict v_src, int v_src_pitch, uint8_t *restrict v_dest, int v_dest_pitch, int width, int height)
Definition: color.c:597
rgb_rgb565le
@ rgb_rgb565le
Definition: color.c:1763
yuv_planes_s::u
unsigned char * u
Definition: xineutils.h:394
pxor_r2r
#define pxor_r2r(regs, regd)
Definition: mmx.h:577
movq_m2r
#define movq_m2r(var, reg)
Definition: mmx.h:411
xine_list_prev_value
void * xine_list_prev_value(xine_list_t *list, xine_list_iterator_t *ite)
Definition: list.c:222
NULL
NULL
Definition: xine_plugin.c:78
u_g_table
int u_g_table[256]
Definition: color.c:85
__attribute__
char **__environ __attribute__((weak, alias("fake__environ")))
xine_mm_accel
uint32_t xine_mm_accel(void)
Definition: cpu_accel.c:390
_x_freep
static void _x_freep(void *ptr)
Definition: xineutils.h:263
rgb_fmt_t
rgb_fmt_t
Definition: color.c:1761
yv12_to_yuy2
void(* yv12_to_yuy2)(const unsigned char *y_src, int y_src_pitch, const unsigned char *u_src, int u_src_pitch, const unsigned char *v_src, int v_src_pitch, unsigned char *yuy2_map, int yuy2_pitch, int width, int height, int progressive)
Definition: color.c:104
rgb2yuy2_s::fmt
int fmt
Definition: color.c:1758
width
unsigned int width
Definition: gfontrle.c:4
_x_nv12_to_yv12
void _x_nv12_to_yv12(const uint8_t *restrict y_src, int y_src_pitch, const uint8_t *restrict uv_src, int uv_src_pitch, uint8_t *restrict y_dst, int y_dst_pitch, uint8_t *restrict u_dst, int u_dst_pitch, uint8_t *restrict v_dst, int v_dst_pitch, int width, int height)
Definition: copy.c:66
uv_br_table
int uv_br_table[256]
Definition: color.c:82
_xine_list_chunk_s::elems
xine_list_elem_t elems[1]
Definition: list.c:48
hscale_chroma_line
static void hscale_chroma_line(uint8_t *restrict dst, const uint8_t *restrict src, int src_width)
Definition: color.c:434
xine_list_empty
unsigned int xine_list_empty(xine_list_t *list)
Definition: list.c:150
C_YUYV_YUV420
#define C_YUYV_YUV420()
Definition: color.c:1528
CENTERSAMPLE
#define CENTERSAMPLE
Definition: w32codec.c:234
filter
static int filter(const char *in, const char *filter, char **out)
Definition: sdpplin.c:45
xine_list_prev
xine_list_iterator_t xine_list_prev(xine_list_t *list, xine_list_iterator_t ite)
Definition: list.c:215
xine_array_s
Definition: array.c:33
restrict
#define restrict
Definition: configure.h:935
mmx_t
Definition: mmx.h:53
xine_list_next
xine_list_iterator_t xine_list_next(xine_list_t *list, xine_list_iterator_t ite)
Definition: list.c:190
xine_list_s
Definition: list.c:51
rr
#define rr
rgb_bgr
@ rgb_bgr
Definition: color.c:1762
xine_list_s::used
dlist_t used
Definition: list.c:52
y_g_table
int y_g_table[256]
Definition: color.c:79
DLIST_ADD_HEAD
#define DLIST_ADD_HEAD(n, l)
Definition: xineutils.h:96
xine_array_s::chunk_size
size_t chunk_size
Definition: array.c:35
yuv411_to_yv12
void(* yuv411_to_yv12)(const unsigned char *y_src, int y_src_pitch, unsigned char *y_dest, int y_dest_pitch, const unsigned char *u_src, int u_src_pitch, unsigned char *u_dest, int u_dest_pitch, const unsigned char *v_src, int v_src_pitch, unsigned char *v_dest, int v_dest_pitch, int width, int height)
Definition: color.c:99
dlist_t
Definition: xineutils.h:79
UG
#define UG
GET_U
#define GET_U(v)
Definition: color.c:2059
yuy2_to_yuy2
void yuy2_to_yuy2(const unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch, int width, int height)
Definition: copy.c:59
xine_list_get_value
void * xine_list_get_value(xine_list_t *list, xine_list_iterator_t ite)
Definition: list.c:240
yuy2_to_yv12_c
static void yuy2_to_yv12_c(const uint8_t *restrict yuy2_map, int yuy2_pitch, uint8_t *restrict y_dst, int y_dst_pitch, uint8_t *restrict u_dst, int u_dst_pitch, uint8_t *restrict v_dst, int v_dst_pitch, int width, int height)
Definition: color.c:1535
emms
#define emms()
Definition: mmx.h:732
rgb_bgra_clut
@ rgb_bgra_clut
Definition: color.c:1764
rgb2yuy2_s::t0
uint64_t t0[256]
Definition: color.c:1754
rgb_pal1
@ rgb_pal1
Definition: color.c:1765
rgb_pal8
@ rgb_pal8
Definition: color.c:1765
xine_list_back
xine_list_iterator_t xine_list_back(xine_list_t *list)
Definition: list.c:158
v_g_table
int v_g_table[256]
Definition: color.c:87
DLIST_INSERT
#define DLIST_INSERT(n, h)
Definition: xineutils.h:116
movq_r2m
#define movq_r2m(reg, var)
Definition: mmx.h:412
xine_list_front
xine_list_iterator_t xine_list_front(xine_list_t *list)
Definition: list.c:154
_copy_plane
static void _copy_plane(uint8_t *restrict dst, const uint8_t *restrict src, int dst_pitch, int src_pitch, int width, int height)
Definition: copy.c:30
xine_freep_aligned
#define xine_freep_aligned(xinefreepptr)
Definition: xineutils.h:294
init_yuv_planes
void init_yuv_planes(yuv_planes_t *yuv_planes, int width, int height)
Definition: color.c:122
DLIST_IS_EMPTY
#define DLIST_IS_EMPTY(l)
Definition: xineutils.h:86
height
unsigned int height
Definition: gfontrle.c:5
MM_ACCEL_X86_SSE2
#define MM_ACCEL_X86_SSE2
Definition: xineutils.h:168
dnode_st::prev
struct dnode_st * prev
Definition: xineutils.h:65
xine_array_s::size
size_t size
Definition: array.c: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
rgb_rgb565be
@ rgb_rgb565be
Definition: color.c:1763
init_yuv_conversion
void init_yuv_conversion(void)
Definition: color.c:1686
rgb_bgra
@ rgb_bgra
Definition: color.c:1762
DLIST_REMOVE
#define DLIST_REMOVE(n)
Definition: xineutils.h:88
rgb2yuy2_alloc
rgb2yuy2_t * rgb2yuy2_alloc(int color_matrix, const char *format)
Definition: color.c:1768
rgb_rgb
@ rgb_rgb
Definition: color.c:1762
xine_list_s::free
dlist_t free
Definition: list.c:53
yuv_planes_s
Definition: xineutils.h:391
dlist_t::head
dnode_t *volatile head
Definition: xineutils.h:80
dnode_st::next
struct dnode_st * next
Definition: xineutils.h:65
yuv444_to_yuy2_c
static void yuv444_to_yuy2_c(const yuv_planes_t *yuv_planes, unsigned char *yuy2_map, int pitch)
Definition: color.c:163
yuv_planes_s::y
unsigned char * y
Definition: xineutils.h:393
xine_internal.h
MAX_CHUNK_SIZE
#define MAX_CHUNK_SIZE
Definition: list.c:31
rgb2yuy2_s
Definition: color.c:1752
rgb_pal4
@ rgb_pal4
Definition: color.c:1765
config.h
GET_V
#define GET_V(v)
Definition: color.c:2060
movq_r2r
#define movq_r2r(regs, regd)
Definition: mmx.h:413
yv12_to_yuy2_c
static void yv12_to_yuy2_c(const uint8_t *restrict y_src, int y_src_pitch, const uint8_t *restrict u_src, int u_src_pitch, const uint8_t *restrict v_src, int v_src_pitch, uint8_t *restrict yuy2_map, int yuy2_pitch, int width, int height, int progressive)
Definition: color.c:677
rgb_rgb555le
@ rgb_rgb555le
Definition: color.c:1763
xine_list_push_front
void xine_list_push_front(xine_list_t *list, void *value)
Definition: list.c:176
DLIST_INIT
#define DLIST_INIT(l)
Definition: xineutils.h:126
punpckhbw_r2r
#define punpckhbw_r2r(regs, regd)
Definition: mmx.h:712
vscale_chroma_line
static void vscale_chroma_line(uint8_t *restrict dst, int pitch, const uint8_t *restrict src1, const uint8_t *restrict src2, int width)
Definition: color.c:467
xine_list_remove
void xine_list_remove(xine_list_t *list, xine_list_iterator_t position)
Definition: list.c:246
xine_list_elem_s::node
dnode_t node
Definition: list.c:38
xine_array_insert
void xine_array_insert(xine_array_t *array, unsigned int position, void *value)
Definition: array.c:91
psrlq_m2r
#define psrlq_m2r(var, reg)
Definition: mmx.h:634
yuv_planes_s::v
unsigned char * v
Definition: xineutils.h:395
UB
#define UB
list.h
y_b_table
int y_b_table[256]
Definition: color.c:80
UR
#define UR
rgb_rgb555be
@ rgb_rgb555be
Definition: color.c:1763
rgb2yv12_slice
void rgb2yv12_slice(rgb2yuy2_t *rgb2yuy2, const uint8_t *src, int src_stride, uint8_t *y_dst, int y_pitch, uint8_t *u_dst, int u_pitch, uint8_t *v_dst, int v_pitch, int width, int height)
Definition: color.c:2231
xine_list_insert
xine_list_iterator_t xine_list_insert(xine_list_t *list, xine_list_iterator_t position, void *value)
Definition: list.c:256
VR
#define VR
yuv9_to_yv12
void(* yuv9_to_yv12)(const unsigned char *y_src, int y_src_pitch, unsigned char *y_dest, int y_dest_pitch, const unsigned char *u_src, int u_src_pitch, unsigned char *u_dest, int u_dest_pitch, const unsigned char *v_src, int v_src_pitch, unsigned char *v_dest, int v_dest_pitch, int width, int height)
Definition: color.c:94
rgb2yuy2_s::p
uint32_t p[272]
Definition: color.c:1757
yuv_planes_s::row_width
unsigned int row_width
Definition: xineutils.h:396
xine_free_aligned
void xine_free_aligned(void *ptr)
Definition: utils.c:882
rgb2yuy2_free
void rgb2yuy2_free(rgb2yuy2_t *rgb2yuy2)
Definition: color.c:1943
rgb_argb
@ rgb_argb
Definition: color.c:1762
MM_ACCEL_X86_MMXEXT
#define MM_ACCEL_X86_MMXEXT
Definition: xineutils.h:166
xine_array_s::chunk
void ** chunk
Definition: array.c:34
v_r_table
int v_r_table[256]
Definition: color.c:90
xine_malloc_aligned
void * xine_malloc_aligned(size_t size)
Definition: utils.c:869
C_YUV420_YUYV_PROGRESSIVE
#define C_YUV420_YUYV_PROGRESSIVE(p_y1, p_y2, p_u, p_ut, p_ub, p_v, p_vt, p_vb, p_line1, p_line2)
Definition: color.c:656
xine_list_elem_s
Definition: list.c:37
xine_list_s::first_chunk
_xine_list_chunk_t first_chunk
Definition: list.c:56
xine_array_clear
void xine_array_clear(xine_array_t *array)
Definition: array.c:81