xine-lib: xine-lib-1.2.12/src/xine-utils/yuv2rgb.c File Reference

xine-lib 1.2.12

Macros | Functions | Variables
yuv2rgb.c File Reference
`#include "config.h"`
`#include <stdio.h>`
`#include <stdlib.h>`
`#include <string.h>`
`#include <inttypes.h>`
`#include "yuv2rgb_private.h"`
`#include <xine/xineutils.h>`

## Macros
#define | LOG_MODULE "yuv2rgb"
#define | LOG_VERBOSE
#define | X_RGB(i)
#define | DST1(i)
#define | DST2(i)
#define | DST1RGB(i)
#define | DST2RGB(i)
#define | DST1BGR(i)
#define | DST2BGR(i)
#define | DST1CMAP(i)
#define | DST2CMAP(i)

## Functions
static scale_line_func_t | find_scale_line_func (int step)
static int | yuv2rgb_next_slice (yuv2rgb_impl_t *this, uint8_t *restrict *dest)
static int | yuv2rgb_next_slice_intf (yuv2rgb_t *this_gen, uint8_t **dest)
static void | yuv2rgb_dispose (yuv2rgb_t *this_gen)
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)
static void | scale_line_gen (const uint8_t *restrict source, uint8_t *restrict dest, int width, int step)
static void | scale_line_15_16 (const uint8_t *restrict source, uint8_t *restrict dest, int width, int step)
static void | scale_line_45_53 (const uint8_t *restrict source, uint8_t *restrict dest, int width, int step)
static void | scale_line_45_64 (const uint8_t *restrict source, uint8_t *restrict dest, int width, int step)
static void | scale_line_9_16 (const uint8_t *restrict source, uint8_t *restrict dest, int width, int step)
static void | scale_line_11_12 (const uint8_t *restrict source, uint8_t *restrict dest, int width, int step)
static void | scale_line_11_24 (const uint8_t *restrict source, uint8_t *restrict dest, int width, int step)
static void | scale_line_5_8 (const uint8_t *restrict source, uint8_t *restrict dest, int width, int step)
static void | scale_line_3_4 (const uint8_t *restrict source, uint8_t *restrict dest, int width, int step)
static void | scale_line_1_2 (const uint8_t *restrict source, uint8_t *restrict dest, int width, int step)
static void | scale_line_5_4 (const uint8_t *restrict source, uint8_t *restrict dest, int width, int step)
static void | scale_line_2_3 (const uint8_t *restrict source, uint8_t *restrict dest, int width, int step)
static void | scale_line_1_1 (const uint8_t *restrict source, uint8_t *restrict dest, int width, int step)
static void | scale_line_2 (const uint8_t *restrict source, uint8_t *restrict dest, int width, int step)
static void | scale_line_4 (const uint8_t *restrict source, uint8_t *restrict dest, int width, int step)
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)
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)
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)
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)
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)
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)
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)
static int | div_round (int dividend, int divisor)
static int | _yuv2rgb_set_csc_levels (yuv2rgb_factory_t *this_gen, int brightness, int contrast, int saturation, int colormatrix)
static void | yuv2rgb_set_csc_levels (yuv2rgb_factory_t *this_gen, int brightness, int contrast, int saturation, int colormatrix)
static uint32_t | yuv2rgb_single_pixel_32 (yuv2rgb_t *this_gen, uint8_t y, uint8_t u, uint8_t v)
static uint32_t | yuv2rgb_single_pixel_24_rgb (yuv2rgb_t *this_gen, uint8_t y, uint8_t u, uint8_t v)
static uint32_t | yuv2rgb_single_pixel_24_bgr (yuv2rgb_t *this_gen, uint8_t y, uint8_t u, uint8_t v)
static uint32_t | yuv2rgb_single_pixel_16 (yuv2rgb_t *this_gen, uint8_t y, uint8_t u, uint8_t v)
static uint32_t | yuv2rgb_single_pixel_8 (yuv2rgb_t *this_gen, uint8_t y, uint8_t u, uint8_t v)
static uint32_t | yuv2rgb_single_pixel_gray (yuv2rgb_t *this_gen, uint8_t y, uint8_t u, uint8_t v)
static uint32_t | yuv2rgb_single_pixel_palette (yuv2rgb_t *this_gen, uint8_t y, uint8_t u, uint8_t v)
static int | yuv2rgb_c_init (yuv2rgb_factory_impl_t *this)
static int | yuv2rgb_single_pixel_init (yuv2rgb_factory_impl_t *this)
static void | yuy22rgb_c_32 (yuv2rgb_t *this_gen, uint8_t *restrict _dst, const uint8_t *restrict _p)
static void | yuy22rgb_c_24_rgb (yuv2rgb_t *this_gen, uint8_t *restrict _dst, const uint8_t *restrict _p)
static void | yuy22rgb_c_24_bgr (yuv2rgb_t *this_gen, uint8_t *restrict _dst, const uint8_t *restrict _p)
static void | yuy22rgb_c_16 (yuv2rgb_t *this_gen, uint8_t *restrict _dst, const uint8_t *restrict _p)
static void | yuy22rgb_c_8 (yuv2rgb_t *this_gen, uint8_t *restrict _dst, const uint8_t *restrict _p)
static void | yuy22rgb_c_gray (yuv2rgb_t *this_gen, uint8_t *restrict _dst, const uint8_t *restrict _p)
static void | yuy22rgb_c_palette (yuv2rgb_t *this_gen, uint8_t *restrict _dst, const uint8_t *restrict _p)
static int | yuy22rgb_c_init (yuv2rgb_factory_impl_t *this)
static yuv2rgb_t * | yuv2rgb_create_converter (yuv2rgb_factory_t *this_gen)
static void | yuv2rgb_factory_dispose (yuv2rgb_factory_t *this_gen)
yuv2rgb_factory_t * | yuv2rgb_factory_init (int mode, int swapped, const uint8_t *cmap)

