xine-lib: xine-lib-1.2.13/src/video_out/video_out_raw.c File Reference

xine-lib 1.2.13-20230125hg15249

Data Structures | Macros | Functions | Variables
video_out_raw.c File Reference
`#include <stdio.h>`
`#include <stdlib.h>`
`#include <unistd.h>`
`#include <string.h>`
`#include <math.h>`
`#include <errno.h>`
`#include <ctype.h>`
`#include <pthread.h>`
`#include <xine.h>`
`#include <xine/video_out.h>`
`#include <xine/xine_internal.h>`
`#include "yuv2rgb.h"`
`#include <xine/xineutils.h>`

## Data Structures
struct | raw_frame_t
struct | raw_driver_t
struct | raw_class_t

## Macros
#define | LOG_MODULE "video_out_raw"
#define | NUM_FRAMES_BACKLOG 4
#define | BYTES_PER_PIXEL 3

## Functions
static int | raw_process_ovl (raw_driver_t *this_gen, vo_overlay_t *overlay)
static void | raw_overlay_begin (vo_driver_t *this_gen, vo_frame_t *frame_gen, int changed)
static void | raw_overlay_blend (vo_driver_t *this_gen, vo_frame_t *frame_gen, vo_overlay_t *overlay)
static void | raw_overlay_end (vo_driver_t *this_gen, vo_frame_t *vo_img)
static void | raw_frame_proc_slice (vo_frame_t *vo_img, uint8_t **src)
static void | raw_frame_field (vo_frame_t *vo_img, int which_field)
static void | raw_frame_dispose (vo_frame_t *vo_img)
static vo_frame_t * | raw_alloc_frame (vo_driver_t *this_gen)
static void | raw_update_frame_format (vo_driver_t *this_gen, vo_frame_t *frame_gen, uint32_t width, uint32_t height, double ratio, int format, int flags)
static int | raw_redraw_needed (vo_driver_t *this_gen)
static void | raw_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen)
static int | raw_get_property (vo_driver_t *this_gen, int property)
static int | raw_set_property (vo_driver_t *this_gen, int property, int value)
static void | raw_get_property_min_max (vo_driver_t *this_gen, int property, int *min, int *max)
static int | raw_gui_data_exchange (vo_driver_t *this_gen, int data_type, void *data)
static uint32_t | raw_get_capabilities (vo_driver_t *this_gen)
static void | raw_dispose (vo_driver_t *this_gen)
static vo_driver_t * | raw_open_plugin (video_driver_class_t *class_gen, const void *visual_gen)
static void * | raw_init_class (xine_t *xine, const void *visual_gen)

## Variables
static const vo_info_t | vo_info_raw
const plugin_info_t xine_plugin_info[] | EXPORTED

## Macro Definition Documentation

## ◆ BYTES_PER_PIXEL

#define BYTES_PER_PIXEL 3

Referenced by raw_frame_field(), and raw_update_frame_format().

## ◆ LOG_MODULE

#define LOG_MODULE "video_out_raw"

Referenced by raw_open_plugin().

## ◆ NUM_FRAMES_BACKLOG

#define NUM_FRAMES_BACKLOG 4

Referenced by raw_display_frame(), raw_dispose(), raw_open_plugin(), and raw_set_property().

## Function Documentation

## ◆ raw_alloc_frame()

static vo_frame_t * raw_alloc_frame | ( | vo_driver_t * | this_gen | ) |
| static

References vo_frame_s::base, vo_frame_s::dispose, vo_frame_s::driver, vo_frame_s::field, raw_frame_t::flags, raw_frame_t::format, raw_frame_t::height, vo_frame_s::mutex, NULL, vo_frame_s::proc_frame, vo_frame_s::proc_slice, raw_frame_dispose(), raw_frame_field(), raw_frame_proc_slice(), raw_frame_t::rgb, raw_frame_t::vo_frame, raw_frame_t::width, and raw_frame_t::yuv2rgb.

Referenced by raw_open_plugin().

## ◆ raw_display_frame()

static void raw_display_frame | ( | vo_driver_t * | this_gen,
|  | vo_frame_t * | frame_gen )
| static

References vo_frame_s::base, raw_frame_t::format, vo_frame_s::free, raw_frame_t::height, NUM_FRAMES_BACKLOG, raw_frame_t::ratio, raw_frame_t::rgb, raw_frame_t::rgb_dst, user_data(), raw_frame_t::vo_frame, raw_frame_t::width, XINE_IMGFMT_YV12, XINE_VORAW_RGB, XINE_VORAW_YUY2, and XINE_VORAW_YV12.

