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

xine-lib 1.2.13-20230125hg15249

Data Structures | Macros | Enumerations | Functions | Variables
video_out_vdpau.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/vo_scale.h>`
`#include <xine/xine_internal.h>`
`#include <xine/xineutils.h>`
`#include <vdpau/vdpau_x11.h>`
`#include "accel_vdpau.h"`
`#include "color_matrix.c"`

## Data Structures
struct | vdpau_output_surface_t
struct | vdpau_video_surface_t
struct | vdpau_grab_video_frame_t
struct | vdpau_frame_t
struct | vdpau_overlay_t
struct | vdpau_func_t
struct | vdpau_driver_t
struct | vdpau_class_t
struct | _vdpau_features_t

## Macros
#define | LOG_MODULE "video_out_vdpau"
#define | NUM_FRAMES_BACK 1
#define | LOCKDISPLAY /*define this if you have a buggy libX11/xcb*/
#define | NUMBER_OF_DEINTERLACERS 5
#define | NOUTPUTSURFACEBUFFER 25
#define | NOUTPUTSURFACE 8
#define | _VOVDP_S_BRIGHTNESS 0x0001
#define | _VOVDP_S_CONTRAST 0x0002
#define | _VOVDP_S_SATURATION 0x0004
#define | _VOVDP_S_HUE 0x0008
#define | _VOVDP_S_SHARPNESS 0x0010
#define | _VOVDP_S_NOISE_RED 0x0020
#define | _VOVDP_S_CSC 0x0040
#define | _VOVDP_S_TRANSFORM 0x0080
#define | _VOVDP_S_SCALE_LEVEL 0x0100
#define | _VOVDP_S_DEINT 0x0200
#define | _VOVDP_S_NO_CHROMA 0x0400
#define | _VOVDP_S_INV_TELE 0x0800
#define | _VOVDP_S_BGCOLOR 0x1000
#define | _VOVDP_S_ALL 0x1fff
#define | CM_LUT
#define | CM_HAVE_YCGCO_SUPPORT 1
#define | CM_HAVE_BT2020_SUPPORT 1
#define | CM_DRIVER_T vdpau_driver_t
#define | VDP_DECODER_PROFILE_MPEG4_PART2_ASP 13
#define | DO_LOCKDISPLAY(this) XLockDisplay (this->display)
#define | DO_UNLOCKDISPLAY(this) XUnlockDisplay (this->display)
#define | VDPAU_IF_ERROR(msg)
#define | VDPAU_ERROR(msg) xprintf (this->xine, XINE_VERBOSITY_LOG, LOG_MODULE ": " msg ": %s.\n", this->a.vdp.get.error_string (st))
#define | VDPAU_BAIL_REINIT(msg)
#define | VDPAU_INIT_BAIL(text)

## Enumerations
enum | _vdpau_deint_t { DEINT_NONE = 0 , DEINT_BOB , DEINT_HALF_TEMPORAL , DEINT_HALF_TEMPORAL_SPATIAL , DEINT_TEMPORAL , DEINT_TEMPORAL_SPATIAL , DEINT_LAST }
enum | _vdpau_feature_t { _VOVDP_V_yuv422 = 0 , _VOVDP_V_yuv420 , _VOVDP_V_yuy2 , _VOVDP_V_yv12 , _VOVDP_O_rgba , _VOVDP_O_rgba_soft , _VOVDP_O_yuv , _VOVDP_D_h264 , _VOVDP_D_vc1 , _VOVDP_D_mpeg12 , _VOVDP_D_mpeg4 , _VOVDP_M_noise_reduction , _VOVDP_M_sharpness , _VOVDP_I_temporal , _VOVDP_I_temporal_spatial , _VOVDP_I_inverse_telecine , _VOVDP_I_no_chroma , _VOVDP_A_background_color , _VOVDP_A_color_matrix , _VOVDP_LAST }

## Functions
static int | _vdpau_feature_have (vdpau_driver_t *this, _vdpau_feature_t feature)
static void | _vdpau_feature_names (char *buf, size_t bsize, uint32_t features)
static void | _vdpau_video_mixer_test (vdpau_driver_t *this, VdpVideoMixerParameter p, uint32_t *max_value)
static void | _vdpau_feature_test (vdpau_driver_t *this)
static void | vdpau_oslock_lock (vdpau_driver_t *this)
static void | vdpau_oslock_unlock (vdpau_driver_t *this)
static void | vdpau_lockdisplay (vo_frame_t *frame)
static void | vdpau_unlockdisplay (vo_frame_t *frame)
static void | vdpau_video_surf_delete (vdpau_driver_t *this, vdpau_video_surface_t *s)
static VdpStatus | vdpau_video_surf_new (vdpau_driver_t *this, vdpau_video_surface_t *s)
static void | vdpau_output_surf_delete (vdpau_driver_t *this, vdpau_output_surface_t *s)
static VdpStatus | vdpau_output_surf_new (vdpau_driver_t *this, vdpau_output_surface_t *s)
static VdpStatus | vdpau_get_output_surface (vdpau_driver_t *this, uint32_t width, uint32_t height, vdpau_output_surface_t *r)
static void | vdpau_free_output_surface (vdpau_driver_t *this, vdpau_output_surface_t *os)
static void | vdpau_overlay_begin (vo_driver_t *this_gen, vo_frame_t *frame_gen, int changed)
static void | vdpau_overlay_blend (vo_driver_t *this_gen, vo_frame_t *frame_gen, vo_overlay_t *voovl)
static void | vdpau_overlay_end (vo_driver_t *this_gen, vo_frame_t *frame_gen)
static void | vdpau_process_overlays (vdpau_driver_t *this)
static void | vdpau_frame_proc_slice (vo_frame_t *vo_img, uint8_t **src)
static void | vdpau_frame_field (vo_frame_t *vo_img, int which_field)
static void | vdpau_frame_dispose (vo_frame_t *vo_img)
static vo_frame_t * | vdpau_alloc_frame (vo_driver_t *this_gen)
static void | vdpau_provide_standard_frame_data (vo_frame_t *frame, xine_current_frame_data_t *data)
static void | vdpau_duplicate_frame_data (vo_frame_t *frame_gen, vo_frame_t *original)
static void | vdpau_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 | vdpau_redraw_needed (vo_driver_t *this_gen)
static int | vdpau_release_back_frames (vdpau_driver_t *this)
static void | vdpau_backup_frame (vdpau_driver_t *this, vdpau_frame_t *frame)
static void | vdpau_update_deinterlace_method_sd (void *this_gen, xine_cfg_entry_t *entry)
static void | vdpau_update_deinterlace_method_hd (void *this_gen, xine_cfg_entry_t *entry)
static void | vdpau_update_scaling_level (void *this_gen, xine_cfg_entry_t *entry)
static void | vdpau_update_enable_inverse_telecine (void *this_gen, xine_cfg_entry_t *entry)
static void | vdpau_honor_progressive_flag (void *this_gen, xine_cfg_entry_t *entry)
static void | vdpau_update_prop (vdpau_driver_t *this)
static void | vdpau_update_sd_only_properties (void *this_gen, xine_cfg_entry_t *entry)
static void | vdpau_update_csc_matrix (vdpau_driver_t *this, vdpau_frame_t *frame)
static void | vdpau_set_skip_chroma (void *this_gen, xine_cfg_entry_t *entry)
static void | vdpau_set_background (void *this_gen, xine_cfg_entry_t *entry)
static void | vdpau_shift_queue (vdpau_driver_t *this)
static void | vdpau_check_output_size (vdpau_driver_t *this)
static void | vdpau_grab_current_output_surface (vdpau_driver_t *this, int64_t vpts)
static VdpStatus | vdpau_new_video_mixer (vdpau_driver_t *this)
static void | vdpau_update_display_dimension (vdpau_driver_t *this)
static void | vdp_preemption_callback (VdpDevice device, void *context)
static void | vdpau_reinit (vdpau_driver_t *this)
static void | vdpau_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen)
static int | vdpau_get_property (vo_driver_t *this_gen, int property)
static int | vdpau_set_property (vo_driver_t *this_gen, int property, int value)
static void | vdpau_get_property_min_max (vo_driver_t *this_gen, int property, int *min, int *max)
static void | vdpau_dispose_grab_video_frame (xine_grab_video_frame_t *frame_gen)
static int | vdpau_grab_grab_video_frame (xine_grab_video_frame_t *frame_gen)
static xine_grab_video_frame_t * | vdpau_new_grab_video_frame (vo_driver_t *this)
static void | vdpau_set_process_snapshots (void *this_gen, xine_cfg_entry_t *entry)
static void | vdpau_set_layer_bug (void *this_gen, xine_cfg_entry_t *entry)
static int | vdpau_gui_data_exchange (vo_driver_t *this_gen, int data_type, void *data)
static uint32_t | vdpau_get_capabilities (vo_driver_t *this_gen)
static void | vdpau_dispose (vo_driver_t *this_gen)
static int | vdpau_get_funcs (vdpau_driver_t *this)
static vo_driver_t * | vdpau_open_plugin (video_driver_class_t *class_gen, const void *visual_gen)
static void * | vdpau_init_class (xine_t *xine, const void *visual_gen)