## Variables
static int | prof_scale_line = -1
const int32_t | Inverse_Table_6_9 [8][4]

## Macro Definition Documentation

## ◆ DST1

#define DST1 | ( |  | i | ) |

Value:
Y = py_1[2*i]; \
dst_1[2*i] = r[Y] + g[Y] + b[Y]; \
Y = py_1[2*i+1]; \
dst_1[2*i+1] = r[Y] + g[Y] + b[Y];

## ◆ DST1BGR

#define DST1BGR | ( |  | i | ) |

Value:
Y = py_1[2*i]; \
dst_1[6*i] = b[Y]; dst_1[6*i+1] = g[Y]; dst_1[6*i+2] = r[Y]; \
Y = py_1[2*i+1]; \
dst_1[6*i+3] = b[Y]; dst_1[6*i+4] = g[Y]; dst_1[6*i+5] = r[Y];

## ◆ DST1CMAP

#define DST1CMAP | ( |  | i | ) |

Value:
Y = py_1[2*i]; \
dst_1[2*i] = this->cmap[r[Y] + g[Y] + b[Y]]; \
Y = py_1[2*i+1]; \
dst_1[2*i+1] = this->cmap[r[Y] + g[Y] + b[Y]];

## ◆ DST1RGB

#define DST1RGB | ( |  | i | ) |

Value:
Y = py_1[2*i]; \
dst_1[6*i] = r[Y]; dst_1[6*i+1] = g[Y]; dst_1[6*i+2] = b[Y]; \
Y = py_1[2*i+1]; \
dst_1[6*i+3] = r[Y]; dst_1[6*i+4] = g[Y]; dst_1[6*i+5] = b[Y];

## ◆ DST2

#define DST2 | ( |  | i | ) |

