xine-lib 1.2.13-20230125hg15249
yuv2rgb_private.h
Go to the documentation of this file.
1/*
2 * yuv2rgb_private.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 YUV2RGB_PRIVATE_H
28#define YUV2RGB_PRIVATE_H
29
30#include <inttypes.h>
31
32#ifdef HAVE_MLIB
33#include <mlib_video.h>
34#endif
35
36#include "yuv2rgb.h"
37
40
41typedef void (*scale_line_func_t) (const uint8_t *restrict source,
42 uint8_t *restrict dest,
43 int width, int step);
44
46
48
56
57 uint8_t *y_buffer;
58 uint8_t *u_buffer;
59 uint8_t *v_buffer;
60
61 void * const *table_rV;
62 void * const *table_gU;
63 const int *table_gV;
64 void * const *table_bU;
65 const void *table_mmx;
66
67 const uint8_t *cmap;
69
70#ifdef HAVE_MLIB
71 uint8_t *mlib_buffer;
72 uint8_t *mlib_resize_buffer;
73 mlib_filter mlib_filter_type;
74#endif
75};
76
78
80
81 int mode;
83 const uint8_t *cmap;
84
86 void *table_rV[256];
87 void *table_gU[256];
88 int table_gV[256];
89 void *table_bU[256];
90 void *table_mmx;
91
92 /* preselected functions for mode/swap/hardware */
96};
97
99 int brightness, int contrast, int saturation,
100 int colormatrix);
104
105
106#endif /* YUV2RGB_PRIVATE_H */
#define restrict
Definition configure.h:972
contrast
Definition eq.c:160
unsigned int width
Definition gfontrle.c:4
Definition yuv2rgb_private.h:77
void * table_rV[256]
Definition yuv2rgb_private.h:86
yuy22rgb_fun_t yuy22rgb_fun
Definition yuv2rgb_private.h:94
void * table_gU[256]
Definition yuv2rgb_private.h:87
int mode
Definition yuv2rgb_private.h:81
int swapped
Definition yuv2rgb_private.h:82
void * table_base
Definition yuv2rgb_private.h:85
void * table_bU[256]
Definition yuv2rgb_private.h:89
void * table_mmx
Definition yuv2rgb_private.h:90
yuv2rgb_fun_t yuv2rgb_fun
Definition yuv2rgb_private.h:93
yuv2rgb_factory_t intf
Definition yuv2rgb_private.h:79
int table_gV[256]
Definition yuv2rgb_private.h:88
yuv2rgb_single_pixel_fun_t yuv2rgb_single_pixel_fun
Definition yuv2rgb_private.h:95
const uint8_t * cmap
Definition yuv2rgb_private.h:83
Definition yuv2rgb.h:123
Definition yuv2rgb_private.h:45
int source_height
Definition yuv2rgb_private.h:49
void *const * table_bU
Definition yuv2rgb_private.h:64
int rgb_stride
Definition yuv2rgb_private.h:52
int do_scale
Definition yuv2rgb_private.h:55
uint8_t * u_buffer
Definition yuv2rgb_private.h:58
int source_width
Definition yuv2rgb_private.h:49
int slice_offset
Definition yuv2rgb_private.h:53
int y_stride
Definition yuv2rgb_private.h:50
int dest_width
Definition yuv2rgb_private.h:51
int step_dx
Definition yuv2rgb_private.h:54
int slice_height
Definition yuv2rgb_private.h:53
yuv2rgb_t intf
Definition yuv2rgb_private.h:47
uint8_t * y_buffer
Definition yuv2rgb_private.h:57
const void * table_mmx
Definition yuv2rgb_private.h:65
uint8_t * v_buffer
Definition yuv2rgb_private.h:59
int step_dy
Definition yuv2rgb_private.h:54
scale_line_func_t scale_line
Definition yuv2rgb_private.h:68
int dest_height
Definition yuv2rgb_private.h:51
void *const * table_gU
Definition yuv2rgb_private.h:62
void *const * table_rV
Definition yuv2rgb_private.h:61
int swapped
Definition yuv2rgb_private.h:55
const uint8_t * cmap
Definition yuv2rgb_private.h:67
int uv_stride
Definition yuv2rgb_private.h:50
const int * table_gV
Definition yuv2rgb_private.h:63
Definition yuv2rgb.h:81
void(* yuy22rgb_fun_t)(yuv2rgb_t *this, uint8_t *restrict image, const uint8_t *restrict p)
Definition yuv2rgb.h:49
uint32_t(* yuv2rgb_single_pixel_fun_t)(yuv2rgb_t *this, uint8_t y, uint8_t u, uint8_t v)
Definition yuv2rgb.h:53
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
void yuv2rgb_init_mlib(yuv2rgb_factory_impl_t *this)
void mmx_yuv2rgb_set_csc_levels(yuv2rgb_factory_t *this, int brightness, int contrast, int saturation, int colormatrix)
void(* scale_line_func_t)(const uint8_t *restrict source, uint8_t *restrict dest, int width, int step)
Definition yuv2rgb_private.h:41
void yuv2rgb_init_mmx(yuv2rgb_factory_impl_t *this)
void yuv2rgb_init_mmxext(yuv2rgb_factory_impl_t *this)