## Variables
static const char *const | vdpau_deinterlacer_name []
static const char *const | vdpau_deinterlacer_description []
static const VdpOutputSurfaceRenderBlendState | blend
static const vdpau_func_t | vdpau_funcs []
static const _vdpau_features_t | vdpau_feature_list []
static const uint32_t | _vdpau_required_features
static const vo_info_t | vo_info_vdpau
const plugin_info_t xine_plugin_info[] | EXPORTED

## Macro Definition Documentation

## ◆ _VOVDP_S_ALL

#define _VOVDP_S_ALL 0x1fff

Referenced by vdpau_display_frame(), and vdpau_reinit().

## ◆ _VOVDP_S_BGCOLOR

#define _VOVDP_S_BGCOLOR 0x1000

Referenced by vdpau_set_background(), and vdpau_update_prop().

## ◆ _VOVDP_S_BRIGHTNESS

#define _VOVDP_S_BRIGHTNESS 0x0001

Referenced by vdpau_set_property(), and vdpau_update_csc_matrix().

## ◆ _VOVDP_S_CONTRAST

#define _VOVDP_S_CONTRAST 0x0002

Referenced by vdpau_set_property(), and vdpau_update_csc_matrix().

## ◆ _VOVDP_S_CSC

#define _VOVDP_S_CSC 0x0040

Referenced by vdpau_update_csc_matrix().

## ◆ _VOVDP_S_DEINT

#define _VOVDP_S_DEINT 0x0200

Referenced by vdpau_set_property(), vdpau_update_deinterlace_method_hd(), vdpau_update_deinterlace_method_sd(), and vdpau_update_prop().

## ◆ _VOVDP_S_HUE

#define _VOVDP_S_HUE 0x0008

Referenced by vdpau_set_property(), and vdpau_update_csc_matrix().

## ◆ _VOVDP_S_INV_TELE

#define _VOVDP_S_INV_TELE 0x0800

Referenced by vdpau_update_enable_inverse_telecine(), and vdpau_update_prop().

## ◆ _VOVDP_S_NO_CHROMA

#define _VOVDP_S_NO_CHROMA 0x0400

Referenced by vdpau_set_skip_chroma(), and vdpau_update_prop().

## ◆ _VOVDP_S_NOISE_RED

#define _VOVDP_S_NOISE_RED 0x0020

Referenced by vdpau_set_property(), vdpau_update_prop(), and vdpau_update_sd_only_properties().

## ◆ _VOVDP_S_SATURATION

#define _VOVDP_S_SATURATION 0x0004

Referenced by vdpau_set_property(), and vdpau_update_csc_matrix().

## ◆ _VOVDP_S_SCALE_LEVEL

#define _VOVDP_S_SCALE_LEVEL 0x0100

Referenced by vdpau_update_prop(), and vdpau_update_scaling_level().

## ◆ _VOVDP_S_SHARPNESS

#define _VOVDP_S_SHARPNESS 0x0010

Referenced by vdpau_set_property(), vdpau_update_prop(), and vdpau_update_sd_only_properties().

## ◆ _VOVDP_S_TRANSFORM

#define _VOVDP_S_TRANSFORM 0x0080

Referenced by vdpau_set_property().

## ◆ CM_DRIVER_T

#define CM_DRIVER_T vdpau_driver_t

## ◆ CM_HAVE_BT2020_SUPPORT

#define CM_HAVE_BT2020_SUPPORT 1

## ◆ CM_HAVE_YCGCO_SUPPORT

#define CM_HAVE_YCGCO_SUPPORT 1

## ◆ CM_LUT

#define CM_LUT

## ◆ DO_LOCKDISPLAY

#define DO_LOCKDISPLAY | ( |  | this | ) | XLockDisplay (this->display)

Referenced by vdpau_display_frame(), vdpau_dispose(), vdpau_duplicate_frame_data(), vdpau_gui_data_exchange(), vdpau_open_plugin(), vdpau_output_surf_delete(), vdpau_output_surf_new(), vdpau_reinit(), vdpau_update_frame_format(), vdpau_video_surf_delete(), and vdpau_video_surf_new().

## ◆ DO_UNLOCKDISPLAY

#define DO_UNLOCKDISPLAY | ( |  | this | ) | XUnlockDisplay (this->display)

Referenced by vdpau_display_frame(), vdpau_dispose(), vdpau_duplicate_frame_data(), vdpau_gui_data_exchange(), vdpau_open_plugin(), vdpau_output_surf_delete(), vdpau_output_surf_new(), vdpau_reinit(), vdpau_update_frame_format(), vdpau_video_surf_delete(), and vdpau_video_surf_new().

## ◆ LOCKDISPLAY

#define LOCKDISPLAY /*define this if you have a buggy libX11/xcb*/

## ◆ LOG_MODULE

#define LOG_MODULE "video_out_vdpau"

Referenced by _vdpau_feature_test(), vdp_preemption_callback(), vdpau_check_output_size(), vdpau_display_frame(), vdpau_duplicate_frame_data(), vdpau_get_funcs(), vdpau_honor_progressive_flag(), vdpau_open_plugin(), vdpau_output_surf_delete(), vdpau_output_surf_new(), vdpau_overlay_end(), vdpau_process_overlays(), vdpau_provide_standard_frame_data(), vdpau_reinit(), vdpau_set_layer_bug(), vdpau_update_csc_matrix(), vdpau_update_deinterlace_method_hd(), vdpau_update_deinterlace_method_sd(), vdpau_update_enable_inverse_telecine(), vdpau_update_frame_format(), vdpau_update_scaling_level(), vdpau_update_sd_only_properties(), vdpau_video_surf_delete(), and vdpau_video_surf_new().

## ◆ NOUTPUTSURFACE

#define NOUTPUTSURFACE 8

Referenced by vdpau_open_plugin().

## ◆ NOUTPUTSURFACEBUFFER

#define NOUTPUTSURFACEBUFFER 25

Referenced by vdpau_open_plugin().

## ◆ NUM_FRAMES_BACK

#define NUM_FRAMES_BACK 1

Referenced by vdpau_backup_frame(), vdpau_dispose(), vdpau_open_plugin(), and vdpau_release_back_frames().

## ◆ NUMBER_OF_DEINTERLACERS

#define NUMBER_OF_DEINTERLACERS 5

## ◆ VDP_DECODER_PROFILE_MPEG4_PART2_ASP

#define VDP_DECODER_PROFILE_MPEG4_PART2_ASP 13

Referenced by free_sequence(), and open_plugin().

## ◆ VDPAU_BAIL_REINIT

#define VDPAU_BAIL_REINIT | ( |  | msg | ) |