Value:
Y = py_2[2*i]; \
dst_2[2*i] = r[Y] + g[Y] + b[Y]; \
Y = py_2[2*i+1]; \
dst_2[2*i+1] = r[Y] + g[Y] + b[Y];

## ◆ DST2BGR

#define DST2BGR | ( |  | i | ) |

Value:
Y = py_2[2*i]; \
dst_2[6*i] = b[Y]; dst_2[6*i+1] = g[Y]; dst_2[6*i+2] = r[Y]; \
Y = py_2[2*i+1]; \
dst_2[6*i+3] = b[Y]; dst_2[6*i+4] = g[Y]; dst_2[6*i+5] = r[Y];

## ◆ DST2CMAP

#define DST2CMAP | ( |  | i | ) |

Value:
Y = py_2[2*i]; \
dst_2[2*i] = this->cmap[r[Y] + g[Y] + b[Y]]; \
Y = py_2[2*i+1]; \
dst_2[2*i+1] = this->cmap[r[Y] + g[Y] + b[Y]];

## ◆ DST2RGB

#define DST2RGB | ( |  | i | ) |

Value:
Y = py_2[2*i]; \
dst_2[6*i] = r[Y]; dst_2[6*i+1] = g[Y]; dst_2[6*i+2] = b[Y]; \
Y = py_2[2*i+1]; \
dst_2[6*i+3] = r[Y]; dst_2[6*i+4] = g[Y]; dst_2[6*i+5] = b[Y];

## ◆ LOG_MODULE

#define LOG_MODULE "yuv2rgb"

## ◆ LOG_VERBOSE

#define LOG_VERBOSE

## ◆ X_RGB

#define X_RGB | ( |  | i | ) |

Value:
U = pu[i]; \
V = pv[i]; \
r = this->table_rV[V]; \
g = (void *) (((uint8_t *)this->table_gU[U]) + this->table_gV[V]); \
b = this->table_bU[U];

## Function Documentation

## ◆ _yuv2rgb_set_csc_levels()

static int _yuv2rgb_set_csc_levels | ( | yuv2rgb_factory_t * | this_gen,
|  | int | brightness,
|  | int | contrast,
|  | int | saturation,
|  | int | colormatrix
| ) |  |
| static

References contrast, div_round(), Inverse_Table_6_9, lprintf, mmx_yuv2rgb_set_csc_levels(), mode(), MODE_15_BGR, MODE_15_RGB, MODE_16_BGR, MODE_16_RGB, MODE_24_BGR, MODE_24_RGB, MODE_32_BGR, MODE_32_RGB, MODE_8_BGR, MODE_8_GRAY, MODE_8_RGB, MODE_PALETTE, and NULL.

Referenced by yuv2rgb_factory_init(), and yuv2rgb_set_csc_levels().

## ◆ div_round()

static int div_round | ( | int | dividend,
|  | int | divisor
| ) |  |
| static

Referenced by _yuv2rgb_set_csc_levels().

## ◆ find_scale_line_func()

static scale_line_func_t find_scale_line_func | ( | int | step | ) |
| static

References scale_line_11_12(), scale_line_11_24(), scale_line_15_16(), scale_line_1_1(), scale_line_1_2(), scale_line_2_3(), scale_line_3_4(), scale_line_45_53(), scale_line_45_64(), scale_line_5_4(), scale_line_5_8(), scale_line_9_16(), and scale_line_gen().

Referenced by yuv2rgb_configure().

## ◆ scale_line_11_12()

static void scale_line_11_12 | ( | const uint8_t *restrict | source,
|  | uint8_t *restrict | dest,
|  | int | width,
|  | int | step
| ) |  |
| static

References prof_scale_line, width, xine_profiler_start_count(), and xine_profiler_stop_count().

Referenced by find_scale_line_func().

## ◆ scale_line_11_24()

static void scale_line_11_24 | ( | const uint8_t *restrict | source,
|  | uint8_t *restrict | dest,
|  | int | width,
|  | int | step
| ) |  |
| static