Referenced by raw_open_plugin().

## ◆ raw_dispose()

static void raw_dispose | ( | vo_driver_t * | this_gen | ) |
| static

References NUM_FRAMES_BACKLOG, and XINE_VORAW_MAX_OVL.

Referenced by raw_open_plugin().

## ◆ raw_frame_dispose()

static void raw_frame_dispose | ( | vo_frame_t * | vo_img | ) |
| static

References vo_frame_s::base, yuv2rgb_s::dispose, raw_frame_t::rgb, raw_frame_t::vo_frame, xine_free_aligned(), and raw_frame_t::yuv2rgb.

Referenced by raw_alloc_frame().

## ◆ raw_frame_field()

static void raw_frame_field | ( | vo_frame_t * | vo_img,
|  | int | which_field )
| static

References BYTES_PER_PIXEL, vo_frame_s::driver, raw_frame_t::format, yuv2rgb_s::next_slice, NULL, raw_frame_t::rgb, raw_frame_t::rgb_dst, VO_BOTH_FIELDS, VO_BOTTOM_FIELD, VO_TOP_FIELD, raw_frame_t::width, XINE_IMGFMT_YUY2, XINE_IMGFMT_YV12, and raw_frame_t::yuv2rgb.

Referenced by raw_alloc_frame(), and raw_update_frame_format().

## ◆ raw_frame_proc_slice()

static void raw_frame_proc_slice | ( | vo_frame_t * | vo_img,
|  | uint8_t ** | src )
| static

References vo_frame_s::crop_bottom, vo_frame_s::crop_left, vo_frame_s::crop_right, vo_frame_s::crop_top, raw_frame_t::format, vo_frame_s::proc_called, raw_frame_t::rgb_dst, raw_frame_t::vo_frame, XINE_IMGFMT_YV12, raw_frame_t::yuv2rgb, yuv2rgb_s::yuv2rgb_fun, and yuv2rgb_s::yuy22rgb_fun.

Referenced by raw_alloc_frame().

## ◆ raw_get_capabilities()

static uint32_t raw_get_capabilities | ( | vo_driver_t * | this_gen | ) |
| static

References VO_CAP_CROP, VO_CAP_YUY2, and VO_CAP_YV12.

Referenced by raw_open_plugin().

## ◆ raw_get_property()

static int raw_get_property | ( | vo_driver_t * | this_gen,
|  | int | property )
| static

References VO_PROP_ASPECT_RATIO, VO_PROP_BRIGHTNESS, VO_PROP_CONTRAST, VO_PROP_MAX_NUM_FRAMES, VO_PROP_SATURATION, VO_PROP_WINDOW_HEIGHT, VO_PROP_WINDOW_WIDTH, and XINE_VO_ASPECT_AUTO.

Referenced by raw_open_plugin().

## ◆ raw_get_property_min_max()

static void raw_get_property_min_max | ( | vo_driver_t * | this_gen,
|  | int | property,
|  | int * | min,
|  | int * | max )
| static

Referenced by raw_open_plugin().

## ◆ raw_gui_data_exchange()

static int raw_gui_data_exchange | ( | vo_driver_t * | this_gen,
|  | int | data_type,
|  | void * | data )
| static

Referenced by raw_open_plugin().

## ◆ raw_init_class()

static void * raw_init_class | ( | xine_t * | xine,
|  | const void * | visual_gen )
| static

References _, default_video_driver_class_dispose, video_driver_class_s::description, video_driver_class_s::dispose, raw_class_t::driver_class, video_driver_class_s::identifier, NULL, video_driver_class_s::open_plugin, raw_open_plugin(), and raw_class_t::xine.

## ◆ raw_open_plugin()

static vo_driver_t * raw_open_plugin | ( | video_driver_class_t * | class_gen,
|  | const void * | visual_gen )
| static

References vo_frame_s::dispose, LOG_MODULE, MODE_24_BGR, NULL, NUM_FRAMES_BACKLOG, raw_alloc_frame(), raw_display_frame(), raw_dispose(), raw_get_capabilities(), raw_get_property(), raw_get_property_min_max(), raw_gui_data_exchange(), raw_visual_t::raw_output_cb, raw_overlay_begin(), raw_overlay_blend(), raw_visual_t::raw_overlay_cb, raw_overlay_end(), raw_redraw_needed(), raw_set_property(), raw_update_frame_format(), raw_visual_t::supported_formats, raw_visual_t::user_data, user_data(), raw_class_t::xine, XINE_VERBOSITY_LOG, XINE_VORAW_MAX_OVL, XINE_VORAW_YUY2, XINE_VORAW_YV12, xprintf, and yuv2rgb_factory_init().

