xine-lib: xine-lib-1.2.12/src/video_out/video_out_vidix.c File Reference

xine-lib 1.2.12

Data Structures | Macros | Typedefs | Functions | Variables
video_out_vidix.c File Reference
`#include <stdio.h>`
`#include <stdlib.h>`
`#include <string.h>`
`#include <inttypes.h>`
`#include <unistd.h>`
`#include "xine.h"`
`#include "vidixlib.h"`
`#include "fourcc.h"`
`#include <xine/video_out.h>`
`#include <xine/xine_internal.h>`
`#include <xine/xineutils.h>`
`#include <xine/vo_scale.h>`

## Data Structures
struct | vidix_property_s
struct | vidix_frame_s
struct | vidix_driver_s
struct | vidix_class_s

## Macros
#define | LOG_MODULE "video_out_vidix"
#define | LOG_VERBOSE
#define | NUM_FRAMES 3

## Typedefs
typedef struct vidix_driver_s | vidix_driver_t
typedef struct vidix_property_s | vidix_property_t
typedef struct vidix_frame_s | vidix_frame_t
typedef struct vidix_class_s | vidix_class_t

## Functions
static void | free_framedata (vidix_frame_t *frame)
static void | write_frame_YUV420P2 (vidix_driver_t *this, vidix_frame_t *frame)
static void | write_frame_sfb (vidix_driver_t *this, vidix_frame_t *frame)
static void | vidix_clean_output_area (vidix_driver_t *this)
static void | vidix_update_colourkey (vidix_driver_t *this)
static uint32_t | vidix_get_capabilities (vo_driver_t *this_gen)
static void | vidix_frame_field (vo_frame_t *vo_img, int which_field)
static void | vidix_frame_dispose (vo_frame_t *vo_img)
static vo_frame_t * | vidix_alloc_frame (vo_driver_t *this_gen)
static void | vidix_compute_ideal_size (vidix_driver_t *this)
static void | vidix_config_playback (vidix_driver_t *this)
static void | vidix_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 void | vidix_overlay_begin (vo_driver_t *this_gen, vo_frame_t *frame_gen, int changed)
static void | vidix_overlay_end (vo_driver_t *this_gen, vo_frame_t *vo_img)
static void | vidix_overlay_blend (vo_driver_t *this_gen, vo_frame_t *frame_gen, vo_overlay_t *overlay)
static int | vidix_redraw_needed (vo_driver_t *this_gen)
static void | vidix_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen)
static int | vidix_get_property (vo_driver_t *this_gen, int property)
static int | vidix_set_property (vo_driver_t *this_gen, int property, int value)
static void | vidix_ckey_callback (vo_driver_t *this_gen, xine_cfg_entry_t *entry)
static void | vidix_db_callback (vo_driver_t *this_gen, xine_cfg_entry_t *entry)
static void | vidix_rgb_callback (vo_driver_t *this_gen, xine_cfg_entry_t *entry)
static void | vidix_get_property_min_max (vo_driver_t *this_gen, int property, int *min, int *max)
static int | vidix_gui_data_exchange (vo_driver_t *this_gen, int data_type, void *data)
static void | vidix_exit (vo_driver_t *this_gen)
static vidix_driver_t * | open_plugin (video_driver_class_t *class_gen)
static void | query_fourccs (vidix_driver_t *this)
static void * | init_class (xine_t *xine, const void *visual_gen)

## Variables
const plugin_info_t xine_plugin_info[] | EXPORTED

## Macro Definition Documentation

## ◆ LOG_MODULE

#define LOG_MODULE "video_out_vidix"

## ◆ LOG_VERBOSE

#define LOG_VERBOSE

## ◆ NUM_FRAMES

#define NUM_FRAMES 3

## Typedef Documentation

## ◆ vidix_class_t

typedef struct vidix_class_s vidix_class_t

## ◆ vidix_driver_t

typedef struct vidix_driver_s vidix_driver_t

## ◆ vidix_frame_t

typedef struct vidix_frame_s vidix_frame_t

## ◆ vidix_property_t

typedef struct vidix_property_s vidix_property_t

## Function Documentation

## ◆ free_framedata()

static void free_framedata | ( | vidix_frame_t * | frame | ) |
| static

References vo_frame_s::base, NULL, and vidix_frame_s::vo_frame.

Referenced by vidix_frame_dispose(), and vidix_update_frame_format().

## ◆ init_class()

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

References _, NULL, XINE_PLUGINDIR, XINE_VERBOSITY_DEBUG, XINE_VERBOSITY_LOG, and xprintf.

## ◆ open_plugin()

static vidix_driver_t * open_plugin | ( | video_driver_class_t * | class_gen | ) |
| static