References prof_scale_line, width, xine_profiler_start_count(), and xine_profiler_stop_count().

Referenced by find_scale_line_func().

## ◆ scale_line_15_16()

static void scale_line_15_16 | ( | const uint8_t *restrict | source,
|  | uint8_t *restrict | dest,
|  | int | width,
|  | int | step
| ) |  |
| static

References prof_scale_line, width, xine_profiler_start_count(), and xine_profiler_stop_count().

Referenced by find_scale_line_func().

## ◆ scale_line_1_1()

static void scale_line_1_1 | ( | const uint8_t *restrict | source,
|  | uint8_t *restrict | dest,
|  | int | width,
|  | int | step
| ) |  |
| static

References prof_scale_line, width, xine_fast_memcpy, xine_profiler_start_count(), and xine_profiler_stop_count().

Referenced by find_scale_line_func().

## ◆ scale_line_1_2()

static void scale_line_1_2 | ( | const uint8_t *restrict | source,
|  | uint8_t *restrict | dest,
|  | int | width,
|  | int | step
| ) |  |
| static

References prof_scale_line, width, xine_profiler_start_count(), and xine_profiler_stop_count().

Referenced by find_scale_line_func().

## ◆ scale_line_2()

static void scale_line_2 | ( | const uint8_t *restrict | source,
|  | uint8_t *restrict | dest,
|  | int | width,
|  | int | step
| ) |  |
| static

References width.

Referenced by yuy22rgb_c_16(), yuy22rgb_c_24_bgr(), yuy22rgb_c_24_rgb(), yuy22rgb_c_32(), yuy22rgb_c_8(), yuy22rgb_c_gray(), and yuy22rgb_c_palette().

## ◆ scale_line_2_3()

static void scale_line_2_3 | ( | const uint8_t *restrict | source,
|  | uint8_t *restrict | dest,
|  | int | width,
|  | int | step
| ) |  |
| static

References prof_scale_line, width, xine_profiler_start_count(), and xine_profiler_stop_count().

Referenced by find_scale_line_func().

## ◆ scale_line_3_4()

static void scale_line_3_4 | ( | const uint8_t *restrict | source,
|  | uint8_t *restrict | dest,
|  | int | width,
|  | int | step
| ) |  |
| static

References prof_scale_line, width, xine_profiler_start_count(), and xine_profiler_stop_count().

Referenced by find_scale_line_func().

## ◆ scale_line_4()

static void scale_line_4 | ( | const uint8_t *restrict | source,
|  | uint8_t *restrict | dest,
|  | int | width,
|  | int | step
| ) |  |
| static

References width.

Referenced by yuy22rgb_c_16(), yuy22rgb_c_24_bgr(), yuy22rgb_c_24_rgb(), yuy22rgb_c_32(), yuy22rgb_c_8(), and yuy22rgb_c_palette().

## ◆ scale_line_45_53()

static void scale_line_45_53 | ( | const uint8_t *restrict | source,
|  | uint8_t *restrict | dest,
|  | int | width,
|  | int | step
| ) |  |
| static

References prof_scale_line, width, xine_profiler_start_count(), and xine_profiler_stop_count().

Referenced by find_scale_line_func().

## ◆ scale_line_45_64()

static void scale_line_45_64 | ( | const uint8_t *restrict | source,
|  | uint8_t *restrict | dest,
|  | int | width,
|  | int | step
| ) |  |
| static

References prof_scale_line, width, xine_profiler_start_count(), and xine_profiler_stop_count().

Referenced by find_scale_line_func().

## ◆ scale_line_5_4()

static void scale_line_5_4 | ( | const uint8_t *restrict | source,
|  | uint8_t *restrict | dest,
|  | int | width,
|  | int | step
| ) |  |
| static

References prof_scale_line, width, xine_profiler_start_count(), and xine_profiler_stop_count().