Referenced by raw_init_class().

## ◆ raw_overlay_begin()

static void raw_overlay_begin | ( | vo_driver_t * | this_gen,
|  | vo_frame_t * | frame_gen,
|  | int | changed )
| static

Referenced by raw_open_plugin().

## ◆ raw_overlay_blend()

static void raw_overlay_blend | ( | vo_driver_t * | this_gen,
|  | vo_frame_t * | frame_gen,
|  | vo_overlay_t * | overlay )
| static

References _x_overlay_clut_yuv2rgb(), vo_overlay_s::hili_rgb_clut, raw_process_ovl(), vo_overlay_s::rgb_clut, vo_overlay_s::rle, and XINE_VORAW_MAX_OVL.

Referenced by raw_open_plugin().

## ◆ raw_overlay_end()

static void raw_overlay_end | ( | vo_driver_t * | this_gen,
|  | vo_frame_t * | vo_img )
| static

References user_data().

Referenced by raw_open_plugin().

## ◆ raw_process_ovl()

static int raw_process_ovl | ( | raw_driver_t * | this_gen,
|  | vo_overlay_t * | overlay )
| static

References _x_overlay_to_argb32(), vo_overlay_s::height, raw_driver_t::overlays, raw_driver_t::ovl_changed, raw_overlay_t::ovl_h, raw_overlay_t::ovl_rgba, raw_overlay_t::ovl_w, raw_overlay_t::ovl_x, raw_overlay_t::ovl_y, vo_overlay_s::width, vo_overlay_s::x, and vo_overlay_s::y.

Referenced by raw_overlay_blend().

## ◆ raw_redraw_needed()

static int raw_redraw_needed | ( | vo_driver_t * | this_gen | ) |
| static

Referenced by raw_open_plugin().

## ◆ raw_set_property()

static int raw_set_property | ( | vo_driver_t * | this_gen,
|  | int | property,
|  | int | value )
| static

References NULL, NUM_FRAMES_BACKLOG, and VO_PROP_DISCARD_FRAMES.

Referenced by raw_open_plugin().

## ◆ raw_update_frame_format()

static void raw_update_frame_format | ( | vo_driver_t * | this_gen,
|  | vo_frame_t * | frame_gen,
|  | uint32_t | width,
|  | uint32_t | height,
|  | double | ratio,
|  | int | format,
|  | int | flags )
| static

References vo_frame_s::base, BYTES_PER_PIXEL, yuv2rgb_s::configure, raw_frame_t::flags, raw_frame_t::format, height, raw_frame_t::height, NULL, vo_frame_s::pitches, raw_frame_t::ratio, raw_frame_field(), raw_frame_t::rgb, VO_BOTH_FIELDS, VO_BOTTOM_FIELD, raw_frame_t::vo_frame, VO_TOP_FIELD, raw_frame_t::width, width, xine_free_aligned(), XINE_IMGFMT_YV12, xine_mallocz_aligned(), and raw_frame_t::yuv2rgb.

Referenced by raw_open_plugin().

## Variable Documentation

## ◆ EXPORTED

const plugin_info_t xine_plugin_info [] EXPORTED

Initial value:
= {
{ PLUGIN_VIDEO_OUT, 22, "raw", XINE_VERSION_CODE, &vo_info_raw, raw_init_class },
{ PLUGIN_NONE, 0, NULL, 0, NULL, NULL }
}
raw_init_class
static void * raw_init_class(xine_t *xine, const void *visual_gen)
Definition video_out_raw.c:529
vo_info_raw
static const vo_info_t vo_info_raw
Definition video_out_raw.c:550
XINE_VERSION_CODE
#define XINE_VERSION_CODE
Definition xine_internal.h:57
NULL
NULL
Definition xine_plugin.c:78
PLUGIN_NONE
#define PLUGIN_NONE
Definition xine_plugin.h:29
PLUGIN_VIDEO_OUT
#define PLUGIN_VIDEO_OUT
Definition xine_plugin.h:36

## ◆ vo_info_raw

const vo_info_t vo_info_raw
| static

Initial value:
= {
.priority = 7,
.visual_type = XINE_VISUAL_TYPE_RAW,
}
XINE_VISUAL_TYPE_RAW
#define XINE_VISUAL_TYPE_RAW
Definition xine.h:165