xine-lib  1.2.9
Data Structures | Macros | 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_grab_video_frame_t
 
struct  vdpau_frame_t
 
struct  vdpau_overlay_t
 
struct  vdpau_driver_t
 
struct  vdpau_class_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 DEINT_BOB   1
 
#define DEINT_HALF_TEMPORAL   2
 
#define DEINT_HALF_TEMPORAL_SPATIAL   3
 
#define DEINT_TEMPORAL   4
 
#define DEINT_TEMPORAL_SPATIAL   5
 
#define NUMBER_OF_DEINTERLACERS   5
 
#define DO_LOCKDISPLAY   XLockDisplay(guarded_display)
 
#define DO_UNLOCKDISPLAY   XUnlockDisplay(guarded_display)
 
#define NOUTPUTSURFACEBUFFER   25
 
#define NOUTPUTSURFACE   8
 
#define CM_LUT
 
#define CM_HAVE_YCGCO_SUPPORT   1
 
#define CM_DRIVER_T   vdpau_driver_t
 

Functions

static void vdp_preemption_callback (VdpDevice device, void *context)
 
static void vdpau_reinit (vo_driver_t *this_gen)
 
static VdpStatus guarded_vdp_video_surface_putbits_ycbcr (VdpVideoSurface surface, VdpYCbCrFormat source_ycbcr_format, void const *const *source_data, uint32_t const *source_pitches)
 
static VdpStatus guarded_vdp_video_surface_create (VdpDevice device, VdpChromaType chroma_type, uint32_t width, uint32_t height, VdpVideoSurface *surface)
 
static VdpStatus guarded_vdp_video_surface_destroy (VdpVideoSurface surface)
 
static VdpStatus guarded_vdp_output_surface_create (VdpDevice device, VdpChromaType chroma_type, uint32_t width, uint32_t height, VdpVideoSurface *surface)
 
static VdpStatus guarded_vdp_output_surface_destroy (VdpVideoSurface surface)
 
static VdpStatus guarded_vdp_decoder_create (VdpDevice device, VdpDecoderProfile profile, uint32_t width, uint32_t height, uint32_t max_references, VdpDecoder *decoder)
 
static VdpStatus guarded_vdp_decoder_destroy (VdpDecoder decoder)
 
static VdpStatus guarded_vdp_decoder_render (VdpDecoder decoder, VdpVideoSurface target, VdpPictureInfo const *picture_info, uint32_t bitstream_buffer_count, VdpBitstreamBuffer const *bitstream_buffers)
 
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 *this, xine_current_frame_data_t *data)
 
static void vdpau_duplicate_frame_data (vo_frame_t *this_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 (vo_driver_t *this_gen)
 
static void vdpau_backup_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen)
 
static void vdpau_set_deinterlace (vo_driver_t *this_gen)
 
static void vdpau_set_inverse_telecine (vo_driver_t *this_gen)
 
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_set_scaling_level (vo_driver_t *this_gen)
 
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_noise (vdpau_driver_t *this_gen)
 
static void vdpau_update_sharpness (vdpau_driver_t *this_gen)
 
static void vdpau_update_sd_only_properties (void *this_gen, xine_cfg_entry_t *entry)
 
static void vdpau_update_csc_matrix (vdpau_driver_t *that, vdpau_frame_t *frame)
 
static void vdpau_update_skip_chroma (vdpau_driver_t *this_gen)
 
static void vdpau_set_skip_chroma (void *this_gen, xine_cfg_entry_t *entry)
 
static void vdpau_update_background (vdpau_driver_t *this_gen)
 
static void vdpau_set_background (void *this_gen, xine_cfg_entry_t *entry)
 
static void vdpau_shift_queue (vo_driver_t *this_gen)
 
static void vdpau_check_output_size (vo_driver_t *this_gen)
 
static void vdpau_grab_current_output_surface (vdpau_driver_t *this, int64_t vpts)
 
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 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 void vdpau_update_display_dimension (vdpau_driver_t *this)
 
static int vdpau_reinit_error (VdpStatus st, const char *msg)
 