Referenced by find_scale_line_func().

## ◆ scale_line_5_8()

static void scale_line_5_8 | ( | const uint8_t *restrict | source,
|  | uint8_t *restrict | dest,
|  | int | width,
|  | int | step
| ) |  |
| static

References prof_scale_line, width, xine_profiler_start_count(), and xine_profiler_stop_count().

Referenced by find_scale_line_func().

## ◆ scale_line_9_16()

static void scale_line_9_16 | ( | const uint8_t *restrict | source,
|  | uint8_t *restrict | dest,
|  | int | width,
|  | int | step
| ) |  |
| static

References prof_scale_line, width, xine_profiler_start_count(), and xine_profiler_stop_count().

Referenced by find_scale_line_func().

## ◆ scale_line_gen()

static void scale_line_gen | ( | const uint8_t *restrict | source,
|  | uint8_t *restrict | dest,
|  | int | width,
|  | int | step
| ) |  |
| static

References prof_scale_line, width, xine_profiler_start_count(), and xine_profiler_stop_count().

Referenced by find_scale_line_func().

## ◆ 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
| ) |  |
| static

References DST1, DST2, height, width, X_RGB, xine_fast_memcpy, and yuv2rgb_next_slice().

Referenced by yuv2rgb_c_init().

## ◆ 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
| ) |  |
| static

References DST1BGR, DST2BGR, height, width, X_RGB, xine_fast_memcpy, and yuv2rgb_next_slice().

Referenced by yuv2rgb_c_init().

## ◆ 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
| ) |  |
| static

References DST1RGB, DST2RGB, height, width, X_RGB, xine_fast_memcpy, and yuv2rgb_next_slice().

Referenced by yuv2rgb_c_init().

## ◆ 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
| ) |  |
| static

References DST1, DST2, height, width, X_RGB, xine_fast_memcpy, and yuv2rgb_next_slice().

Referenced by yuv2rgb_c_init().

## ◆ 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
| ) |  |
| static

References DST1, DST2, height, width, X_RGB, xine_fast_memcpy, and yuv2rgb_next_slice().

Referenced by yuv2rgb_c_init().

## ◆ 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
| ) |  |
| static

References height, xine_fast_memcpy, and yuv2rgb_next_slice().

Referenced by yuv2rgb_c_init().

## ◆ yuv2rgb_c_init()

static int yuv2rgb_c_init | ( | yuv2rgb_factory_impl_t * | this | ) |
| static

References lprintf, mode(), MODE_15_BGR, MODE_15_RGB, MODE_16_BGR, MODE_16_RGB, MODE_24_BGR, MODE_24_RGB, MODE_32_BGR, MODE_32_RGB, MODE_8_BGR, MODE_8_GRAY, MODE_8_RGB, MODE_PALETTE, yuv2rgb_c_16(), yuv2rgb_c_24_bgr(), yuv2rgb_c_24_rgb(), yuv2rgb_c_32(), yuv2rgb_c_8(), yuv2rgb_c_gray(), and yuv2rgb_c_palette().

Referenced by yuv2rgb_factory_init().

## ◆ 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
| ) |  |
| static

References DST1CMAP, DST2CMAP, height, width, X_RGB, xine_fast_memcpy, and yuv2rgb_next_slice().

Referenced by yuv2rgb_c_init().

## ◆ 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
| ) |  |
| static

References find_scale_line_func(), prof_scale_line, xine_freep_aligned, xine_malloc_aligned(), and xine_profiler_allocate_slot().

Referenced by yuv2rgb_create_converter().

## ◆ yuv2rgb_create_converter()

static yuv2rgb_t * yuv2rgb_create_converter | ( | yuv2rgb_factory_t * | this_gen | ) |
| static

