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_tvdpau_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_tvdpau_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_tvdpau_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

◆ _VOVDP_S_BGCOLOR

#define _VOVDP_S_BGCOLOR   0x1000

◆ _VOVDP_S_BRIGHTNESS

#define _VOVDP_S_BRIGHTNESS   0x0001

◆ _VOVDP_S_CONTRAST

#define _VOVDP_S_CONTRAST   0x0002

◆ _VOVDP_S_CSC

#define _VOVDP_S_CSC   0x0040

Referenced by vdpau_update_csc_matrix().

◆ _VOVDP_S_DEINT

#define _VOVDP_S_DEINT   0x0200

◆ _VOVDP_S_HUE

#define _VOVDP_S_HUE   0x0008

◆ _VOVDP_S_INV_TELE

#define _VOVDP_S_INV_TELE   0x0800

◆ _VOVDP_S_NO_CHROMA

#define _VOVDP_S_NO_CHROMA   0x0400

◆ _VOVDP_S_NOISE_RED

#define _VOVDP_S_NOISE_RED   0x0020

◆ _VOVDP_S_SATURATION

#define _VOVDP_S_SATURATION   0x0004

◆ _VOVDP_S_SCALE_LEVEL

#define _VOVDP_S_SCALE_LEVEL   0x0100

◆ _VOVDP_S_SHARPNESS

#define _VOVDP_S_SHARPNESS   0x0010

◆ _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)

◆ DO_UNLOCKDISPLAY

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

◆ LOCKDISPLAY

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

◆ LOG_MODULE

#define LOG_MODULE   "video_out_vdpau"

◆ 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

◆ 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); \
}
#define LOG_MODULE
Definition video_out_vdpau.c:30
#define XINE_VERBOSITY_LOG
Definition xine.h:429

◆ VDPAU_ERROR

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

◆ VDPAU_IF_ERROR

#define VDPAU_IF_ERROR ( msg)

◆ 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
Definition xine_plugin.c:78

Enumeration Type Documentation

◆ _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

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

◆ _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

◆ _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

◆ vdpau_alloc_frame()

static vo_frame_t * vdpau_alloc_frame ( vo_driver_t * this_gen)
static

◆ 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

◆ vdpau_display_frame()

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

◆ vdpau_dispose()

static void vdpau_dispose ( vo_driver_t * this_gen)
static

◆ vdpau_dispose_grab_video_frame()

static void vdpau_dispose_grab_video_frame ( xine_grab_video_frame_t * frame_gen)
static

◆ vdpau_duplicate_frame_data()

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

◆ vdpau_frame_dispose()

static void vdpau_frame_dispose ( vo_frame_t * vo_img)
static

◆ vdpau_frame_field()

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

◆ 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

◆ 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

◆ 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

◆ vdpau_get_property()

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

◆ vdpau_get_property_min_max()

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

◆ vdpau_grab_current_output_surface()

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

◆ vdpau_grab_grab_video_frame()

static int vdpau_grab_grab_video_frame ( xine_grab_video_frame_t * frame_gen)
static

◆ vdpau_gui_data_exchange()

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

◆ vdpau_honor_progressive_flag()

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

◆ vdpau_init_class()

static void * vdpau_init_class ( xine_t * xine,
const void * visual_gen )
static

◆ 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

◆ vdpau_new_video_mixer()

static VdpStatus vdpau_new_video_mixer ( vdpau_driver_t * this)
static

◆ 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

◆ vdpau_oslock_unlock()

static void vdpau_oslock_unlock ( vdpau_driver_t * this)
static

◆ vdpau_output_surf_delete()

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

◆ vdpau_output_surf_new()

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

◆ 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

◆ vdpau_overlay_end()

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

◆ vdpau_process_overlays()

static void vdpau_process_overlays ( vdpau_driver_t * this)
static

◆ vdpau_provide_standard_frame_data()

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

◆ vdpau_redraw_needed()

static int vdpau_redraw_needed ( vo_driver_t * this_gen)
static

◆ vdpau_reinit()

static void vdpau_reinit ( vdpau_driver_t * this)
static

◆ vdpau_release_back_frames()

static int vdpau_release_back_frames ( vdpau_driver_t * this)
static

◆ vdpau_set_background()

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

◆ vdpau_set_layer_bug()

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

◆ vdpau_set_process_snapshots()

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

◆ vdpau_set_property()

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

◆ vdpau_set_skip_chroma()

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

◆ 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

◆ vdpau_update_deinterlace_method_hd()

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

◆ vdpau_update_deinterlace_method_sd()

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

◆ 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

◆ 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

◆ vdpau_update_prop()

static void vdpau_update_prop ( vdpau_driver_t * this)
static

◆ vdpau_update_scaling_level()

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

◆ vdpau_update_sd_only_properties()

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

◆ vdpau_video_surf_delete()

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

◆ vdpau_video_surf_new()

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

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_yuv)
@ _VOVDP_O_rgba_soft
Definition video_out_vdpau.c:442
@ _VOVDP_V_yuv422
Definition video_out_vdpau.c:437
@ _VOVDP_V_yuy2
Definition video_out_vdpau.c:439
@ _VOVDP_V_yuv420
Definition video_out_vdpau.c:438
@ _VOVDP_V_yv12
Definition video_out_vdpau.c:440
@ _VOVDP_O_yuv
Definition video_out_vdpau.c:443
@ _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_NONE, 0, NULL, 0, NULL, NULL }
}
static const vo_info_t vo_info_vdpau
Definition video_out_vdpau.c:3352
static void * vdpau_init_class(xine_t *xine, const void *visual_gen)
Definition video_out_vdpau.c:3332
#define XINE_VERSION_CODE
Definition xine_internal.h:57
#define PLUGIN_NONE
Definition xine_plugin.h:29
#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",
}

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",
}

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, "" }
}
#define VO_CAP_VDPAU_MPEG4
Definition video_out.h:335
#define VO_CAP_VDPAU_MPEG12
Definition video_out.h:333
#define VO_CAP_VDPAU_H264
Definition video_out.h:332
#define VO_CAP_NOISE_REDUCTION
Definition video_out.h:352
#define VO_CAP_VDPAU_VC1
Definition video_out.h:334
#define VO_CAP_SHARPNESS
Definition video_out.h:351
@ _VOVDP_M_sharpness
Definition video_out_vdpau.c:449
@ _VOVDP_M_noise_reduction
Definition video_out_vdpau.c:448
@ _VOVDP_D_h264
Definition video_out_vdpau.c:444
@ _VOVDP_I_temporal
Definition video_out_vdpau.c:450
@ _VOVDP_D_vc1
Definition video_out_vdpau.c:445
@ _VOVDP_I_no_chroma
Definition video_out_vdpau.c:453
@ _VOVDP_I_inverse_telecine
Definition video_out_vdpau.c:452
@ _VOVDP_D_mpeg12
Definition video_out_vdpau.c:446
@ _VOVDP_I_temporal_spatial
Definition video_out_vdpau.c:451
@ _VOVDP_A_color_matrix
Definition video_out_vdpau.c:455
@ _VOVDP_A_background_color
Definition video_out_vdpau.c:454
@ _VOVDP_LAST
Definition video_out_vdpau.c:456
@ _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,
}
#define XINE_VISUAL_TYPE_X11
Definition xine.h:154