static int vdpau_init_error (VdpStatus st, const char *msg, vo_driver_t *driver, int error_string)
 
static vo_driver_tvdpau_open_plugin (video_driver_class_t *class_gen, const void *visual_gen)
 
static void * vdpau_init_class (xine_t *xine, void *visual_gen)
 

Variables

static const char *const vdpau_deinterlacer_name []
 
static const char *const vdpau_deinterlacer_description []
 
static const char *const vdpau_sd_only_properties []
 
static const VdpOutputSurfaceRenderBlendState blend
 
VdpDevice vdp_device
 
VdpPresentationQueue vdp_queue
 
VdpPresentationQueueTarget vdp_queue_target
 
VdpDeviceDestroy * vdp_device_destroy
 
VdpGetProcAddress * vdp_get_proc_address
 
VdpGetApiVersion * vdp_get_api_version
 
VdpGetInformationString * vdp_get_information_string
 
VdpGetErrorString * vdp_get_error_string
 
VdpVideoSurfaceQueryCapabilities * vdp_video_surface_query_capabilities
 
VdpVideoSurfaceQueryGetPutBitsYCbCrCapabilities * vdp_video_surface_query_get_put_bits_ycbcr_capabilities
 
VdpVideoSurfaceCreate * vdp_video_surface_create
 
VdpVideoSurfaceDestroy * vdp_video_surface_destroy
 
VdpVideoSurfacePutBitsYCbCr * vdp_video_surface_putbits_ycbcr
 
VdpVideoSurfaceGetBitsYCbCr * vdp_video_surface_getbits_ycbcr
 
VdpVideoSurfaceGetParameters * vdp_video_surface_get_parameters
 
VdpOutputSurfaceQueryCapabilities * vdp_output_surface_query_capabilities
 
VdpOutputSurfaceQueryGetPutBitsNativeCapabilities * vdp_output_surface_query_get_put_bits_native_capabilities
 
VdpOutputSurfaceQueryPutBitsYCbCrCapabilities * vdp_output_surface_query_put_bits_ycbcr_capabilities
 
VdpOutputSurfaceCreate * vdp_output_surface_create
 
VdpOutputSurfaceDestroy * vdp_output_surface_destroy
 
VdpOutputSurfaceRenderOutputSurface * vdp_output_surface_render_output_surface
 
VdpOutputSurfaceGetBitsNative * vdp_output_surface_get_bits
 
VdpOutputSurfacePutBitsNative * vdp_output_surface_put_bits
 
VdpOutputSurfacePutBitsYCbCr * vdp_output_surface_put_bits_ycbcr
 
VdpVideoMixerCreate * vdp_video_mixer_create
 
VdpVideoMixerDestroy * vdp_video_mixer_destroy
 
VdpVideoMixerRender * vdp_video_mixer_render
 
VdpVideoMixerSetAttributeValues * vdp_video_mixer_set_attribute_values
 
VdpVideoMixerSetFeatureEnables * vdp_video_mixer_set_feature_enables
 
VdpVideoMixerGetFeatureEnables * vdp_video_mixer_get_feature_enables
 
VdpVideoMixerQueryFeatureSupport * vdp_video_mixer_query_feature_support
 
VdpVideoMixerQueryParameterSupport * vdp_video_mixer_query_parameter_support
 
VdpVideoMixerQueryAttributeSupport * vdp_video_mixer_query_attribute_support
 
VdpVideoMixerQueryParameterValueRange * vdp_video_mixer_query_parameter_value_range
 
VdpVideoMixerQueryAttributeValueRange * vdp_video_mixer_query_attribute_value_range
 
VdpGenerateCSCMatrix * vdp_generate_csc_matrix
 
VdpPresentationQueueTargetCreateX11 * vdp_queue_target_create_x11
 
VdpPresentationQueueTargetDestroy * vdp_queue_target_destroy
 
VdpPresentationQueueCreate * vdp_queue_create
 
VdpPresentationQueueDestroy * vdp_queue_destroy
 
VdpPresentationQueueDisplay * vdp_queue_display
 
VdpPresentationQueueBlockUntilSurfaceIdle * vdp_queue_block
 