References yuv2rgb_factory_impl_s::cmap, yuv2rgb_s::configure, yuv2rgb_s::dispose, yuv2rgb_s::next_slice, NULL, yuv2rgb_factory_impl_s::swapped, yuv2rgb_factory_impl_s::table_bU, yuv2rgb_factory_impl_s::table_gU, yuv2rgb_factory_impl_s::table_gV, yuv2rgb_factory_impl_s::table_mmx, yuv2rgb_factory_impl_s::table_rV, yuv2rgb_configure(), yuv2rgb_dispose(), yuv2rgb_s::yuv2rgb_fun, yuv2rgb_factory_impl_s::yuv2rgb_fun, yuv2rgb_next_slice_intf(), yuv2rgb_s::yuv2rgb_single_pixel_fun, yuv2rgb_factory_impl_s::yuv2rgb_single_pixel_fun, yuv2rgb_s::yuy22rgb_fun, and yuv2rgb_factory_impl_s::yuy22rgb_fun.

Referenced by yuv2rgb_factory_init().

## ◆ yuv2rgb_dispose()

static void yuv2rgb_dispose | ( | yuv2rgb_t * | this_gen | ) |
| static

References xine_free_aligned().

Referenced by yuv2rgb_create_converter().

## ◆ yuv2rgb_factory_dispose()

static void yuv2rgb_factory_dispose | ( | yuv2rgb_factory_t * | this_gen | ) |
| static

References _x_freep(), and xine_freep_aligned.

Referenced by yuv2rgb_factory_init().

## ◆ yuv2rgb_factory_init()

yuv2rgb_factory_t * yuv2rgb_factory_init | ( | int | mode,
|  | int | swapped,
|  | const uint8_t * | cmap
| ) |  |

References _yuv2rgb_set_csc_levels(), CM_DEFAULT, yuv2rgb_factory_s::create_converter, yuv2rgb_factory_s::dispose, lprintf, MM_ACCEL_MLIB, MM_ACCEL_X86_MMX, MM_ACCEL_X86_MMXEXT, mode(), NULL, yuv2rgb_factory_s::set_csc_levels, xine_mm_accel(), yuv2rgb_c_init(), yuv2rgb_create_converter(), yuv2rgb_factory_dispose(), yuv2rgb_init_mlib(), yuv2rgb_init_mmx(), yuv2rgb_init_mmxext(), yuv2rgb_set_csc_levels(), yuv2rgb_single_pixel_init(), and yuy22rgb_c_init().

Referenced by open_plugin(), opengl_open_plugin(), raw_open_plugin(), setup_yuv2rgb(), vo_grab_grab_video_frame(), xshm_open_plugin(), and xshm_open_plugin_2().

## ◆ yuv2rgb_next_slice()

static int yuv2rgb_next_slice | ( | yuv2rgb_impl_t * | this,
|  | uint8_t *restrict * | dest
| ) |  |
| static

References NULL.

Referenced by yuv2rgb_c_16(), yuv2rgb_c_24_bgr(), yuv2rgb_c_24_rgb(), yuv2rgb_c_32(), yuv2rgb_c_8(), yuv2rgb_c_gray(), yuv2rgb_c_palette(), yuv2rgb_next_slice_intf(), yuy22rgb_c_16(), yuy22rgb_c_24_bgr(), yuy22rgb_c_24_rgb(), yuy22rgb_c_32(), yuy22rgb_c_8(), yuy22rgb_c_gray(), and yuy22rgb_c_palette().

## ◆ yuv2rgb_next_slice_intf()

static int yuv2rgb_next_slice_intf | ( | yuv2rgb_t * | this_gen,
|  | uint8_t ** | dest
| ) |  |
| static

References yuv2rgb_next_slice().

Referenced by yuv2rgb_create_converter().

## ◆ yuv2rgb_set_csc_levels()

static void yuv2rgb_set_csc_levels | ( | yuv2rgb_factory_t * | this_gen,
|  | int | brightness,
|  | int | contrast,
|  | int | saturation,
|  | int | colormatrix
| ) |  |
| static