Value:
if (st != VDP_STATUS_OK) { \
xprintf (this->xine, XINE_VERBOSITY_LOG, LOG_MODULE ": %s: %s.\n", msg, this->a.vdp.get.error_string (st)); \
DO_UNLOCKDISPLAY (this); \
}
LOG_MODULE
#define LOG_MODULE
Definition video_out_vdpau.c:30
XINE_VERBOSITY_LOG
#define XINE_VERBOSITY_LOG
Definition xine.h:429

Referenced by vdpau_reinit().

## ◆ VDPAU_ERROR

#define VDPAU_ERROR | ( |  | msg | ) | xprintf (this->xine, XINE_VERBOSITY_LOG, LOG_MODULE ": " msg ": %s.\n", this->a.vdp.get.error_string (st))

Referenced by vdpau_grab_current_output_surface(), and vdpau_gui_data_exchange().

## ◆ VDPAU_IF_ERROR

#define VDPAU_IF_ERROR | ( |  | msg | ) |

Value:
if (st != VDP_STATUS_OK) \
xprintf (this->xine, XINE_VERBOSITY_LOG, LOG_MODULE ": " msg ": %s.\n", this->a.vdp.get.error_string (st))

Referenced by vdpau_display_frame(), vdpau_duplicate_frame_data(), vdpau_grab_current_output_surface(), vdpau_overlay_end(), vdpau_process_overlays(), vdpau_provide_standard_frame_data(), vdpau_update_csc_matrix(), vdpau_update_frame_format(), and vdpau_update_prop().

## ◆ VDPAU_INIT_BAIL

#define VDPAU_INIT_BAIL | ( |  | text | ) |

Value:
if (st != VDP_STATUS_OK) { \
xprintf (this->xine, XINE_VERBOSITY_LOG, LOG_MODULE ": %s: %s.\n", text, this->a.vdp.get.error_string (st)); \
this->vo_driver.dispose (&this->vo_driver); \
return NULL; \
}
NULL
NULL
Definition xine_plugin.c:78

Referenced by vdpau_open_plugin().

## Enumeration Type Documentation

## ◆ _vdpau_deint_t

enum _vdpau_deint_t

Enumerator
DEINT_NONE |
DEINT_BOB |
DEINT_HALF_TEMPORAL |
DEINT_HALF_TEMPORAL_SPATIAL |
DEINT_TEMPORAL |
DEINT_TEMPORAL_SPATIAL |
DEINT_LAST |

## ◆ _vdpau_feature_t

enum _vdpau_feature_t

Enumerator
_VOVDP_V_yuv422 |
_VOVDP_V_yuv420 |
_VOVDP_V_yuy2 |
_VOVDP_V_yv12 |
_VOVDP_O_rgba |
_VOVDP_O_rgba_soft |
_VOVDP_O_yuv |
_VOVDP_D_h264 |
_VOVDP_D_vc1 |
_VOVDP_D_mpeg12 |
_VOVDP_D_mpeg4 |
_VOVDP_M_noise_reduction |
_VOVDP_M_sharpness |
_VOVDP_I_temporal |
_VOVDP_I_temporal_spatial |
_VOVDP_I_inverse_telecine |
_VOVDP_I_no_chroma |
_VOVDP_A_background_color |
_VOVDP_A_color_matrix |
_VOVDP_LAST |

## Function Documentation

## ◆ _vdpau_feature_have()

static int _vdpau_feature_have | ( | vdpau_driver_t * | this,
|  | _vdpau_feature_t | feature )
| static

Referenced by vdpau_new_video_mixer(), vdpau_open_plugin(), and vdpau_update_prop().

## ◆ _vdpau_feature_names()

static void _vdpau_feature_names | ( | char * | buf,
|  | size_t | bsize,
|  | uint32_t | features )
| static

References name, and vdpau_feature_list.

Referenced by vdpau_open_plugin().

## ◆ _vdpau_feature_test()

static void _vdpau_feature_test | ( | vdpau_driver_t * | this | ) |
| static

References _vdpau_video_mixer_test(), _vdpau_features_t::func, LOG_MODULE, _vdpau_features_t::name, _vdpau_features_t::val1, _vdpau_features_t::val2, vdpau_feature_list, XINE_VERBOSITY_DEBUG, XINE_VERBOSITY_LOG, and xprintf.

Referenced by vdpau_open_plugin().

## ◆ _vdpau_video_mixer_test()

static void _vdpau_video_mixer_test | ( | vdpau_driver_t * | this,
|  | VdpVideoMixerParameter | p,
|  | uint32_t * | max_value )
| static

Referenced by _vdpau_feature_test().

## ◆ vdp_preemption_callback()

static void vdp_preemption_callback | ( | VdpDevice | device,
|  | void * | context )
| static

References LOG_MODULE, XINE_VERBOSITY_DEBUG, and xprintf.

Referenced by vdpau_open_plugin(), and vdpau_reinit().

## ◆ vdpau_alloc_frame()

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

References vo_frame_s::accel_data, vo_frame_s::base, vdpau_accel_t::chroma, vdpau_accel_t::current_vdp_runtime_nr, vo_frame_s::dispose, vo_frame_s::driver, vo_frame_s::field, vdpau_frame_t::flags, vdpau_frame_t::format, vdpau_frame_t::height, vdpau_accel_t::lock, lprintf, vo_frame_s::mutex, NULL, vo_frame_s::proc_duplicate_frame_data, vo_frame_s::proc_frame, vo_frame_s::proc_slice, vdpau_frame_t::surf, vdpau_accel_t::surface, vdpau_video_surface_t::surface, vdpau_frame_t::surface_cleared_nr, vdpau_accel_t::unlock, vdpau_accel_t::vdp_decoder_create, vdpau_accel_t::vdp_decoder_destroy, vdpau_accel_t::vdp_decoder_render, vdpau_accel_t::vdp_device, vdpau_accel_t::vdp_get_error_string, vdpau_accel_t::vdp_runtime_nr, vdpau_frame_t::vdpau_accel_data, vdpau_frame_dispose(), vdpau_frame_field(), vdpau_frame_proc_slice(), vdpau_lockdisplay(), vdpau_unlockdisplay(), vdpau_accel_t::vo_frame, vdpau_frame_t::vo_frame, and vdpau_frame_t::width.

Referenced by vdpau_open_plugin().

## ◆ vdpau_backup_frame()

static void vdpau_backup_frame | ( | vdpau_driver_t * | this,
|  | vdpau_frame_t * | frame )
| static

References NUM_FRAMES_BACK.

Referenced by vdpau_display_frame().

## ◆ vdpau_check_output_size()

static void vdpau_check_output_size | ( | vdpau_driver_t * | this | ) |
| static

References vdpau_output_surface_t::height, LOG_MODULE, lprintf, vdpau_output_surf_delete(), vdpau_output_surf_new(), and vdpau_output_surface_t::width.

Referenced by vdpau_display_frame().

## ◆ vdpau_display_frame()

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

References _VOVDP_S_ALL, vo_frame_s::base, vo_frame_s::crop_bottom, vo_frame_s::crop_left, vo_frame_s::crop_right, vo_frame_s::crop_top, DEINT_HALF_TEMPORAL, DEINT_HALF_TEMPORAL_SPATIAL, DO_LOCKDISPLAY, DO_UNLOCKDISPLAY, vo_frame_s::duration, vo_frame_s::flags, vdpau_frame_t::format, vo_frame_s::format, vo_frame_s::free, vo_frame_s::future_frame, vdpau_frame_t::height, LOG_MODULE, lprintf, NULL, vo_frame_s::pitches, vo_frame_s::progressive_frame, vo_frame_s::pts, vdpau_frame_t::ratio, vo_frame_s::stream, vdpau_accel_t::surface, vdpau_output_surface_t::surface, vo_frame_s::top_field_first, vdpau_frame_t::vdpau_accel_data, vdpau_backup_frame(), vdpau_check_output_size(), vdpau_grab_current_output_surface(), VDPAU_IF_ERROR, vdpau_new_video_mixer(), vdpau_process_overlays(), vdpau_redraw_needed(), vdpau_reinit(), vdpau_release_back_frames(), vdpau_shift_queue(), vdpau_update_csc_matrix(), vdpau_update_prop(), vdpau_video_surf_delete(), vdpau_video_surf_new(), VO_CHROMA_422, vdpau_frame_t::vo_frame, VO_STILL_IMAGE, vo_frame_s::vpts, vdpau_frame_t::width, vo_frame_s::width, XINE_FINE_SPEED_NORMAL, xine_get_param(), XINE_IMGFMT_VDPAU, XINE_IMGFMT_YUY2, XINE_IMGFMT_YV12, XINE_PARAM_FINE_SPEED, XINE_VERBOSITY_LOG, XINE_VO_TRANSFORM_FLIP_H, XINE_VO_TRANSFORM_FLIP_V, and xprintf.