VdpPresentationQueueSetBackgroundColor * vdp_queue_set_background_color
 
VdpPresentationQueueGetTime * vdp_queue_get_time
 
VdpPresentationQueueQuerySurfaceStatus * vdp_queue_query_surface_status
 
VdpDecoderQueryCapabilities * vdp_decoder_query_capabilities
 
VdpDecoderCreate * vdp_decoder_create
 
VdpDecoderDestroy * vdp_decoder_destroy
 
VdpDecoderRender * vdp_decoder_render
 
VdpPreemptionCallbackRegister * vdp_preemption_callback_register
 
static VdpVideoSurfaceCreate * orig_vdp_video_surface_create
 
static VdpVideoSurfaceDestroy * orig_vdp_video_surface_destroy
 
static VdpOutputSurfaceCreate * orig_vdp_output_surface_create
 
static VdpOutputSurfaceDestroy * orig_vdp_output_surface_destroy
 
static VdpVideoSurfacePutBitsYCbCr * orig_vdp_video_surface_putbits_ycbcr
 
static VdpDecoderCreate * orig_vdp_decoder_create
 
static VdpDecoderDestroy * orig_vdp_decoder_destroy
 
static VdpDecoderRender * orig_vdp_decoder_render
 
static Display * guarded_display
 
static const vo_info_t vo_info_vdpau
 
const plugin_info_t xine_plugin_info [] EXPORTED
 

Macro Definition Documentation

◆ CM_DRIVER_T

#define CM_DRIVER_T   vdpau_driver_t

◆ CM_HAVE_YCGCO_SUPPORT

#define CM_HAVE_YCGCO_SUPPORT   1

◆ CM_LUT

#define CM_LUT

◆ DEINT_BOB

#define DEINT_BOB   1

◆ DEINT_HALF_TEMPORAL

#define DEINT_HALF_TEMPORAL   2

◆ DEINT_HALF_TEMPORAL_SPATIAL

#define DEINT_HALF_TEMPORAL_SPATIAL   3

◆ DEINT_TEMPORAL

#define DEINT_TEMPORAL   4

◆ DEINT_TEMPORAL_SPATIAL

#define DEINT_TEMPORAL_SPATIAL   5

◆ DO_LOCKDISPLAY

#define DO_LOCKDISPLAY   XLockDisplay(guarded_display)

◆ DO_UNLOCKDISPLAY

#define DO_UNLOCKDISPLAY   XUnlockDisplay(guarded_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

Function Documentation

◆ guarded_vdp_decoder_create()

static VdpStatus guarded_vdp_decoder_create ( VdpDevice  device,
VdpDecoderProfile  profile,
uint32_t  width,
uint32_t  height,
uint32_t  max_references,
VdpDecoder *  decoder 
)
static

◆ guarded_vdp_decoder_destroy()

static VdpStatus guarded_vdp_decoder_destroy ( VdpDecoder  decoder)
static

◆ guarded_vdp_decoder_render()

static VdpStatus guarded_vdp_decoder_render ( VdpDecoder  decoder,
VdpVideoSurface  target,
VdpPictureInfo const *  picture_info,
uint32_t  bitstream_buffer_count,
VdpBitstreamBuffer const *  bitstream_buffers 
)
static

◆ guarded_vdp_output_surface_create()

static VdpStatus guarded_vdp_output_surface_create ( VdpDevice  device,
VdpChromaType  chroma_type,
uint32_t  width,
uint32_t  height,
VdpVideoSurface *  surface 
)
static

◆ guarded_vdp_output_surface_destroy()

static VdpStatus guarded_vdp_output_surface_destroy ( VdpVideoSurface  surface)
static

◆ guarded_vdp_video_surface_create()

static VdpStatus guarded_vdp_video_surface_create ( VdpDevice  device,
VdpChromaType  chroma_type,
uint32_t  width,
uint32_t  height,
VdpVideoSurface *  surface 
)
static

◆ guarded_vdp_video_surface_destroy()

static VdpStatus guarded_vdp_video_surface_destroy ( VdpVideoSurface  surface)
static