References _yuv2rgb_set_csc_levels(), and contrast.

Referenced by yuv2rgb_factory_init().

## ◆ yuv2rgb_single_pixel_16()

static uint32_t yuv2rgb_single_pixel_16 | ( | yuv2rgb_t * | this_gen,
|  | uint8_t | y,
|  | uint8_t | u,
|  | uint8_t | v
| ) |  |
| static

References v.

Referenced by yuv2rgb_single_pixel_init().

## ◆ 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
| ) |  |
| static

References v.

Referenced by yuv2rgb_single_pixel_init().

## ◆ 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
| ) |  |
| static

References v.

Referenced by yuv2rgb_single_pixel_init().

## ◆ yuv2rgb_single_pixel_32()

static uint32_t yuv2rgb_single_pixel_32 | ( | yuv2rgb_t * | this_gen,
|  | uint8_t | y,
|  | uint8_t | u,
|  | uint8_t | v
| ) |  |
| static

References v.

Referenced by yuv2rgb_single_pixel_init().

## ◆ yuv2rgb_single_pixel_8()

static uint32_t yuv2rgb_single_pixel_8 | ( | yuv2rgb_t * | this_gen,
|  | uint8_t | y,
|  | uint8_t | u,
|  | uint8_t | v
| ) |  |
| static

References v.

Referenced by yuv2rgb_single_pixel_init().

## ◆ yuv2rgb_single_pixel_gray()

static uint32_t yuv2rgb_single_pixel_gray | ( | yuv2rgb_t * | this_gen,
|  | uint8_t | y,
|  | uint8_t | u,
|  | uint8_t | v
| ) |  |
| static

References v.

Referenced by yuv2rgb_single_pixel_init().

## ◆ yuv2rgb_single_pixel_init()

static int yuv2rgb_single_pixel_init | ( | yuv2rgb_factory_impl_t * | this | ) |
| static

References lprintf, mode(), MODE_15_BGR, MODE_15_RGB, MODE_16_BGR, MODE_16_RGB, MODE_24_BGR, MODE_24_RGB, MODE_32_BGR, MODE_32_RGB, MODE_8_BGR, MODE_8_GRAY, MODE_8_RGB, MODE_PALETTE, yuv2rgb_single_pixel_16(), yuv2rgb_single_pixel_24_bgr(), yuv2rgb_single_pixel_24_rgb(), yuv2rgb_single_pixel_32(), yuv2rgb_single_pixel_8(), yuv2rgb_single_pixel_gray(), and yuv2rgb_single_pixel_palette().

Referenced by yuv2rgb_factory_init().

## ◆ yuv2rgb_single_pixel_palette()

static uint32_t yuv2rgb_single_pixel_palette | ( | yuv2rgb_t * | this_gen,
|  | uint8_t | y,
|  | uint8_t | u,
|  | uint8_t | v
| ) |  |
| static

References v.

Referenced by yuv2rgb_single_pixel_init().

## ◆ yuy22rgb_c_16()

static void yuy22rgb_c_16 | ( | yuv2rgb_t * | this_gen,
|  | uint8_t *restrict | _dst,
|  | const uint8_t *restrict | _p
| ) |  |
| static

References DST1, height, scale_line_2(), scale_line_4(), width, X_RGB, xine_fast_memcpy, and yuv2rgb_next_slice().

Referenced by yuy22rgb_c_init().

## ◆ yuy22rgb_c_24_bgr()

static void yuy22rgb_c_24_bgr | ( | yuv2rgb_t * | this_gen,
|  | uint8_t *restrict | _dst,
|  | const uint8_t *restrict | _p
| ) |  |
| static

References DST1BGR, height, scale_line_2(), scale_line_4(), width, X_RGB, xine_fast_memcpy, and yuv2rgb_next_slice().

Referenced by yuy22rgb_c_init().

## ◆ yuy22rgb_c_24_rgb()