Referenced by vdpau_open_plugin().

## ◆ vdpau_dispose()

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

References _x_vo_scale_cleanup(), DO_LOCKDISPLAY, DO_UNLOCKDISPLAY, NUM_FRAMES_BACK, vdpau_overlay_t::render_surface, vdpau_output_surf_delete(), vdpau_video_surf_delete(), and xine_free_aligned().

Referenced by vdpau_open_plugin().

## ◆ vdpau_dispose_grab_video_frame()

static void vdpau_dispose_grab_video_frame | ( | xine_grab_video_frame_t * | frame_gen | ) |
| static

References vdpau_grab_video_frame_t::grab_frame, xine_grab_video_frame_s::img, and vdpau_grab_video_frame_t::rgba.

Referenced by vdpau_new_grab_video_frame().

## ◆ vdpau_duplicate_frame_data()

static void vdpau_duplicate_frame_data | ( | vo_frame_t * | frame_gen,
|  | vo_frame_t * | original )
| static

References vdpau_video_surface_t::a_height, vdpau_video_surface_t::a_width, vo_frame_s::base, vdpau_video_surface_t::chroma, DO_LOCKDISPLAY, DO_UNLOCKDISPLAY, vo_frame_s::driver, vdpau_frame_t::flags, vo_frame_s::format, vdpau_video_surface_t::height, LOG_MODULE, NULL, vo_frame_s::pitches, vdpau_frame_t::surf, vdpau_accel_t::surface, vdpau_video_surface_t::surface, vdpau_accel_t::vdp_runtime_nr, vdpau_frame_t::vdpau_accel_data, VDPAU_IF_ERROR, vdpau_video_surf_delete(), vdpau_video_surf_new(), VO_CHROMA_422, vdpau_frame_t::vo_frame, vdpau_video_surface_t::width, xine_freep_aligned, XINE_IMGFMT_VDPAU, xine_malloc_aligned(), XINE_VERBOSITY_LOG, and xprintf.

Referenced by vdpau_update_frame_format().

## ◆ vdpau_frame_dispose()

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

References vo_frame_s::base, vo_frame_s::driver, vo_frame_s::mutex, NULL, vdpau_frame_t::surf, vdpau_video_surf_delete(), vdpau_frame_t::vo_frame, and xine_freep_aligned.

Referenced by vdpau_alloc_frame().

## ◆ vdpau_frame_field()

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

Referenced by vdpau_alloc_frame(), and vdpau_update_frame_format().

## ◆ vdpau_frame_proc_slice()

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

References vo_frame_s::proc_called.

Referenced by vdpau_alloc_frame().

## ◆ vdpau_free_output_surface()

static void vdpau_free_output_surface | ( | vdpau_driver_t * | this,
|  | vdpau_output_surface_t * | os )
| static

References NULL, vdpau_output_surface_t::size, vdpau_output_surface_t::surface, vdpau_oslock_lock(), vdpau_oslock_unlock(), and vdpau_output_surf_delete().

Referenced by vdpau_grab_current_output_surface(), vdpau_overlay_end(), and vdpau_process_overlays().

## ◆ vdpau_get_capabilities()

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

Referenced by vdpau_open_plugin().

## ◆ vdpau_get_funcs()

static int vdpau_get_funcs | ( | vdpau_driver_t * | this | ) |
| static

References vdpau_func_t::id, LOG_MODULE, vdpau_func_t::name, vdpau_funcs, XINE_VERBOSITY_LOG, and xprintf.

Referenced by vdpau_open_plugin().

## ◆ vdpau_get_output_surface()

static VdpStatus vdpau_get_output_surface | ( | vdpau_driver_t * | this,
|  | uint32_t | width,
|  | uint32_t | height,
|  | vdpau_output_surface_t * | r )
| static

References height, vdpau_output_surface_t::height, NULL, vdpau_output_surface_t::size, vdpau_output_surface_t::surface, vdpau_oslock_lock(), vdpau_oslock_unlock(), vdpau_output_surf_delete(), vdpau_output_surf_new(), vdpau_output_surface_t::width, and width.

Referenced by vdpau_grab_current_output_surface(), vdpau_overlay_end(), and vdpau_process_overlays().

## ◆ vdpau_get_property()

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

References contrast, noise(), VO_CAP2_TRANSFORM, VO_PROP_ASPECT_RATIO, VO_PROP_BRIGHTNESS, VO_PROP_CAPS2, VO_PROP_CONTRAST, VO_PROP_HUE, VO_PROP_MAX_NUM_FRAMES, VO_PROP_NOISE_REDUCTION, VO_PROP_OUTPUT_HEIGHT, VO_PROP_OUTPUT_WIDTH, VO_PROP_OUTPUT_XOFFSET, VO_PROP_OUTPUT_YOFFSET, VO_PROP_SATURATION, VO_PROP_SHARPNESS, VO_PROP_TRANSFORM, VO_PROP_WINDOW_HEIGHT, VO_PROP_WINDOW_WIDTH, VO_PROP_ZOOM_X, and VO_PROP_ZOOM_Y.

Referenced by vdpau_open_plugin().

## ◆ vdpau_get_property_min_max()

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

References VO_PROP_BRIGHTNESS, VO_PROP_CONTRAST, VO_PROP_HUE, VO_PROP_NOISE_REDUCTION, VO_PROP_SATURATION, and VO_PROP_SHARPNESS.

Referenced by vdpau_open_plugin().

## ◆ vdpau_grab_current_output_surface()

static void vdpau_grab_current_output_surface | ( | vdpau_driver_t * | this,
|  | int64_t | vpts )
| static

References xine_grab_video_frame_s::crop_bottom, xine_grab_video_frame_s::crop_left, xine_grab_video_frame_s::crop_right, xine_grab_video_frame_s::crop_top, vdpau_grab_video_frame_t::grab_frame, height, vdpau_grab_video_frame_t::height, xine_grab_video_frame_s::height, xine_grab_video_frame_s::img, lprintf, NULL, vdpau_grab_video_frame_t::render_surface, vdpau_grab_video_frame_t::rgba, vdpau_output_surface_t::surface, VDPAU_ERROR, vdpau_free_output_surface(), vdpau_get_output_surface(), VDPAU_IF_ERROR, xine_grab_video_frame_s::vpts, vdpau_grab_video_frame_t::width, width, and xine_grab_video_frame_s::width.

Referenced by vdpau_display_frame(), and vdpau_grab_grab_video_frame().

## ◆ vdpau_grab_grab_video_frame()

static int vdpau_grab_grab_video_frame | ( | xine_grab_video_frame_t * | frame_gen | ) |
| static

References xine_grab_video_frame_s::flags, vdpau_grab_video_frame_t::grab_frame, vdpau_grab_video_frame_t::height, xine_grab_video_frame_s::img, NULL, vdpau_grab_video_frame_t::rgba, xine_grab_video_frame_s::timeout, vdpau_grab_current_output_surface(), vdpau_grab_video_frame_t::vo_driver, xine_grab_video_frame_s::vpts, vdpau_grab_video_frame_t::width, and XINE_GRAB_VIDEO_FRAME_FLAGS_WAIT_NEXT.

Referenced by vdpau_new_grab_video_frame().

## ◆ vdpau_gui_data_exchange()

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