◆ guarded_vdp_video_surface_putbits_ycbcr()

static VdpStatus guarded_vdp_video_surface_putbits_ycbcr ( VdpVideoSurface  surface,
VdpYCbCrFormat  source_ycbcr_format,
void const *const *  source_data,
uint32_t const *  source_pitches 
)
static

◆ vdp_preemption_callback()

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

Referenced by vdpau_open_plugin(), and vdpau_reinit().

◆ vdpau_alloc_frame()

static vo_frame_t* vdpau_alloc_frame ( vo_driver_t this_gen)
static

◆ vdpau_backup_frame()

static void vdpau_backup_frame ( vo_driver_t this_gen,
vo_frame_t frame_gen 
)
static

References vo_frame_s::free, and NUM_FRAMES_BACK.

Referenced by vdpau_display_frame().

◆ vdpau_check_output_size()

static void vdpau_check_output_size ( vo_driver_t this_gen)
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 this_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_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

References lprintf, and xine_cfg_entry_s::num_value.

Referenced by vdpau_open_plugin().

◆ vdpau_init_class()

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

◆ vdpau_init_error()

static int vdpau_init_error ( VdpStatus  st,
const char *  msg,
vo_driver_t driver,
int  error_string 
)
static

References vdp_get_error_string, and vdpau_dispose().

Referenced by vdpau_open_plugin().

◆ vdpau_new_grab_video_frame()