static void yuy22rgb_c_24_rgb | ( | yuv2rgb_t * | this_gen,
|  | uint8_t *restrict | _dst,
|  | const uint8_t *restrict | _p
| ) |  |
| static

References DST1RGB, height, scale_line_2(), scale_line_4(), width, X_RGB, xine_fast_memcpy, and yuv2rgb_next_slice().

Referenced by yuy22rgb_c_init().

## ◆ yuy22rgb_c_32()

static void yuy22rgb_c_32 | ( | yuv2rgb_t * | this_gen,
|  | uint8_t *restrict | _dst,
|  | const uint8_t *restrict | _p
| ) |  |
| static

References DST1, height, scale_line_2(), scale_line_4(), width, X_RGB, xine_fast_memcpy, and yuv2rgb_next_slice().

Referenced by yuy22rgb_c_init().

## ◆ yuy22rgb_c_8()

static void yuy22rgb_c_8 | ( | yuv2rgb_t * | this_gen,
|  | uint8_t *restrict | _dst,
|  | const uint8_t *restrict | _p
| ) |  |
| static

References DST1, height, scale_line_2(), scale_line_4(), width, X_RGB, xine_fast_memcpy, and yuv2rgb_next_slice().

Referenced by yuy22rgb_c_init().

## ◆ yuy22rgb_c_gray()

static void yuy22rgb_c_gray | ( | yuv2rgb_t * | this_gen,
|  | uint8_t *restrict | _dst,
|  | const uint8_t *restrict | _p
| ) |  |
| static

References height, scale_line_2(), width, xine_fast_memcpy, and yuv2rgb_next_slice().

Referenced by yuy22rgb_c_init().

## ◆ yuy22rgb_c_init()

static int yuy22rgb_c_init | ( | yuv2rgb_factory_impl_t * | this | ) |
| static

References lprintf, mode(), MODE_15_BGR, MODE_15_RGB, MODE_16_BGR, MODE_16_RGB, MODE_24_BGR, MODE_24_RGB, MODE_32_BGR, MODE_32_RGB, MODE_8_BGR, MODE_8_GRAY, MODE_8_RGB, MODE_PALETTE, yuy22rgb_c_16(), yuy22rgb_c_24_bgr(), yuy22rgb_c_24_rgb(), yuy22rgb_c_32(), yuy22rgb_c_8(), yuy22rgb_c_gray(), and yuy22rgb_c_palette().

Referenced by yuv2rgb_factory_init().

## ◆ yuy22rgb_c_palette()

static void yuy22rgb_c_palette | ( | yuv2rgb_t * | this_gen,
|  | uint8_t *restrict | _dst,
|  | const uint8_t *restrict | _p
| ) |  |
| static

References DST1CMAP, height, scale_line_2(), scale_line_4(), width, X_RGB, xine_fast_memcpy, and yuv2rgb_next_slice().

Referenced by yuy22rgb_c_init().

## Variable Documentation

## ◆ Inverse_Table_6_9

const int32_t Inverse_Table_6_9[8][4]

Initial value:
= {
{117504, 138453, 13954, 34903},
{117504, 138453, 13954, 34903},
{104597, 132201, 25675, 53279},
{104597, 132201, 25675, 53279},
{104448, 132798, 24759, 53109},
{104597, 132201, 25675, 53279},
{104597, 132201, 25675, 53279},
{117579, 136230, 16907, 35559}
}

Referenced by _yuv2rgb_set_csc_levels().

## ◆ prof_scale_line

int prof_scale_line = -1
| static

Referenced by scale_line_11_12(), scale_line_11_24(), scale_line_15_16(), scale_line_1_1(), scale_line_1_2(), scale_line_2_3(), scale_line_3_4(), scale_line_45_53(), scale_line_45_64(), scale_line_5_4(), scale_line_5_8(), scale_line_9_16(), scale_line_gen(), and yuv2rgb_configure().