References _x_vo_scale_translate_gui2video(), DO_LOCKDISPLAY, DO_UNLOCKDISPLAY, x11_rectangle_t::h, VDPAU_ERROR, x11_rectangle_t::w, x11_rectangle_t::x, XINE_GUI_SEND_COMPLETION_EVENT, XINE_GUI_SEND_DRAWABLE_CHANGED, XINE_GUI_SEND_EXPOSE_EVENT, XINE_GUI_SEND_TRANSLATE_GUI_TO_VIDEO, and x11_rectangle_t::y.

Referenced by vdpau_open_plugin().

## ◆ vdpau_honor_progressive_flag()

static void vdpau_honor_progressive_flag | ( | void * | this_gen,
|  | xine_cfg_entry_t * | entry )
| static

References LOG_MODULE, lprintf, and xine_cfg_entry_s::num_value.

Referenced by vdpau_open_plugin().

## ◆ vdpau_init_class()

static void * vdpau_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, vdpau_class_t::driver_class, video_driver_class_s::identifier, N_, NULL, video_driver_class_s::open_plugin, vdpau_open_plugin(), and vdpau_class_t::xine.

## ◆ vdpau_lockdisplay()

static void vdpau_lockdisplay | ( | vo_frame_t * | frame | ) |
| static

References vo_frame_s::driver.

Referenced by vdpau_alloc_frame().

## ◆ vdpau_new_grab_video_frame()

static xine_grab_video_frame_t * vdpau_new_grab_video_frame | ( | vo_driver_t * | this | ) |
| static

References xine_grab_video_frame_s::dispose, xine_grab_video_frame_s::grab, vdpau_grab_video_frame_t::grab_frame, vdpau_grab_video_frame_t::render_surface, vdpau_output_surface_t::surface, xine_grab_video_frame_s::timeout, vdpau_dispose_grab_video_frame(), vdpau_grab_grab_video_frame(), vdpau_grab_video_frame_t::vo_driver, xine_grab_video_frame_s::vpts, and XINE_GRAB_VIDEO_FRAME_DEFAULT_TIMEOUT.

Referenced by vdpau_open_plugin(), and vdpau_set_process_snapshots().

## ◆ vdpau_new_video_mixer()

static VdpStatus vdpau_new_video_mixer | ( | vdpau_driver_t * | this | ) |
| static

References _vdpau_feature_have(), _VOVDP_I_inverse_telecine, _VOVDP_I_temporal, _VOVDP_I_temporal_spatial, _VOVDP_M_noise_reduction, and _VOVDP_M_sharpness.

Referenced by vdpau_display_frame(), vdpau_open_plugin(), and vdpau_reinit().

## ◆ vdpau_open_plugin()

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

References _, _vdpau_feature_have(), _vdpau_feature_names(), _vdpau_feature_test(), _vdpau_required_features, _VOVDP_A_background_color, _VOVDP_I_inverse_telecine, _VOVDP_I_no_chroma, _VOVDP_I_temporal, _VOVDP_I_temporal_spatial, _x_vo_scale_init(), xine_s::config, contrast, DEINT_BOB, DEINT_HALF_TEMPORAL, DEINT_HALF_TEMPORAL_SPATIAL, DEINT_TEMPORAL, DEINT_TEMPORAL_SPATIAL, vo_frame_s::dispose, DO_LOCKDISPLAY, DO_UNLOCKDISPLAY, LOG_MODULE, noise(), NOUTPUTSURFACE, NOUTPUTSURFACEBUFFER, NULL, NUM_FRAMES_BACK, config_values_s::register_bool, config_values_s::register_enum, config_values_s::register_num, config_values_s::register_range, config_values_s::update_num, vdp_preemption_callback(), vdpau_alloc_frame(), vdpau_deinterlacer_description, vdpau_deinterlacer_name, vdpau_display_frame(), vdpau_dispose(), vdpau_get_capabilities(), vdpau_get_funcs(), vdpau_get_property(), vdpau_get_property_min_max(), vdpau_gui_data_exchange(), vdpau_honor_progressive_flag(), VDPAU_INIT_BAIL, vdpau_new_grab_video_frame(), vdpau_new_video_mixer(), vdpau_output_surf_new(), vdpau_overlay_begin(), vdpau_overlay_blend(), vdpau_overlay_end(), vdpau_redraw_needed(), vdpau_set_background(), vdpau_set_layer_bug(), vdpau_set_process_snapshots(), vdpau_set_property(), vdpau_set_skip_chroma(), vdpau_update_deinterlace_method_hd(), vdpau_update_deinterlace_method_sd(), vdpau_update_display_dimension(), vdpau_update_enable_inverse_telecine(), vdpau_update_frame_format(), vdpau_update_scaling_level(), vdpau_update_sd_only_properties(), vdpau_video_surf_new(), VO_CAP_ARGB_LAYER_OVERLAY, VO_CAP_BRIGHTNESS, VO_CAP_COLOR_MATRIX, VO_CAP_CONTRAST, VO_CAP_CROP, VO_CAP_CUSTOM_EXTENT_OVERLAY, VO_CAP_FULLRANGE, VO_CAP_HUE, VO_CAP_SATURATION, VO_CAP_UNSCALED_OVERLAY, VO_CAP_VIDEO_WINDOW_OVERLAY, VO_CAP_YUY2, VO_CAP_YV12, config_values_s::xine, vdpau_class_t::xine, XINE_IMGFMT_YV12, XINE_VERBOSITY_DEBUG, XINE_VERBOSITY_LOG, XINE_VO_ASPECT_AUTO, and xprintf.

Referenced by vdpau_init_class().

## ◆ vdpau_oslock_lock()

static void vdpau_oslock_lock | ( | vdpau_driver_t * | this | ) |
| static

Referenced by vdpau_free_output_surface(), and vdpau_get_output_surface().

## ◆ vdpau_oslock_unlock()

static void vdpau_oslock_unlock | ( | vdpau_driver_t * | this | ) |
| static

Referenced by vdpau_free_output_surface(), and vdpau_get_output_surface().

## ◆ vdpau_output_surf_delete()

static void vdpau_output_surf_delete | ( | vdpau_driver_t * | this,
|  | vdpau_output_surface_t * | s )
| static

References DO_LOCKDISPLAY, DO_UNLOCKDISPLAY, LOG_MODULE, vdpau_output_surface_t::surface, XINE_VERBOSITY_DEBUG, and xprintf.

Referenced by vdpau_check_output_size(), vdpau_dispose(), vdpau_free_output_surface(), vdpau_get_output_surface(), and vdpau_reinit().

## ◆ vdpau_output_surf_new()

static VdpStatus vdpau_output_surf_new | ( | vdpau_driver_t * | this,
|  | vdpau_output_surface_t * | s )
| static

References DO_LOCKDISPLAY, DO_UNLOCKDISPLAY, vdpau_output_surface_t::height, LOG_MODULE, vdpau_output_surface_t::size, vdpau_output_surface_t::surface, vdpau_output_surface_t::width, XINE_VERBOSITY_DEBUG, XINE_VERBOSITY_LOG, and xprintf.

Referenced by vdpau_check_output_size(), vdpau_get_output_surface(), vdpau_open_plugin(), and vdpau_reinit().

## ◆ vdpau_overlay_begin()

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

References lprintf.

Referenced by vdpau_open_plugin().

## ◆ vdpau_overlay_blend()

static void vdpau_overlay_blend | ( | vo_driver_t * | this_gen,
|  | vo_frame_t * | frame_gen,
|  | vo_overlay_t * | voovl )
| static

References vo_overlay_s::argb_layer, argb_layer_s::buffer, vo_overlay_s::extent_height, vo_overlay_s::extent_width, vo_overlay_s::height, vo_overlay_s::hili_bottom, vo_overlay_s::hili_left, vo_overlay_s::hili_rgb_clut, vo_overlay_s::hili_right, vo_overlay_s::hili_top, lprintf, vo_overlay_s::rgb_clut, vo_overlay_s::rle, vo_overlay_s::unscaled, vdpau_overlay_t::use_dirty_rect, vo_overlay_s::video_window_height, vo_overlay_s::video_window_width, vo_overlay_s::video_window_x, vo_overlay_s::video_window_y, vo_overlay_s::width, vo_overlay_s::x, argb_layer_s::x1, argb_layer_s::x2, XINE_VORAW_MAX_OVL, vo_overlay_s::y, argb_layer_s::y1, and argb_layer_s::y2.