static xine_grab_video_frame_t* vdpau_new_grab_video_frame ( vo_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 _, _x_vo_scale_init(), contrast, DEINT_BOB, DEINT_HALF_TEMPORAL, DEINT_HALF_TEMPORAL_SPATIAL, DEINT_TEMPORAL, DEINT_TEMPORAL_SPATIAL, guarded_display, guarded_vdp_decoder_create(), guarded_vdp_decoder_destroy(), guarded_vdp_decoder_render(), guarded_vdp_output_surface_create(), guarded_vdp_output_surface_destroy(), guarded_vdp_video_surface_create(), guarded_vdp_video_surface_destroy(), guarded_vdp_video_surface_putbits_ycbcr(), noise(), NOUTPUTSURFACE, NOUTPUTSURFACEBUFFER, NULL, NUM_FRAMES_BACK, orig_vdp_decoder_create, orig_vdp_decoder_destroy, orig_vdp_decoder_render, orig_vdp_output_surface_create, orig_vdp_output_surface_destroy, orig_vdp_video_surface_create, orig_vdp_video_surface_destroy, orig_vdp_video_surface_putbits_ycbcr, 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_decoder_create, vdp_decoder_destroy, vdp_decoder_query_capabilities, vdp_decoder_render, vdp_device, vdp_device_destroy, vdp_generate_csc_matrix, vdp_get_api_version, vdp_get_error_string, vdp_get_information_string, vdp_get_proc_address, vdp_output_surface_create, vdp_output_surface_destroy, vdp_output_surface_get_bits, vdp_output_surface_put_bits, vdp_output_surface_put_bits_ycbcr, vdp_output_surface_query_capabilities, vdp_output_surface_query_get_put_bits_native_capabilities, vdp_output_surface_query_put_bits_ycbcr_capabilities, vdp_output_surface_render_output_surface, vdp_preemption_callback(), vdp_preemption_callback_register, vdp_queue, vdp_queue_block, vdp_queue_create, vdp_queue_destroy, vdp_queue_display, vdp_queue_get_time, vdp_queue_query_surface_status, vdp_queue_set_background_color, vdp_queue_target, vdp_queue_target_create_x11, vdp_queue_target_destroy, vdp_video_mixer_create, vdp_video_mixer_destroy, vdp_video_mixer_get_feature_enables, vdp_video_mixer_query_attribute_support, vdp_video_mixer_query_attribute_value_range, vdp_video_mixer_query_feature_support, vdp_video_mixer_query_parameter_support, vdp_video_mixer_query_parameter_value_range, vdp_video_mixer_render, vdp_video_mixer_set_attribute_values, vdp_video_mixer_set_feature_enables, vdp_video_surface_create, vdp_video_surface_destroy, vdp_video_surface_get_parameters, vdp_video_surface_getbits_ycbcr, vdp_video_surface_putbits_ycbcr, vdp_video_surface_query_capabilities, vdp_video_surface_query_get_put_bits_ycbcr_capabilities, vdpau_alloc_frame(), vdpau_deinterlacer_description, vdpau_deinterlacer_name, vdpau_display_frame(), vdpau_dispose(), vdpau_get_capabilities(), vdpau_get_property(), vdpau_get_property_min_max(), vdpau_gui_data_exchange(), vdpau_honor_progressive_flag(), vdpau_init_error(), vdpau_new_grab_video_frame(), vdpau_overlay_begin(), vdpau_overlay_blend(), vdpau_overlay_end(), vdpau_redraw_needed(), vdpau_sd_only_properties, vdpau_set_background(), 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(), 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_NOISE_REDUCTION, VO_CAP_SATURATION, VO_CAP_SHARPNESS, VO_CAP_UNSCALED_OVERLAY, VO_CAP_VDPAU_H264, VO_CAP_VDPAU_MPEG12, VO_CAP_VDPAU_MPEG4, VO_CAP_VDPAU_VC1, VO_CAP_VIDEO_WINDOW_OVERLAY, VO_CAP_YUY2, VO_CAP_YV12, vdpau_class_t::xine, XINE_IMGFMT_YV12, XINE_VERBOSITY_LOG, XINE_VO_ASPECT_AUTO, and xprintf.

Referenced by vdpau_init_class().

◆ 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 this,
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 ( vo_driver_t this_gen)
static

◆ vdpau_reinit_error()

static int vdpau_reinit_error ( VdpStatus  st,
const char *  msg 
)
static

References vdp_get_error_string.

Referenced by vdpau_reinit().

◆ vdpau_release_back_frames()

static int vdpau_release_back_frames ( vo_driver_t this_gen)
static

◆ vdpau_set_background()

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

◆ vdpau_set_deinterlace()

static void vdpau_set_deinterlace ( vo_driver_t this_gen)
static

◆ vdpau_set_inverse_telecine()

static void vdpau_set_inverse_telecine ( vo_driver_t this_gen)
static

◆ vdpau_set_property()

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

◆ vdpau_set_scaling_level()

static void vdpau_set_scaling_level ( vo_driver_t this_gen)
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 ( vo_driver_t this_gen)
static

Referenced by vdpau_display_frame().

◆ vdpau_update_background()

static void vdpau_update_background ( vdpau_driver_t this_gen)
static

◆ vdpau_update_csc_matrix()

static void vdpau_update_csc_matrix ( vdpau_driver_t that,
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_noise()

static void vdpau_update_noise ( vdpau_driver_t this_gen)
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_update_sharpness()

static void vdpau_update_sharpness ( vdpau_driver_t this_gen)
static

◆ vdpau_update_skip_chroma()

static void vdpau_update_skip_chroma ( vdpau_driver_t this_gen)
static

Variable Documentation

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

Referenced by vdpau_process_overlays().

◆ EXPORTED

const plugin_info_t xine_plugin_info [] EXPORTED
Initial value:
= {
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
}
#define PLUGIN_VIDEO_OUT
Definition: xine_plugin.h:35
#define XINE_VERSION_CODE
Definition: xine_internal.h:56
NULL
Definition: xine_plugin.c:91
static const vo_info_t vo_info_vdpau
Definition: video_out_vdpau.c:3278
static void * vdpau_init_class(xine_t *xine, void *visual_gen)
Definition: video_out_vdpau.c:3263
#define PLUGIN_NONE
Definition: xine_plugin.h:28

◆ guarded_display

Display* guarded_display
static

Referenced by vdpau_open_plugin().

◆ orig_vdp_decoder_create

VdpDecoderCreate* orig_vdp_decoder_create
static

◆ orig_vdp_decoder_destroy

VdpDecoderDestroy* orig_vdp_decoder_destroy
static

◆ orig_vdp_decoder_render

VdpDecoderRender* orig_vdp_decoder_render
static

◆ orig_vdp_output_surface_create

VdpOutputSurfaceCreate* orig_vdp_output_surface_create
static

◆ orig_vdp_output_surface_destroy

VdpOutputSurfaceDestroy* orig_vdp_output_surface_destroy
static

◆ orig_vdp_video_surface_create

VdpVideoSurfaceCreate* orig_vdp_video_surface_create
static

◆ orig_vdp_video_surface_destroy

VdpVideoSurfaceDestroy* orig_vdp_video_surface_destroy
static

◆ orig_vdp_video_surface_putbits_ycbcr

VdpVideoSurfacePutBitsYCbCr* orig_vdp_video_surface_putbits_ycbcr
static

◆ vdp_decoder_create

VdpDecoderCreate* vdp_decoder_create

◆ vdp_decoder_destroy

VdpDecoderDestroy* vdp_decoder_destroy

◆ vdp_decoder_query_capabilities

VdpDecoderQueryCapabilities* vdp_decoder_query_capabilities

Referenced by vdpau_open_plugin().

◆ vdp_decoder_render

VdpDecoderRender* vdp_decoder_render

◆ vdp_device

VdpDevice vdp_device

◆ vdp_device_destroy

VdpDeviceDestroy* vdp_device_destroy

Referenced by vdpau_dispose(), and vdpau_open_plugin().

◆ vdp_generate_csc_matrix

VdpGenerateCSCMatrix* vdp_generate_csc_matrix

Referenced by vdpau_open_plugin().

◆ vdp_get_api_version

VdpGetApiVersion* vdp_get_api_version

Referenced by vdpau_open_plugin().

◆ vdp_get_error_string

VdpGetErrorString* vdp_get_error_string

◆ vdp_get_information_string

VdpGetInformationString* vdp_get_information_string

Referenced by vdpau_open_plugin().

◆ vdp_get_proc_address

VdpGetProcAddress* vdp_get_proc_address

Referenced by vdpau_open_plugin(), and vdpau_reinit().

◆ vdp_output_surface_create

VdpOutputSurfaceCreate* vdp_output_surface_create

◆ vdp_output_surface_destroy

VdpOutputSurfaceDestroy* vdp_output_surface_destroy

◆ vdp_output_surface_get_bits

VdpOutputSurfaceGetBitsNative* vdp_output_surface_get_bits

◆ vdp_output_surface_put_bits

VdpOutputSurfacePutBitsNative* vdp_output_surface_put_bits

◆ vdp_output_surface_put_bits_ycbcr

VdpOutputSurfacePutBitsYCbCr* vdp_output_surface_put_bits_ycbcr

Referenced by vdpau_open_plugin().

◆ vdp_output_surface_query_capabilities

VdpOutputSurfaceQueryCapabilities* vdp_output_surface_query_capabilities

Referenced by vdpau_open_plugin().

◆ vdp_output_surface_query_get_put_bits_native_capabilities

VdpOutputSurfaceQueryGetPutBitsNativeCapabilities* vdp_output_surface_query_get_put_bits_native_capabilities

Referenced by vdpau_open_plugin().

◆ vdp_output_surface_query_put_bits_ycbcr_capabilities

VdpOutputSurfaceQueryPutBitsYCbCrCapabilities* vdp_output_surface_query_put_bits_ycbcr_capabilities

Referenced by vdpau_open_plugin().

◆ vdp_output_surface_render_output_surface

VdpOutputSurfaceRenderOutputSurface* vdp_output_surface_render_output_surface

◆ vdp_preemption_callback_register

VdpPreemptionCallbackRegister* vdp_preemption_callback_register

Referenced by vdpau_open_plugin(), and vdpau_reinit().

◆ vdp_queue

VdpPresentationQueue vdp_queue

◆ vdp_queue_block

VdpPresentationQueueBlockUntilSurfaceIdle* vdp_queue_block

◆ vdp_queue_create

VdpPresentationQueueCreate* vdp_queue_create

◆ vdp_queue_destroy

VdpPresentationQueueDestroy* vdp_queue_destroy

◆ vdp_queue_display

VdpPresentationQueueDisplay* vdp_queue_display

◆ vdp_queue_get_time

VdpPresentationQueueGetTime* vdp_queue_get_time

◆ vdp_queue_query_surface_status

VdpPresentationQueueQuerySurfaceStatus* vdp_queue_query_surface_status

Referenced by vdpau_open_plugin().

◆ vdp_queue_set_background_color

VdpPresentationQueueSetBackgroundColor* vdp_queue_set_background_color

◆ vdp_queue_target

VdpPresentationQueueTarget vdp_queue_target

◆ vdp_queue_target_create_x11

VdpPresentationQueueTargetCreateX11* vdp_queue_target_create_x11

◆ vdp_queue_target_destroy

VdpPresentationQueueTargetDestroy* vdp_queue_target_destroy

◆ vdp_video_mixer_create

VdpVideoMixerCreate* vdp_video_mixer_create

◆ vdp_video_mixer_destroy

VdpVideoMixerDestroy* vdp_video_mixer_destroy

◆ vdp_video_mixer_get_feature_enables

VdpVideoMixerGetFeatureEnables* vdp_video_mixer_get_feature_enables

◆ vdp_video_mixer_query_attribute_support

VdpVideoMixerQueryAttributeSupport* vdp_video_mixer_query_attribute_support

Referenced by vdpau_open_plugin().

◆ vdp_video_mixer_query_attribute_value_range

VdpVideoMixerQueryAttributeValueRange* vdp_video_mixer_query_attribute_value_range

Referenced by vdpau_open_plugin().

◆ vdp_video_mixer_query_feature_support

VdpVideoMixerQueryFeatureSupport* vdp_video_mixer_query_feature_support

Referenced by vdpau_open_plugin().

◆ vdp_video_mixer_query_parameter_support

VdpVideoMixerQueryParameterSupport* vdp_video_mixer_query_parameter_support

Referenced by vdpau_open_plugin().

◆ vdp_video_mixer_query_parameter_value_range

VdpVideoMixerQueryParameterValueRange* vdp_video_mixer_query_parameter_value_range

Referenced by vdpau_open_plugin().

◆ vdp_video_mixer_render

VdpVideoMixerRender* vdp_video_mixer_render

◆ vdp_video_mixer_set_attribute_values

VdpVideoMixerSetAttributeValues* vdp_video_mixer_set_attribute_values

◆ vdp_video_mixer_set_feature_enables

VdpVideoMixerSetFeatureEnables* vdp_video_mixer_set_feature_enables

◆ vdp_video_surface_create

VdpVideoSurfaceCreate* vdp_video_surface_create

◆ vdp_video_surface_destroy

VdpVideoSurfaceDestroy* vdp_video_surface_destroy

◆ vdp_video_surface_get_parameters

VdpVideoSurfaceGetParameters* vdp_video_surface_get_parameters

◆ vdp_video_surface_getbits_ycbcr

VdpVideoSurfaceGetBitsYCbCr* vdp_video_surface_getbits_ycbcr

◆ vdp_video_surface_putbits_ycbcr

VdpVideoSurfacePutBitsYCbCr* vdp_video_surface_putbits_ycbcr

◆ vdp_video_surface_query_capabilities

VdpVideoSurfaceQueryCapabilities* vdp_video_surface_query_capabilities

Referenced by vdpau_open_plugin().

◆ vdp_video_surface_query_get_put_bits_ycbcr_capabilities

VdpVideoSurfaceQueryGetPutBitsYCbCrCapabilities* vdp_video_surface_query_get_put_bits_ycbcr_capabilities

Referenced by vdpau_open_plugin().

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

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

Referenced by vdpau_open_plugin().

◆ vdpau_sd_only_properties

const char* const vdpau_sd_only_properties[]
static
Initial value:
= {
"none",
"noise",
"sharpness",
"noise+sharpness",
}
NULL
Definition: xine_plugin.c:91

Referenced by vdpau_open_plugin().

◆ vo_info_vdpau

const vo_info_t vo_info_vdpau
static
Initial value:
= {
11,
}
#define XINE_VISUAL_TYPE_X11
Definition: xine.h:154