References _, _x_alphablend_init(), _x_vo_scale_init(), xine_s::config, NULL, vidix_alloc_frame(), vidix_db_callback(), vidix_display_frame(), vidix_exit(), vidix_get_capabilities(), vidix_get_property(), vidix_get_property_min_max(), vidix_gui_data_exchange(), vidix_overlay_begin(), vidix_overlay_blend(), vidix_overlay_end(), vidix_redraw_needed(), vidix_rgb_callback(), vidix_set_property(), vidix_update_frame_format(), VO_CAP_BRIGHTNESS, VO_CAP_CONTRAST, VO_CAP_CROP, VO_CAP_HUE, VO_CAP_SATURATION, VO_CAP_ZOOM_X, VO_CAP_ZOOM_Y, VO_PROP_ASPECT_RATIO, VO_PROP_BRIGHTNESS, VO_PROP_CONTRAST, VO_PROP_HUE, VO_PROP_SATURATION, VO_PROP_ZOOM_X, VO_PROP_ZOOM_Y, config_values_s::xine, XINE_VERBOSITY_DEBUG, XINE_VO_ASPECT_AUTO, XINE_VO_ASPECT_NUM_RATIOS, XINE_VO_ZOOM_MAX, XINE_VO_ZOOM_MIN, and xprintf.

## ◆ query_fourccs()

static void query_fourccs | ( | vidix_driver_t * | this | ) |
| static

References _, IMGFMT_YUY2, IMGFMT_YV12, VO_CAP_YUY2, VO_CAP_YV12, XINE_VERBOSITY_LOG, and xprintf.

## ◆ vidix_alloc_frame()

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

References vo_frame_s::base, vo_frame_s::dispose, vo_frame_s::field, vo_frame_s::mutex, NULL, vo_frame_s::proc_frame, vo_frame_s::proc_slice, vidix_frame_dispose(), vidix_frame_field(), and vidix_frame_s::vo_frame.

Referenced by open_plugin().

## ◆ vidix_ckey_callback()

static void vidix_ckey_callback | ( | vo_driver_t * | this_gen,
|  | xine_cfg_entry_t * | entry
| ) |  |
| static

References xine_cfg_entry_s::key, xine_cfg_entry_s::num_value, and vidix_update_colourkey().

## ◆ vidix_clean_output_area()

static void vidix_clean_output_area | ( | vidix_driver_t * | this | ) |
| static

References x11osd_resize(), and XINE_VISUAL_TYPE_X11.

Referenced by vidix_gui_data_exchange(), vidix_redraw_needed(), and vidix_update_colourkey().

## ◆ vidix_compute_ideal_size()

static void vidix_compute_ideal_size | ( | vidix_driver_t * | this | ) |
| static

References _x_vo_scale_compute_ideal_size().

Referenced by vidix_display_frame(), and vidix_set_property().

## ◆ vidix_config_playback()

static void vidix_config_playback | ( | vidix_driver_t * | this | ) |
| static

References _x_vo_scale_compute_output_size(), IMGFMT_YUY2, IMGFMT_YV12, lprintf, next_frame(), NUM_FRAMES, XINE_IMGFMT_YV12, XINE_VERBOSITY_DEBUG, and xprintf.

Referenced by vidix_redraw_needed().

## ◆ vidix_db_callback()

static void vidix_db_callback | ( | vo_driver_t * | this_gen,
|  | xine_cfg_entry_t * | entry
| ) |  |
| static

References xine_cfg_entry_s::num_value.

Referenced by open_plugin().

## ◆ vidix_display_frame()

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

References vo_frame_s::crop_bottom, vo_frame_s::crop_left, vo_frame_s::crop_right, vo_frame_s::crop_top, vidix_frame_s::format, vo_frame_s::free, vidix_frame_s::height, lprintf, next_frame(), vidix_frame_s::ratio, vidix_compute_ideal_size(), vidix_redraw_needed(), vidix_frame_s::vo_frame, vidix_frame_s::width, and write_frame_sfb().

Referenced by open_plugin().

## ◆ vidix_exit()

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

References _x_alphablend_free(), _x_vo_scale_cleanup(), and x11osd_destroy().

Referenced by open_plugin().

## ◆ vidix_frame_dispose()

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

References free_framedata().

Referenced by vidix_alloc_frame().

## ◆ vidix_frame_field()

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

Referenced by vidix_alloc_frame().

## ◆ vidix_get_capabilities()

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

Referenced by open_plugin().

## ◆ vidix_get_property()

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

References lprintf, VO_NUM_PROPERTIES, VO_PROP_OUTPUT_HEIGHT, VO_PROP_OUTPUT_WIDTH, VO_PROP_OUTPUT_XOFFSET, VO_PROP_OUTPUT_YOFFSET, VO_PROP_WINDOW_HEIGHT, and VO_PROP_WINDOW_WIDTH.

Referenced by open_plugin().