Referenced by vdpau_open_plugin().

## ◆ vdpau_overlay_end()

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

References _x_overlay_clut_yuv2rgb(), _x_overlay_to_argb32(), vo_overlay_s::argb_layer, argb_layer_s::buffer, vdpau_overlay_t::height, vo_overlay_s::hili_rgb_clut, LOG_MODULE, lprintf, argb_layer_s::mutex, vdpau_overlay_t::ovl, vdpau_overlay_t::render_surface, vo_overlay_s::rgb_clut, vo_overlay_s::rle, vdpau_output_surface_t::surface, vdpau_overlay_t::use_dirty_rect, vdpau_free_output_surface(), vdpau_get_output_surface(), VDPAU_IF_ERROR, vdpau_overlay_t::width, argb_layer_s::x1, argb_layer_s::x2, xine_free_aligned(), xine_mallocz_aligned(), XINE_VERBOSITY_DEBUG, xprintf, argb_layer_s::y1, and argb_layer_s::y2.

Referenced by vdpau_open_plugin().

## ◆ vdpau_process_overlays()

static void vdpau_process_overlays | ( | vdpau_driver_t * | this | ) |
| static

References blend, vdpau_overlay_t::extent_height, vdpau_overlay_t::extent_width, vdpau_overlay_t::height, LOG_MODULE, lprintf, NULL, vdpau_overlay_t::render_surface, vdpau_output_surface_t::surface, vdpau_overlay_t::unscaled, vdpau_free_output_surface(), vdpau_get_output_surface(), VDPAU_IF_ERROR, vdpau_overlay_t::video_window_height, vdpau_overlay_t::video_window_width, vdpau_overlay_t::video_window_x, vdpau_overlay_t::video_window_y, vdpau_overlay_t::width, vdpau_overlay_t::x, xine_free_aligned(), xine_mallocz_aligned(), XINE_VERBOSITY_DEBUG, XINE_VORAW_MAX_OVL, xprintf, and vdpau_overlay_t::y.

Referenced by vdpau_display_frame().

## ◆ vdpau_provide_standard_frame_data()

static void vdpau_provide_standard_frame_data | ( | vo_frame_t * | frame,
|  | xine_current_frame_data_t * | data )
| static

References vo_frame_s::accel_data, vdpau_accel_t::chroma, vdpau_accel_t::current_vdp_runtime_nr, vo_frame_s::driver, vo_frame_s::format, xine_current_frame_data_s::format, vo_frame_s::height, xine_current_frame_data_s::img, xine_current_frame_data_s::img_size, LOG_MODULE, vdpau_accel_t::surface, vdpau_accel_t::vdp_runtime_nr, VDPAU_IF_ERROR, vdpau_accel_t::vo_frame, vo_frame_s::width, XINE_IMGFMT_VDPAU, XINE_IMGFMT_YUY2, XINE_IMGFMT_YV12, XINE_VERBOSITY_LOG, and xprintf.

Referenced by vdpau_update_frame_format().

## ◆ vdpau_redraw_needed()

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

References _x_vo_scale_compute_ideal_size(), _x_vo_scale_compute_output_size(), and _x_vo_scale_redraw_needed().

Referenced by vdpau_display_frame(), and vdpau_open_plugin().

## ◆ vdpau_reinit()

static void vdpau_reinit | ( | vdpau_driver_t * | this | ) |
| static

References _VOVDP_S_ALL, DO_LOCKDISPLAY, DO_UNLOCKDISPLAY, vdpau_output_surface_t::height, LOG_MODULE, vdp_preemption_callback(), VDPAU_BAIL_REINIT, vdpau_new_video_mixer(), vdpau_output_surf_delete(), vdpau_output_surf_new(), vdpau_release_back_frames(), vdpau_update_display_dimension(), vdpau_video_surf_delete(), vdpau_video_surf_new(), vdpau_output_surface_t::width, XINE_VERBOSITY_DEBUG, XINE_VERBOSITY_LOG, and xprintf.

Referenced by vdpau_display_frame().

## ◆ vdpau_release_back_frames()

static int vdpau_release_back_frames | ( | vdpau_driver_t * | this | ) |
| static

References NULL, and NUM_FRAMES_BACK.

Referenced by vdpau_display_frame(), vdpau_reinit(), and vdpau_set_property().

## ◆ vdpau_set_background()

static void vdpau_set_background | ( | void * | this_gen,
|  | xine_cfg_entry_t * | entry )
| static

References _VOVDP_S_BGCOLOR, and xine_cfg_entry_s::num_value.

Referenced by vdpau_open_plugin().

## ◆ vdpau_set_layer_bug()

static void vdpau_set_layer_bug | ( | void * | this_gen,
|  | xine_cfg_entry_t * | entry )
| static

References vdpau_driver_t::layer_bug, LOG_MODULE, xine_cfg_entry_s::num_value, XINE_VERBOSITY_DEBUG, and xprintf.

Referenced by vdpau_open_plugin().

## ◆ vdpau_set_process_snapshots()

static void vdpau_set_process_snapshots | ( | void * | this_gen,
|  | xine_cfg_entry_t * | entry )
| static

References NULL, xine_cfg_entry_s::num_value, and vdpau_new_grab_video_frame().

Referenced by vdpau_open_plugin().

## ◆ vdpau_set_property()

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

References _VOVDP_S_BRIGHTNESS, _VOVDP_S_CONTRAST, _VOVDP_S_DEINT, _VOVDP_S_HUE, _VOVDP_S_NOISE_RED, _VOVDP_S_SATURATION, _VOVDP_S_SHARPNESS, _VOVDP_S_TRANSFORM, _x_vo_scale_compute_ideal_size(), contrast, lprintf, noise(), vdpau_release_back_frames(), VO_PROP_ASPECT_RATIO, VO_PROP_BRIGHTNESS, VO_PROP_CONTRAST, VO_PROP_DISCARD_FRAMES, VO_PROP_HUE, VO_PROP_INTERLACED, VO_PROP_NOISE_REDUCTION, VO_PROP_SATURATION, VO_PROP_SHARPNESS, VO_PROP_TRANSFORM, VO_PROP_ZOOM_X, VO_PROP_ZOOM_Y, XINE_VO_ASPECT_AUTO, XINE_VO_ASPECT_NUM_RATIOS, XINE_VO_TRANSFORM_FLIP_H, XINE_VO_TRANSFORM_FLIP_V, XINE_VO_ZOOM_MAX, XINE_VO_ZOOM_MIN, and XINE_VO_ZOOM_STEP.

Referenced by vdpau_open_plugin().

## ◆ vdpau_set_skip_chroma()

static void vdpau_set_skip_chroma | ( | void * | this_gen,
|  | xine_cfg_entry_t * | entry )
| static

References _VOVDP_S_NO_CHROMA, and xine_cfg_entry_s::num_value.

Referenced by vdpau_open_plugin().

## ◆ vdpau_shift_queue()

static void vdpau_shift_queue | ( | vdpau_driver_t * | this | ) |
| static

Referenced by vdpau_display_frame().

## ◆ vdpau_unlockdisplay()

static void vdpau_unlockdisplay | ( | vo_frame_t * | frame | ) |
| static

References vo_frame_s::driver.

Referenced by vdpau_alloc_frame().

## ◆ vdpau_update_csc_matrix()

static void vdpau_update_csc_matrix | ( | vdpau_driver_t * | this,
|  | vdpau_frame_t * | frame )
| static

References _VOVDP_S_BRIGHTNESS, _VOVDP_S_CONTRAST, _VOVDP_S_CSC, _VOVDP_S_HUE, _VOVDP_S_SATURATION, cm_names, contrast, LOG_MODULE, VDPAU_IF_ERROR, vdpau_frame_t::vo_frame, XINE_VERBOSITY_LOG, and xprintf.

Referenced by vdpau_display_frame().

## ◆ vdpau_update_deinterlace_method_hd()

static void vdpau_update_deinterlace_method_hd | ( | void * | this_gen,
|  | xine_cfg_entry_t * | entry )
| static

References _VOVDP_S_DEINT, LOG_MODULE, lprintf, and xine_cfg_entry_s::num_value.

Referenced by vdpau_open_plugin().

## ◆ vdpau_update_deinterlace_method_sd()

static void vdpau_update_deinterlace_method_sd | ( | void * | this_gen,
|  | xine_cfg_entry_t * | entry )
| static

References _VOVDP_S_DEINT, LOG_MODULE, lprintf, and xine_cfg_entry_s::num_value.

Referenced by vdpau_open_plugin().

## ◆ vdpau_update_display_dimension()

static void vdpau_update_display_dimension | ( | vdpau_driver_t * | this | ) |
| static

Referenced by vdpau_open_plugin(), and vdpau_reinit().

## ◆ vdpau_update_enable_inverse_telecine()

static void vdpau_update_enable_inverse_telecine | ( | void * | this_gen,
|  | xine_cfg_entry_t * | entry )
| static

References _VOVDP_S_INV_TELE, LOG_MODULE, lprintf, and xine_cfg_entry_s::num_value.

Referenced by vdpau_open_plugin().

## ◆ vdpau_update_frame_format()

static void vdpau_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 vdpau_video_surface_t::a_height, vdpau_video_surface_t::a_width, vo_frame_s::base, vdpau_accel_t::chroma, vdpau_video_surface_t::chroma, DO_LOCKDISPLAY, DO_UNLOCKDISPLAY, vdpau_frame_t::flags, vdpau_frame_t::format, vo_frame_s::future_frame, height, vdpau_frame_t::height, vdpau_video_surface_t::height, LOG_MODULE, lprintf, NULL, vo_frame_s::pitches, vo_frame_s::proc_duplicate_frame_data, vo_frame_s::proc_provide_standard_frame_data, vdpau_frame_t::ratio, vdpau_frame_t::surf, vdpau_accel_t::surface, vdpau_video_surface_t::surface, vdpau_frame_t::surface_cleared_nr, vdpau_accel_t::vdp_device, vdpau_accel_t::vdp_runtime_nr, vdpau_frame_t::vdpau_accel_data, vdpau_duplicate_frame_data(), vdpau_frame_field(), VDPAU_IF_ERROR, vdpau_provide_standard_frame_data(), vdpau_video_surf_delete(), vdpau_video_surf_new(), VO_CHROMA_422, vdpau_frame_t::vo_frame, VO_NEW_SEQUENCE_FLAG, vdpau_frame_t::width, vdpau_video_surface_t::width, vo_frame_s::width, width, xine_freep_aligned, XINE_IMGFMT_VDPAU, XINE_IMGFMT_YUY2, XINE_IMGFMT_YV12, and xine_malloc_aligned().

Referenced by vdpau_open_plugin().

## ◆ vdpau_update_prop()

static void vdpau_update_prop | ( | vdpau_driver_t * | this | ) |
| static

References _vdpau_feature_have(), _VOVDP_A_background_color, _VOVDP_I_inverse_telecine, _VOVDP_I_no_chroma, _VOVDP_I_temporal, _VOVDP_I_temporal_spatial, _VOVDP_M_noise_reduction, _VOVDP_M_sharpness, _VOVDP_S_BGCOLOR, _VOVDP_S_DEINT, _VOVDP_S_INV_TELE, _VOVDP_S_NO_CHROMA, _VOVDP_S_NOISE_RED, _VOVDP_S_SCALE_LEVEL, _VOVDP_S_SHARPNESS, DEINT_BOB, DEINT_HALF_TEMPORAL, DEINT_HALF_TEMPORAL_SPATIAL, DEINT_LAST, DEINT_NONE, DEINT_TEMPORAL, DEINT_TEMPORAL_SPATIAL, noise(), and VDPAU_IF_ERROR.

Referenced by vdpau_display_frame().

## ◆ vdpau_update_scaling_level()

static void vdpau_update_scaling_level | ( | void * | this_gen,
|  | xine_cfg_entry_t * | entry )
| static

References _VOVDP_S_SCALE_LEVEL, LOG_MODULE, lprintf, and xine_cfg_entry_s::num_value.

Referenced by vdpau_open_plugin().

## ◆ vdpau_update_sd_only_properties()

static void vdpau_update_sd_only_properties | ( | void * | this_gen,
|  | xine_cfg_entry_t * | entry )
| static

References _VOVDP_S_NOISE_RED, _VOVDP_S_SHARPNESS, LOG_MODULE, lprintf, and xine_cfg_entry_s::num_value.

Referenced by vdpau_open_plugin().

## ◆ vdpau_video_surf_delete()

static void vdpau_video_surf_delete | ( | vdpau_driver_t * | this,
|  | vdpau_video_surface_t * | s )
| static

References DO_LOCKDISPLAY, DO_UNLOCKDISPLAY, LOG_MODULE, vdpau_video_surface_t::surface, XINE_VERBOSITY_DEBUG, and xprintf.

Referenced by vdpau_display_frame(), vdpau_dispose(), vdpau_duplicate_frame_data(), vdpau_frame_dispose(), vdpau_reinit(), and vdpau_update_frame_format().

## ◆ vdpau_video_surf_new()

static VdpStatus vdpau_video_surf_new | ( | vdpau_driver_t * | this,
|  | vdpau_video_surface_t * | s )
| static

References vdpau_video_surface_t::a_height, vdpau_video_surface_t::a_width, vdpau_video_surface_t::chroma, DO_LOCKDISPLAY, DO_UNLOCKDISPLAY, vdpau_video_surface_t::height, LOG_MODULE, vdpau_video_surface_t::surface, vdpau_video_surface_t::width, XINE_VERBOSITY_DEBUG, XINE_VERBOSITY_LOG, and xprintf.

Referenced by vdpau_display_frame(), vdpau_duplicate_frame_data(), vdpau_open_plugin(), vdpau_reinit(), and vdpau_update_frame_format().

## Variable Documentation

## ◆ _vdpau_required_features

const uint32_t _vdpau_required_features
| static

Initial value:
=
(1 << _VOVDP_V_yuv422) |
(1 << _VOVDP_V_yuv420) |
(1 << _VOVDP_V_yuy2) |
(1 << _VOVDP_V_yv12) |
(1 << _VOVDP_O_rgba) |
(1 << _VOVDP_O_rgba_soft) |
(1 << _VOVDP_O_yuv)
_VOVDP_O_rgba_soft
@ _VOVDP_O_rgba_soft
Definition video_out_vdpau.c:442
_VOVDP_V_yuv422
@ _VOVDP_V_yuv422
Definition video_out_vdpau.c:437
_VOVDP_V_yuy2
@ _VOVDP_V_yuy2
Definition video_out_vdpau.c:439
_VOVDP_V_yuv420
@ _VOVDP_V_yuv420
Definition video_out_vdpau.c:438
_VOVDP_V_yv12
@ _VOVDP_V_yv12
Definition video_out_vdpau.c:440
_VOVDP_O_yuv
@ _VOVDP_O_yuv
Definition video_out_vdpau.c:443
_VOVDP_O_rgba
@ _VOVDP_O_rgba
Definition video_out_vdpau.c:441

Referenced by vdpau_open_plugin().

## ◆ blend

const VdpOutputSurfaceRenderBlendState blend
| static

Initial value:
= {
VDP_OUTPUT_SURFACE_RENDER_BLEND_STATE_VERSION,
VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE,
VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_SRC_COLOR,
VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE,
VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA,
VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_ADD,
VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_ADD,
{ 0.f, 0.f, 0.f, 0.f }
}