## ◆ vidix_get_property_min_max()

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

References VO_NUM_PROPERTIES.

Referenced by open_plugin().

## ◆ vidix_gui_data_exchange()

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

References _x_vo_scale_translate_gui2video(), x11_rectangle_t::h, lprintf, NULL, vidix_clean_output_area(), x11_rectangle_t::w, x11_rectangle_t::x, x11osd_drawable_changed(), x11osd_expose(), XINE_GUI_SEND_DRAWABLE_CHANGED, XINE_GUI_SEND_EXPOSE_EVENT, XINE_GUI_SEND_TRANSLATE_GUI_TO_VIDEO, XINE_VISUAL_TYPE_X11, and x11_rectangle_t::y.

Referenced by open_plugin().

## ◆ vidix_overlay_begin()

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

References vo_frame_s::overlay_offset_x, vo_frame_s::overlay_offset_y, and x11osd_clear().

Referenced by open_plugin().

## ◆ vidix_overlay_blend()

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

References _x_blend_yuv(), _x_blend_yuy2(), vo_frame_s::base, vidix_frame_s::format, vidix_frame_s::height, vo_frame_s::pitches, vo_overlay_s::rle, vo_overlay_s::unscaled, vidix_frame_s::vo_frame, vidix_frame_s::width, x11osd_blend(), and XINE_IMGFMT_YV12.

Referenced by open_plugin().

## ◆ vidix_overlay_end()

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

References x11osd_expose().

Referenced by open_plugin().

## ◆ vidix_redraw_needed()

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

References _x_vo_scale_redraw_needed(), vidix_clean_output_area(), and vidix_config_playback().

Referenced by open_plugin(), and vidix_display_frame().

## ◆ vidix_rgb_callback()

static void vidix_rgb_callback | ( | vo_driver_t * | this_gen,
|  | xine_cfg_entry_t * | entry
| ) |  |
| static

References xine_cfg_entry_s::key, xine_cfg_entry_s::num_value, XINE_VERBOSITY_DEBUG, and xprintf.

Referenced by open_plugin().

## ◆ vidix_set_property()

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

References _x_vo_scale_aspect_ratio_name_table, lprintf, vidix_compute_ideal_size(), VO_NUM_PROPERTIES, VO_PROP_ASPECT_RATIO, VO_PROP_BRIGHTNESS, VO_PROP_CONTRAST, VO_PROP_HUE, VO_PROP_SATURATION, VO_PROP_ZOOM_X, VO_PROP_ZOOM_Y, XINE_VERBOSITY_DEBUG, XINE_VO_ASPECT_AUTO, XINE_VO_ASPECT_NUM_RATIOS, XINE_VO_ZOOM_STEP, and xprintf.

Referenced by open_plugin().

## ◆ vidix_update_colourkey()

static void vidix_update_colourkey | ( | vidix_driver_t * | this | ) |
| static

References vidix_clean_output_area().

Referenced by vidix_ckey_callback().

## ◆ vidix_update_frame_format()

static void vidix_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, vidix_frame_s::format, free_framedata(), height, vidix_frame_s::height, NULL, vo_frame_s::pitches, vidix_frame_s::ratio, vidix_frame_s::vo_frame, width, vidix_frame_s::width, XINE_IMGFMT_YUY2, XINE_IMGFMT_YV12, XINE_VERBOSITY_DEBUG, and xprintf.

Referenced by open_plugin().

## ◆ write_frame_sfb()

static void write_frame_sfb | ( | vidix_driver_t * | this,
|  | vidix_frame_t * | frame
| ) |  |
| static

References vo_frame_s::base, vidix_frame_s::format, next_frame(), vo_frame_s::pitches, vo_frame_s::progressive_frame, vidix_frame_s::vo_frame, write_frame_YUV420P2(), XINE_IMGFMT_YUY2, XINE_IMGFMT_YV12, XINE_VERBOSITY_DEBUG, xprintf, yuy2_to_yuy2(), yv12_to_yuy2, and yv12_to_yv12().

Referenced by vidix_display_frame().

## ◆ write_frame_YUV420P2()

static void write_frame_YUV420P2 | ( | vidix_driver_t * | this,
|  | vidix_frame_t * | frame
| ) |  |
| static

References vo_frame_s::base, next_frame(), vo_frame_s::pitches, vidix_frame_s::vo_frame, and xine_fast_memcpy.

Referenced by write_frame_sfb().

## Variable Documentation

## ◆ EXPORTED

const plugin_info_t xine_plugin_info [] EXPORTED

Initial value:
= {
{ PLUGIN_NONE, 0, NULL, 0, NULL, NULL }
}
NULL
NULL
Definition: xine_plugin.c:78
PLUGIN_NONE
#define PLUGIN_NONE
Definition: xine_plugin.h:29