Referenced by vdpau_process_overlays().

## ◆ EXPORTED

const plugin_info_t xine_plugin_info [] EXPORTED

Initial value:
= {
{ PLUGIN_VIDEO_OUT, 22, "vdpau", XINE_VERSION_CODE, &vo_info_vdpau, vdpau_init_class },
{ PLUGIN_NONE, 0, NULL, 0, NULL, NULL }
}
vo_info_vdpau
static const vo_info_t vo_info_vdpau
Definition video_out_vdpau.c:3352
vdpau_init_class
static void * vdpau_init_class(xine_t *xine, const void *visual_gen)
Definition video_out_vdpau.c:3332
XINE_VERSION_CODE
#define XINE_VERSION_CODE
Definition xine_internal.h:57
PLUGIN_NONE
#define PLUGIN_NONE
Definition xine_plugin.h:29
PLUGIN_VIDEO_OUT
#define PLUGIN_VIDEO_OUT
Definition xine_plugin.h:36

## ◆ vdpau_deinterlacer_description

const char* const vdpau_deinterlacer_description[]
| static

Initial value:
= {
"bob\nBasic deinterlacing, doing 50i->50p.\n\n",
"half temporal\nDisplays first field only, doing 50i->25p\n\n",
"half temporal_spatial\nDisplays first field only, doing 50i->25p\n\n",
"temporal\nVery good, 50i->50p\n\n",
"temporal_spatial\nThe best, but very GPU intensive.\n\n",
NULL
}

Referenced by vdpau_open_plugin().

## ◆ vdpau_deinterlacer_name

const char* const vdpau_deinterlacer_name[]
| static

Initial value:
= {
"bob",
"half temporal",
"half temporal_spatial",
"temporal",
"temporal_spatial",
NULL
}

Referenced by vdpau_open_plugin().

## ◆ vdpau_feature_list

const _vdpau_features_t vdpau_feature_list[]
| static

Initial value:
= {
[_VOVDP_V_yuv422] = { VDP_CHROMA_TYPE_422, 0, 1, "video_yuv422" },
[_VOVDP_V_yuv420] = { VDP_CHROMA_TYPE_420, 0, 1, "video_yuv420" },
[_VOVDP_V_yuy2] = { VDP_CHROMA_TYPE_422, VDP_YCBCR_FORMAT_YUYV, 2, "video_yuy2" },
[_VOVDP_V_yv12] = { VDP_CHROMA_TYPE_420, VDP_YCBCR_FORMAT_YV12, 2, "video_yv12" },
[_VOVDP_O_rgba] = { VDP_RGBA_FORMAT_B8G8R8A8, 0, 3, "output_rgba" },
[_VOVDP_O_rgba_soft] = { VDP_RGBA_FORMAT_B8G8R8A8, 0, 4, "output_rgba_soft" },
[_VOVDP_O_yuv] = { VDP_RGBA_FORMAT_B8G8R8A8, VDP_YCBCR_FORMAT_V8U8Y8A8, 5, "output_yuv" },
[_VOVDP_D_h264] = { VDP_DECODER_PROFILE_H264_MAIN, VO_CAP_VDPAU_H264, 6, "decode_h264" },
[_VOVDP_D_vc1] = { VDP_DECODER_PROFILE_VC1_MAIN, VO_CAP_VDPAU_VC1, 6, "decode_vc1" },
[_VOVDP_D_mpeg12] = { VDP_DECODER_PROFILE_MPEG2_MAIN, VO_CAP_VDPAU_MPEG12, 6, "decode_mpeg12" },
[_VOVDP_D_mpeg4] = { 13 , VO_CAP_VDPAU_MPEG4, 6, "decode_mpeg4" },
[_VOVDP_M_noise_reduction] = { VDP_VIDEO_MIXER_FEATURE_NOISE_REDUCTION,VO_CAP_NOISE_REDUCTION, 7, "mix_noise_reduction" },
[_VOVDP_M_sharpness] = { VDP_VIDEO_MIXER_FEATURE_SHARPNESS, VO_CAP_SHARPNESS, 7, "mix_sharpness" },
[_VOVDP_I_temporal] = { VDP_VIDEO_MIXER_FEATURE_DEINTERLACE_TEMPORAL, 0, 7, "deint_temporal" },
[_VOVDP_I_temporal_spatial] = { VDP_VIDEO_MIXER_FEATURE_DEINTERLACE_TEMPORAL_SPATIAL, 0, 7, "deint_temporal_spatial" },
[_VOVDP_I_inverse_telecine] = { VDP_VIDEO_MIXER_FEATURE_INVERSE_TELECINE, 0, 7, "deint_inverse_telecine" },
[_VOVDP_I_no_chroma] = { VDP_VIDEO_MIXER_ATTRIBUTE_SKIP_CHROMA_DEINTERLACE, 0, 8, "deint_no_chroma" },
[_VOVDP_A_background_color] = { VDP_VIDEO_MIXER_ATTRIBUTE_BACKGROUND_COLOR, 0, 8, "attr_background_color" },
[_VOVDP_A_color_matrix] = { VDP_VIDEO_MIXER_ATTRIBUTE_CSC_MATRIX, 0, 8, "attr_color_matrix" },
[_VOVDP_LAST] = { 0, 0, 0, "" }
}
VO_CAP_VDPAU_MPEG4
#define VO_CAP_VDPAU_MPEG4
Definition video_out.h:335
VO_CAP_VDPAU_MPEG12
#define VO_CAP_VDPAU_MPEG12
Definition video_out.h:333
VO_CAP_VDPAU_H264
#define VO_CAP_VDPAU_H264
Definition video_out.h:332
VO_CAP_NOISE_REDUCTION
#define VO_CAP_NOISE_REDUCTION
Definition video_out.h:352
VO_CAP_VDPAU_VC1
#define VO_CAP_VDPAU_VC1
Definition video_out.h:334
VO_CAP_SHARPNESS
#define VO_CAP_SHARPNESS
Definition video_out.h:351
_VOVDP_M_sharpness
@ _VOVDP_M_sharpness
Definition video_out_vdpau.c:449
_VOVDP_M_noise_reduction
@ _VOVDP_M_noise_reduction
Definition video_out_vdpau.c:448
_VOVDP_D_h264
@ _VOVDP_D_h264
Definition video_out_vdpau.c:444
_VOVDP_I_temporal
@ _VOVDP_I_temporal
Definition video_out_vdpau.c:450
_VOVDP_D_vc1
@ _VOVDP_D_vc1
Definition video_out_vdpau.c:445
_VOVDP_I_no_chroma
@ _VOVDP_I_no_chroma
Definition video_out_vdpau.c:453
_VOVDP_I_inverse_telecine
@ _VOVDP_I_inverse_telecine
Definition video_out_vdpau.c:452
_VOVDP_D_mpeg12
@ _VOVDP_D_mpeg12
Definition video_out_vdpau.c:446
_VOVDP_I_temporal_spatial
@ _VOVDP_I_temporal_spatial
Definition video_out_vdpau.c:451
_VOVDP_A_color_matrix
@ _VOVDP_A_color_matrix
Definition video_out_vdpau.c:455
_VOVDP_A_background_color
@ _VOVDP_A_background_color
Definition video_out_vdpau.c:454
_VOVDP_LAST
@ _VOVDP_LAST
Definition video_out_vdpau.c:456
_VOVDP_D_mpeg4
@ _VOVDP_D_mpeg4
Definition video_out_vdpau.c:447

Referenced by _vdpau_feature_names(), and _vdpau_feature_test().

## ◆ vdpau_funcs

const vdpau_func_t vdpau_funcs[]
| static

Referenced by vdpau_get_funcs().

## ◆ vo_info_vdpau

const vo_info_t vo_info_vdpau
| static

Initial value:
= {
.priority = 11,
.visual_type = XINE_VISUAL_TYPE_X11,
}
XINE_VISUAL_TYPE_X11
#define XINE_VISUAL_TYPE_X11
Definition xine.h:154