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

xine-lib 1.2.13-20230125hg15249

Macros | Enumerations | Functions | Variables
video_out_xxmc.c File Reference
`#include "xxmc.h"`
`#include <unistd.h>`
`#include <pthread.h>`
`#include "xv_common.h"`

## Macros
#define | NUM_ACCEL_PRIORITY (sizeof(accel_priority)/sizeof(accel_priority[0]))
#define | XVMC_VLD 0

## Enumerations
enum | xv_prefertype { xv_prefer_none , xv_prefer_overlay , xv_prefer_textured , xv_prefer_blitter }

## Functions
static void | xxmc_frame_updates (xxmc_driver_t *driver, xxmc_frame_t *frame, int init_macroblocks)
static void | dispose_ximage (xxmc_driver_t *this, XShmSegmentInfo *shminfo, XvImage *myimage)
static void | init_context_lock (context_lock_t *c)
static void | free_context_lock (context_lock_t *c)
void | xvmc_context_reader_lock (context_lock_t *c)
void | xvmc_context_reader_unlock (context_lock_t *c)
static void | xvmc_context_writer_lock (context_lock_t *c)
static void | xvmc_context_writer_unlock (context_lock_t *c)
static void | xxmc_xvmc_dump_surfaces (xxmc_driver_t *this)
static void | xxmc_xvmc_dump_subpictures (xxmc_driver_t *this)
static void | xxmc_xvmc_surface_handler_construct (xxmc_driver_t *this)
static void | xxmc_xvmc_destroy_surfaces (xxmc_driver_t *this)
static void | xxmc_xvmc_destroy_subpictures (xxmc_driver_t *this)
static XvMCSurface * | xxmc_xvmc_alloc_surface (xxmc_driver_t *this, XvMCContext *context)
static void | xxmc_xvmc_free_surface (xxmc_driver_t *this, XvMCSurface *surf)
int | xxmc_xvmc_surface_valid (xxmc_driver_t *this, XvMCSurface *surf)
static XvMCSubpicture * | xxmc_xvmc_alloc_subpicture (xxmc_driver_t *this, XvMCContext *context, unsigned short width, unsigned short height, int xvimage_id)
static void | xxmc_xvmc_free_subpicture (xxmc_driver_t *this, XvMCSubpicture *sub)
static int | xxmc_lock_and_validate_surfaces (vo_frame_t *cur_frame, vo_frame_t *fw_frame, vo_frame_t *bw_frame, unsigned pc_type)
static void | xxmc_unlock_surfaces (vo_driver_t *this_gen)
static void | xvmc_flush (vo_frame_t *this_gen)
static void | xxmc_duplicate_frame_data (vo_frame_t *this_gen, vo_frame_t *original)
static uint32_t | xxmc_get_capabilities (vo_driver_t *this_gen)
static void | xxmc_frame_field (vo_frame_t *vo_img, int which_field)
static void | xxmc_frame_dispose (vo_frame_t *vo_img)
static vo_frame_t * | xxmc_alloc_frame (vo_driver_t *this_gen)
static int | HandleXError (Display *display, XErrorEvent *xevent)
static void | x11_InstallXErrorHandler (xxmc_driver_t *this)
static void | x11_DeInstallXErrorHandler (xxmc_driver_t *this)
static XvImage * | create_ximage (xxmc_driver_t *this, XShmSegmentInfo *shminfo, int width, int height, int format)
static void | xxmc_dispose_context (xxmc_driver_t *driver)
static int | xxmc_find_context (xxmc_driver_t *driver, xine_xxmc_t *xxmc, unsigned width, unsigned height)
static int | xxmc_create_context (xxmc_driver_t *driver, unsigned width, unsigned height)
static void | xxmc_setup_subpictures (xxmc_driver_t *driver, unsigned width, unsigned height)
static int | xxmc_mocomp_create_macroblocks (xxmc_driver_t *driver, xxmc_frame_t *frame, int slices)
static void | xvmc_check_colorkey_properties (xxmc_driver_t *driver)
static int | xxmc_xvmc_update_context (xxmc_driver_t *driver, xxmc_frame_t *frame, uint32_t width, uint32_t height, int frame_format_xxmc)
static void | xxmc_do_update_frame_xv (vo_driver_t *this_gen, vo_frame_t *frame_gen, uint32_t width, uint32_t height, double ratio, int format, int flags)
static int | xxmc_accel_update (xxmc_driver_t *driver, uint32_t last_request, uint32_t new_request)
static void | xxmc_do_update_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen, uint32_t width, uint32_t height, double ratio, int format, int flags)
static void | xxmc_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 | xxmc_clean_output_area (xxmc_driver_t *this, int xvmc_active)
static void | xxmc_compute_ideal_size (xxmc_driver_t *this)
static void | xxmc_compute_output_size (xxmc_driver_t *this)
static void | xxmc_check_xoverlay_type (xxmc_driver_t *driver, xxmc_frame_t *frame)
static void | xxmc_overlay_begin (vo_driver_t *this_gen, vo_frame_t *frame_gen, int changed)
static void | xxmc_overlay_end (vo_driver_t *this_gen, vo_frame_t *vo_img)
static void | xxmc_overlay_blend (vo_driver_t *this_gen, vo_frame_t *frame_gen, vo_overlay_t *overlay)
static void | xxmc_add_recent_frame (xxmc_driver_t *this, xxmc_frame_t *frame)
static int | xv_flush_recent_frames (xxmc_driver_t *this)
static int | xxmc_redraw_needed (vo_driver_t *this_gen)
static void | xxmc_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen)
static int | xxmc_get_property (vo_driver_t *this_gen, int property)
static void | xxmc_property_callback (void *property_gen, xine_cfg_entry_t *entry)
static int | xxmc_set_property (vo_driver_t *this_gen, int property, int value)
static void | xxmc_get_property_min_max (vo_driver_t *this_gen, int property, int *min, int *max)
static int | xxmc_gui_data_exchange (vo_driver_t *this_gen, int data_type, void *data)
static void | xxmc_dispose (vo_driver_t *this_gen)
static int | xxmc_check_yv12 (Display *display, XvPortID port)
static void | xxmc_check_capability (xxmc_driver_t *this, int property, XvAttribute attr, int base_id, const char *config_name, const char *config_desc, const char *config_help)
static void | xxmc_update_attr (void *this_gen, xine_cfg_entry_t *entry, const char *atomstr, const char *debugstr)
static void | xxmc_update_XV_FILTER (void *this_gen, xine_cfg_entry_t *entry)
static void | xxmc_update_XV_DOUBLE_BUFFER (void *this_gen, xine_cfg_entry_t *entry)
static void | xxmc_update_XV_BICUBIC (void *this_gen, xine_cfg_entry_t *entry)
static void | xxmc_update_xv_pitch_alignment (void *this_gen, xine_cfg_entry_t *entry)
static void | xxmc_update_cpu_save (void *this_gen, xine_cfg_entry_t *entry)
static void | xxmc_update_nvidia_fix (void *this_gen, xine_cfg_entry_t *entry)
static void | xxmc_update_bob (void *this_gen, xine_cfg_entry_t *entry)
static void | xxmc_update_disable_bob_for_progressive_frames (void *this_gen, xine_cfg_entry_t *entry)
static void | xxmc_update_disable_bob_for_scaled_osd (void *this_gen, xine_cfg_entry_t *entry)
static int | xxmc_open_port (xxmc_driver_t *this, XvPortID port)
static unsigned int | xxmc_find_adaptor_by_port (int port, unsigned int adaptors, XvAdaptorInfo *adaptor_info)
static XvPortID | xxmc_autodetect_port (xxmc_driver_t *this, unsigned int adaptors, XvAdaptorInfo *adaptor_info, unsigned int *adaptor_num, XvPortID base, xv_prefertype prefer_type)
static void | checkXvMCCap (xxmc_driver_t *this, XvPortID xv_port)
static vo_driver_t * | open_plugin (video_driver_class_t *class_gen, const void *visual_gen)
static void * | init_class (xine_t *xine, const void *visual_gen)

## Variables
static int | gX11Fail
static const char *const | bicubic_types [] = { "Off", "On", "Auto", NULL }
static const char *const | prefer_labels [] = { "Any", "Overlay", "Textured Video", "Blitter", NULL }
static const char | prefer_substrings [][8] = { "", "Overlay", "Texture", "Blitter" }
static const unsigned int | accel_priority []
static const vo_info_t | vo_info_xxmc
const plugin_info_t xine_plugin_info[] | EXPORTED

## Macro Definition Documentation

## ◆ NUM_ACCEL_PRIORITY

#define NUM_ACCEL_PRIORITY (sizeof(accel_priority)/sizeof(accel_priority[0]))

Referenced by xxmc_accel_update(), and xxmc_find_context().

## ◆ XVMC_VLD

#define XVMC_VLD 0

Referenced by checkXvMCCap().

## Enumeration Type Documentation

## ◆ xv_prefertype

enum xv_prefertype

Enumerator
xv_prefer_none |
xv_prefer_overlay |
xv_prefer_textured |
xv_prefer_blitter |

## Function Documentation

## ◆ checkXvMCCap()

static void checkXvMCCap | ( | xxmc_driver_t * | this,
|  | XvPortID | xv_port )
| static

References _x_init_xx44_palette(), xvmc_capabilities_t::accel_flags, xvmc_capabilities_t::flags, FOURCC_AI44, FOURCC_IA44, init_context_lock(), LOG_MODULE, xvmc_capabilities_t::max_height, xvmc_capabilities_t::max_width, xvmc_capabilities_t::mpeg_flags, NULL, xvmc_capabilities_t::sub_max_height, xvmc_capabilities_t::sub_max_width, xvmc_capabilities_t::subPicType, xvmc_capabilities_t::type_id, VO_CAP_XXMC, XINE_VERBOSITY_DEBUG, XINE_XVMC_ACCEL_IDCT, XINE_XVMC_ACCEL_MOCOMP, XINE_XVMC_ACCEL_VLD, XINE_XVMC_MPEG_1, XINE_XVMC_MPEG_2, XINE_XVMC_MPEG_4, xprintf, xvmc_context_writer_lock(), xvmc_context_writer_unlock(), XVMC_VLD, XVMCLOCKDISPLAY, XVMCUNLOCKDISPLAY, and xxmc_xvmc_surface_handler_construct().

Referenced by open_plugin().

## ◆ create_ximage()

static XvImage * create_ximage | ( | xxmc_driver_t * | this,
|  | XShmSegmentInfo * | shminfo,
|  | int | width,
|  | int | height,
|  | int | format )
| static

References _, FOURCC_AI44, FOURCC_IA44, gX11Fail, height, LOG_MODULE, NULL, width, x11_DeInstallXErrorHandler(), x11_InstallXErrorHandler(), XINE_IMGFMT_YUY2, XINE_IMGFMT_YV12, XINE_VERBOSITY_DEBUG, XINE_VERBOSITY_LOG, and xprintf.

Referenced by open_plugin(), xxmc_do_update_frame_xv(), and xxmc_setup_subpictures().

## ◆ dispose_ximage()

static void dispose_ximage | ( | xxmc_driver_t * | this,
|  | XShmSegmentInfo * | shminfo,
|  | XvImage * | myimage )
| static

References _x_freep().

Referenced by open_plugin(), xxmc_dispose_context(), and xxmc_do_update_frame_xv().

## ◆ free_context_lock()

static void free_context_lock | ( | context_lock_t * | c | ) |
| static

References context_lock_s::cond, and context_lock_s::mutex.

Referenced by xxmc_dispose().

## ◆ HandleXError()

static int HandleXError | ( | Display * | display,
|  | XErrorEvent * | xevent )
| static

References gX11Fail.

Referenced by x11_InstallXErrorHandler().

## ◆ init_class()

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

## ◆ init_context_lock()

static void init_context_lock | ( | context_lock_t * | c | ) |
| static

References context_lock_s::cond, context_lock_s::mutex, NULL, and context_lock_s::num_readers.

Referenced by checkXvMCCap().

## ◆ open_plugin()

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

References _, _x_alphablend_init(), _x_vo_scale_init(), bicubic_types, checkXvMCCap(), xine_s::config, create_ximage(), x11_visual_t::d, x11_visual_t::display, vo_frame_s::dispose, dispose_ximage(), x11_visual_t::frame_output_cb, LOG_MODULE, lprintf, name, NULL, cfg_entry_s::num_value, prefer_labels, x11_visual_t::screen, x11_visual_t::user_data, VIDEO_DEVICE_XV_AUTOPAINT_COLORKEY_HELP, VIDEO_DEVICE_XV_BICUBIC_HELP, VIDEO_DEVICE_XV_COLORKEY_HELP, VIDEO_DEVICE_XV_DOUBLE_BUFFER_HELP, VIDEO_DEVICE_XV_FILTER_HELP, VIDEO_DEVICE_XV_PITCH_ALIGNMENT_HELP, VIDEO_DEVICE_XV_PORT_HELP, VIDEO_DEVICE_XV_PREFER_TYPE_HELP, VO_CAP_AUTOPAINT_COLORKEY, VO_CAP_BRIGHTNESS, VO_CAP_COLORKEY, VO_CAP_CONTRAST, VO_CAP_CROP, VO_CAP_GAMMA, VO_CAP_HUE, VO_CAP_SATURATION, VO_CAP_UNSCALED_OVERLAY, VO_CAP_YUY2, VO_CAP_YV12, VO_CAP_ZOOM_X, VO_CAP_ZOOM_Y, VO_NUM_PROPERTIES, VO_PROP_ASPECT_RATIO, VO_PROP_AUTOPAINT_COLORKEY, VO_PROP_BRIGHTNESS, VO_PROP_COLORKEY, VO_PROP_CONTRAST, VO_PROP_GAMMA, VO_PROP_HUE, VO_PROP_INTERLACED, VO_PROP_MAX_NUM_FRAMES, VO_PROP_SATURATION, VO_PROP_ZOOM_X, VO_PROP_ZOOM_Y, X11OSD_COLORKEY, x11osd_colorkey(), x11osd_create(), X11OSD_SHAPED, config_values_s::xine, xxmc_class_t::xine, XINE_IMGFMT_YUY2, XINE_IMGFMT_YV12, XINE_VERBOSITY_DEBUG, XINE_VERBOSITY_LOG, XINE_VERBOSITY_NONE, XINE_VO_ASPECT_AUTO, xprintf, xv_prefer_none, xxmc_alloc_frame(), xxmc_autodetect_port(), xxmc_check_capability(), xxmc_display_frame(), xxmc_dispose(), xxmc_find_adaptor_by_port(), xxmc_get_capabilities(), xxmc_get_property(), xxmc_get_property_min_max(), xxmc_gui_data_exchange(), xxmc_open_port(), xxmc_overlay_begin(), xxmc_overlay_blend(), xxmc_overlay_end(), xxmc_redraw_needed(), xxmc_set_property(), xxmc_update_bob(), xxmc_update_cpu_save(), xxmc_update_disable_bob_for_progressive_frames(), xxmc_update_disable_bob_for_scaled_osd(), xxmc_update_frame_format(), xxmc_update_nvidia_fix(), xxmc_update_XV_BICUBIC(), xxmc_update_XV_DOUBLE_BUFFER(), xxmc_update_XV_FILTER(), and xxmc_update_xv_pitch_alignment().

Referenced by init_class().

## ◆ x11_DeInstallXErrorHandler()

static void x11_DeInstallXErrorHandler | ( | xxmc_driver_t * | this | ) |
| static

References NULL.

Referenced by create_ximage(), and xxmc_open_port().

## ◆ x11_InstallXErrorHandler()

static void x11_InstallXErrorHandler | ( | xxmc_driver_t * | this | ) |
| static

References HandleXError().

Referenced by create_ximage(), and xxmc_open_port().

## ◆ xv_flush_recent_frames()

static int xv_flush_recent_frames | ( | xxmc_driver_t * | this | ) |
| static

References vo_frame_s::free, NULL, xxmc_frame_t::vo_frame, and VO_NUM_RECENT_FRAMES.

Referenced by xxmc_set_property().

## ◆ xvmc_check_colorkey_properties()

static void xvmc_check_colorkey_properties | ( | xxmc_driver_t * | driver | ) |
| static

References xxmc_driver_s::context, xxmc_driver_s::context_flags, xxmc_driver_s::display, xxmc_driver_s::have_xvmc_autopaint, name, xxmc_driver_s::props, xxmc_property_t::value, VO_PROP_AUTOPAINT_COLORKEY, X11OSD_COLORKEY, X11OSD_SHAPED, xxmc_driver_s::xvmc_xoverlay_type, XVMCLOCKDISPLAY, and XVMCUNLOCKDISPLAY.

Referenced by xxmc_xvmc_update_context().

## ◆ xvmc_context_reader_lock()

void xvmc_context_reader_lock | ( | context_lock_t * | c | ) |

References context_lock_s::mutex, and context_lock_s::num_readers.

Referenced by xvmc_flush(), xxmc_display_frame(), xxmc_gui_data_exchange(), xxmc_lock_and_validate_surfaces(), xxmc_overlay_begin(), xxmc_property_callback(), and xxmc_set_property().

## ◆ xvmc_context_reader_unlock()

void xvmc_context_reader_unlock | ( | context_lock_t * | c | ) |

References context_lock_s::cond, context_lock_s::mutex, and context_lock_s::num_readers.

Referenced by xvmc_flush(), xxmc_display_frame(), xxmc_gui_data_exchange(), xxmc_lock_and_validate_surfaces(), xxmc_overlay_begin(), xxmc_overlay_blend(), xxmc_overlay_end(), xxmc_property_callback(), xxmc_set_property(), and xxmc_unlock_surfaces().

## ◆ xvmc_context_writer_lock()

static void xvmc_context_writer_lock | ( | context_lock_t * | c | ) |
| static

References context_lock_s::cond, context_lock_s::mutex, and context_lock_s::num_readers.

Referenced by checkXvMCCap(), xxmc_dispose(), xxmc_do_update_frame(), xxmc_duplicate_frame_data(), and xxmc_frame_dispose().

## ◆ xvmc_context_writer_unlock()

static void xvmc_context_writer_unlock | ( | context_lock_t * | c | ) |
| static

References context_lock_s::mutex.

Referenced by checkXvMCCap(), xxmc_dispose(), xxmc_do_update_frame(), xxmc_duplicate_frame_data(), and xxmc_frame_dispose().

## ◆ xvmc_flush()

static void xvmc_flush | ( | vo_frame_t * | this_gen | ) |
| static

References xxmc_driver_s::display, vo_frame_s::driver, xine_xxmc_s::result, xvmc_context_reader_lock(), xvmc_context_reader_unlock(), xxmc_driver_s::xvmc_lock, xxmc_frame_t::xvmc_surf, XVMCLOCKDISPLAY, XVMCUNLOCKDISPLAY, xxmc_frame_t::xxmc_data, XXMC_FRAME, and xxmc_xvmc_surface_valid().

Referenced by xxmc_frame_updates().

## ◆ xxmc_accel_update()

static int xxmc_accel_update | ( | xxmc_driver_t * | driver,
|  | uint32_t | last_request,
|  | uint32_t | new_request )
| static

References accel_priority, NUM_ACCEL_PRIORITY, and xxmc_driver_s::xvmc_accel.

Referenced by xxmc_do_update_frame().

## ◆ xxmc_add_recent_frame()

static void xxmc_add_recent_frame | ( | xxmc_driver_t * | this,
|  | xxmc_frame_t * | frame )
| static

References VO_NUM_RECENT_FRAMES.

Referenced by xxmc_display_frame().

## ◆ xxmc_alloc_frame()

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

References vo_frame_s::accel_data, vo_frame_s::dispose, vo_frame_s::driver, vo_frame_s::field, xxmc_frame_t::image, xxmc_frame_t::last_sw_format, vo_frame_s::mutex, NULL, vo_frame_s::proc_duplicate_frame_data, vo_frame_s::proc_frame, vo_frame_s::proc_slice, xine_xvmc_s::vo_frame, xxmc_frame_t::vo_frame, XINE_VERBOSITY_DEBUG, xprintf, xine_xxmc_s::xvmc, xxmc_frame_t::xvmc_surf, xxmc_frame_t::xxmc_data, xxmc_frame_dispose(), and xxmc_frame_field().

Referenced by open_plugin().

## ◆ xxmc_autodetect_port()

static XvPortID xxmc_autodetect_port | ( | xxmc_driver_t * | this,
|  | unsigned int | adaptors,
|  | XvAdaptorInfo * | adaptor_info,
|  | unsigned int * | adaptor_num,
|  | XvPortID | base,
|  | xv_prefertype | prefer_type )
| static

References name, prefer_substrings, type, xv_prefer_none, and xxmc_open_port().

Referenced by open_plugin().

## ◆ xxmc_check_capability()

static void xxmc_check_capability | ( | xxmc_driver_t * | this,
|  | int | property,
|  | XvAttribute | attr,
|  | int | base_id,
|  | const char * | config_name,
|  | const char * | config_desc,
|  | const char * | config_help )
| static

References LOG_MODULE, cfg_entry_s::num_value, VO_PROP_COLORKEY, XINE_VERBOSITY_DEBUG, xprintf, xxmc_property_callback(), and xxmc_set_property().

Referenced by open_plugin().

## ◆ xxmc_check_xoverlay_type()

static void xxmc_check_xoverlay_type | ( | xxmc_driver_t * | driver,
|  | xxmc_frame_t * | frame )
| static

References xxmc_driver_s::display, xxmc_driver_s::drawable, xxmc_frame_t::format, xxmc_driver_s::screen, x11osd_create(), x11osd_destroy(), xxmc_driver_s::xine, XINE_IMGFMT_XXMC, xxmc_driver_s::xoverlay, xxmc_driver_s::xoverlay_type, xxmc_driver_s::xv_xoverlay_type, and xxmc_driver_s::xvmc_xoverlay_type.

Referenced by xxmc_overlay_begin().

## ◆ xxmc_check_yv12()

static int xxmc_check_yv12 | ( | Display * | display,
|  | XvPortID | port )
| static

References XINE_IMGFMT_YV12.

Referenced by xxmc_open_port().

## ◆ xxmc_clean_output_area()

static int xxmc_clean_output_area | ( | xxmc_driver_t * | this,
|  | int | xvmc_active )
| static

References VO_PROP_AUTOPAINT_COLORKEY, and x11osd_resize().

Referenced by xxmc_gui_data_exchange(), and xxmc_redraw_needed().

## ◆ xxmc_compute_ideal_size()

static void xxmc_compute_ideal_size | ( | xxmc_driver_t * | this | ) |
| static

References _x_vo_scale_compute_ideal_size().

Referenced by xxmc_redraw_needed(), and xxmc_set_property().

## ◆ xxmc_compute_output_size()

static void xxmc_compute_output_size | ( | xxmc_driver_t * | this | ) |
| static

References _x_vo_scale_compute_output_size().

Referenced by xxmc_redraw_needed().

## ◆ xxmc_create_context()

static int xxmc_create_context | ( | xxmc_driver_t * | driver,
|  | unsigned | width,
|  | unsigned | height )
| static

References xxmc_driver_s::context, xxmc_driver_s::context_flags, xxmc_driver_s::contextActive, xxmc_driver_s::display, height, LOG_MODULE, xvmc_capabilities_t::mpeg_flags, xvmc_capabilities_t::type_id, width, xxmc_driver_s::xine, XINE_VERBOSITY_LOG, xprintf, xxmc_driver_s::xv_port, xxmc_driver_s::xvmc_cap, xxmc_driver_s::xvmc_cur_cap, xxmc_driver_s::xvmc_height, xxmc_driver_s::xvmc_mpeg, xxmc_driver_s::xvmc_width, XVMCLOCKDISPLAY, and XVMCUNLOCKDISPLAY.

Referenced by xxmc_xvmc_update_context().

## ◆ xxmc_display_frame()

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

References _x_query_buffer_usage(), vo_frame_s::crop_bottom, vo_frame_s::crop_left, vo_frame_s::crop_right, vo_frame_s::crop_top, xine_xxmc_s::decoded, vo_frame_s::duration, xxmc_frame_t::format, xxmc_frame_t::height, xxmc_frame_t::image, LOCK_AND_SURFACE_VALID, lprintf, NULL, vo_frame_s::progressive_frame, xxmc_frame_t::ratio, vo_frame_s::stream, vo_frame_s::top_field_first, xxmc_frame_t::vo_frame, xxmc_frame_t::width, XINE_FINE_SPEED_NORMAL, xine_get_param(), XINE_IMGFMT_XXMC, XINE_PARAM_FINE_SPEED, xine_usec_sleep(), xvmc_context_reader_lock(), xvmc_context_reader_unlock(), xxmc_frame_t::xvmc_surf, XVMCLOCKDISPLAY, XVMCUNLOCKDISPLAY, xxmc_add_recent_frame(), xxmc_frame_t::xxmc_data, xxmc_redraw_needed(), and xxmc_xvmc_surface_valid().

Referenced by open_plugin().

## ◆ xxmc_dispose()

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

References _x_alphablend_free(), _x_vo_scale_cleanup(), free_context_lock(), LOG_MODULE, NULL, VO_NUM_RECENT_FRAMES, x11osd_destroy(), XINE_VERBOSITY_DEBUG, xprintf, xvmc_context_writer_lock(), xvmc_context_writer_unlock(), xxmc_dispose_context(), and xxmc_xvmc_free_subpicture().

Referenced by open_plugin().

## ◆ xxmc_dispose_context()

static void xxmc_dispose_context | ( | xxmc_driver_t * | driver | ) |
| static

References _x_dispose_xx44_palette(), _x_freep(), xvmc_macroblocks_t::blocks, xxmc_driver_s::context, xxmc_driver_s::contextActive, xxmc_driver_s::display, dispose_ximage(), xxmc_driver_s::hwSubpictures, LOG_MODULE, xvmc_macroblocks_t::macro_blocks, xxmc_driver_s::macroblocks, NULL, xxmc_driver_s::palette, xxmc_driver_s::subImage, xxmc_driver_s::subShmInfo, xxmc_driver_s::xine, XINE_VERBOSITY_LOG, XINE_XVMC_ACCEL_IDCT, XINE_XVMC_ACCEL_MOCOMP, xprintf, xxmc_driver_s::xvmc_accel, xxmc_driver_s::xvmc_palette, XVMCLOCKDISPLAY, XVMCUNLOCKDISPLAY, xxmc_xvmc_destroy_subpictures(), and xxmc_xvmc_destroy_surfaces().

Referenced by xxmc_dispose(), xxmc_frame_updates(), and xxmc_xvmc_update_context().

## ◆ xxmc_do_update_frame()

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

References _x_abort, xine_xxmc_s::acceleration, xine_xxmc_s::fallback_format, vo_frame_s::format, xxmc_frame_t::format, height, xine_xvmc_s::macroblocks, xine_xxmc_s::mpeg, vo_frame_s::next, NULL, vo_frame_s::proc_duplicate_frame_data, xxmc_frame_t::vo_frame, width, xine_fast_memcpy, XINE_IMGFMT_XXMC, XINE_VERBOSITY_DEBUG, xprintf, xine_xxmc_s::xvmc, xvmc_context_writer_lock(), xvmc_context_writer_unlock(), xxmc_accel_update(), xxmc_frame_t::xxmc_data, xxmc_do_update_frame_xv(), XXMC_FRAME, xxmc_frame_updates(), and xxmc_xvmc_update_context().

Referenced by xxmc_update_frame_format().

## ◆ xxmc_do_update_frame_xv()

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

References vo_frame_s::base, create_ximage(), dispose_ximage(), vo_frame_s::format, xxmc_frame_t::format, height, xxmc_frame_t::height, xxmc_frame_t::image, xxmc_frame_t::last_sw_format, NULL, vo_frame_s::pitches, xxmc_frame_t::ratio, xxmc_frame_t::shminfo, xxmc_frame_t::vo_frame, vo_frame_s::width, width, xxmc_frame_t::width, XINE_IMGFMT_YUY2, XINE_IMGFMT_YV12, XINE_VERBOSITY_DEBUG, and xprintf.

Referenced by xxmc_do_update_frame().

## ◆ xxmc_duplicate_frame_data()

static void xxmc_duplicate_frame_data | ( | vo_frame_t * | this_gen,
|  | vo_frame_t * | original )
| static

References xine_xxmc_s::acceleration, xxmc_driver_s::context, xxmc_driver_s::display, vo_frame_s::driver, vo_frame_s::format, height, vo_frame_s::height, NULL, vo_frame_s::ratio, xvmc_capabilities_t::subPicType, xine_xvmc_s::vo_frame, vo_frame_s::width, width, xxmc_driver_s::xine, XINE_IMGFMT_XXMC, XINE_VERBOSITY_DEBUG, XINE_XVMC_ACCEL_VLD, xprintf, xine_xxmc_s::xvmc, xxmc_driver_s::xvmc_cap, xvmc_context_writer_lock(), xvmc_context_writer_unlock(), xxmc_driver_s::xvmc_cur_cap, xxmc_driver_s::xvmc_lock, XVMCLOCKDISPLAY, XVMCUNLOCKDISPLAY, xxmc_frame_updates(), xxmc_xvmc_alloc_subpicture(), xxmc_xvmc_free_subpicture(), and xxmc_xvmc_surface_valid().

Referenced by xxmc_frame_updates(), and xxmc_update_frame_format().

## ◆ xxmc_find_adaptor_by_port()

static unsigned int xxmc_find_adaptor_by_port | ( | int | port,
|  | unsigned int | adaptors,
|  | XvAdaptorInfo * | adaptor_info )
| static

References type.

Referenced by open_plugin().

## ◆ xxmc_find_context()

static int xxmc_find_context | ( | xxmc_driver_t * | driver,
|  | xine_xxmc_t * | xxmc,
|  | unsigned | width,
|  | unsigned | height )
| static

References xvmc_capabilities_t::accel_flags, accel_priority, xine_xxmc_s::acceleration, xvmc_capabilities_t::flags, height, LOG_MODULE, xine_xxmc_s::mpeg, xvmc_capabilities_t::mpeg_flags, NULL, NUM_ACCEL_PRIORITY, xxmc_driver_s::unsigned_intra, width, xxmc_driver_s::xine, XINE_VERBOSITY_LOG, xprintf, xxmc_driver_s::xvmc_accel, xxmc_driver_s::xvmc_cap, xxmc_driver_s::xvmc_cur_cap, and xxmc_driver_s::xvmc_num_cap.

Referenced by xxmc_xvmc_update_context().

## ◆ xxmc_frame_dispose()

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

References vo_frame_s::driver, xxmc_frame_t::image, NULL, xxmc_frame_t::shminfo, XINE_VERBOSITY_DEBUG, xprintf, xvmc_context_writer_lock(), xvmc_context_writer_unlock(), xxmc_frame_t::xvmc_surf, and xxmc_xvmc_free_surface().

Referenced by xxmc_alloc_frame().

## ◆ xxmc_frame_field()

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

References lprintf.

Referenced by xxmc_alloc_frame().

## ◆ xxmc_frame_updates()

static void xxmc_frame_updates | ( | xxmc_driver_t * | driver,
|  | xxmc_frame_t * | frame,
|  | int | init_macroblocks )
| static

References xine_xxmc_s::acceleration, xine_macroblock_s::blockbaseptr, xine_macroblock_s::blockptr, xxmc_driver_s::context, LOG_MODULE, xvmc_macroblocks_t::macroblockbaseptr, xvmc_macroblocks_t::macroblockptr, xine_xvmc_s::macroblocks, xxmc_driver_s::macroblocks, NULL, xvmc_macroblocks_t::num_blocks, vo_frame_s::proc_duplicate_frame_data, xine_xvmc_s::proc_macro_block, xine_xxmc_s::proc_xxmc_begin, xine_xxmc_s::proc_xxmc_flush, xine_xxmc_s::proc_xxmc_lock_valid, xine_xxmc_s::proc_xxmc_slice, xine_xxmc_s::proc_xxmc_unlock, xxmc_driver_s::unsigned_intra, xxmc_frame_t::vo_frame, xvmc_macroblocks_t::xine_mc, XINE_VO_IDCT_ACCEL, XINE_VO_MOTION_ACCEL, XINE_VO_SIGNED_INTRA, XINE_XVMC_ACCEL_IDCT, XINE_XVMC_ACCEL_MOCOMP, xine_xxmc_s::xvmc, xine_macroblock_s::xvmc_accel, xxmc_driver_s::xvmc_accel, xvmc_flush(), xxmc_frame_t::xvmc_surf, xvmc_vld_frame(), xvmc_vld_slice(), xxmc_frame_t::xxmc_data, xxmc_dispose_context(), xxmc_duplicate_frame_data(), xxmc_lock_and_validate_surfaces(), xxmc_unlock_surfaces(), xxmc_xvmc_alloc_surface(), xxmc_xvmc_free_surface(), xxmc_xvmc_proc_macro_block(), and xxmc_xvmc_surface_valid().

Referenced by xxmc_do_update_frame(), and xxmc_duplicate_frame_data().

## ◆ xxmc_get_capabilities()

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

Referenced by open_plugin().

## ◆ xxmc_get_property()

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

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

Referenced by open_plugin().

## ◆ xxmc_get_property_min_max()

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

References VO_NUM_PROPERTIES.

Referenced by open_plugin().

## ◆ xxmc_gui_data_exchange()

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

References _x_vo_scale_translate_gui2video(), xine_xxmc_s::decoded, xxmc_frame_t::format, x11_rectangle_t::h, xxmc_frame_t::image, NULL, x11_rectangle_t::w, x11_rectangle_t::x, x11osd_drawable_changed(), x11osd_expose(), XINE_GUI_SEND_COMPLETION_EVENT, XINE_GUI_SEND_DRAWABLE_CHANGED, XINE_GUI_SEND_EXPOSE_EVENT, XINE_GUI_SEND_TRANSLATE_GUI_TO_VIDEO, XINE_IMGFMT_XXMC, xvmc_context_reader_lock(), xvmc_context_reader_unlock(), xxmc_frame_t::xvmc_surf, XVMCLOCKDISPLAY, XVMCUNLOCKDISPLAY, xxmc_clean_output_area(), xxmc_frame_t::xxmc_data, xxmc_redraw_needed(), xxmc_xvmc_surface_valid(), and x11_rectangle_t::y.

Referenced by open_plugin().

## ◆ xxmc_lock_and_validate_surfaces()

static int xxmc_lock_and_validate_surfaces | ( | vo_frame_t * | cur_frame,
|  | vo_frame_t * | fw_frame,
|  | vo_frame_t * | bw_frame,
|  | unsigned | pc_type )
| static

References vo_frame_s::driver, XINE_PICT_B_TYPE, XINE_PICT_P_TYPE, xvmc_context_reader_lock(), xvmc_context_reader_unlock(), xxmc_driver_s::xvmc_lock, xxmc_frame_t::xvmc_surf, XXMC_FRAME, and xxmc_xvmc_surface_valid().

Referenced by xxmc_frame_updates().

## ◆ xxmc_mocomp_create_macroblocks()

static int xxmc_mocomp_create_macroblocks | ( | xxmc_driver_t * | driver,
|  | xxmc_frame_t * | frame,
|  | int | slices )
| static

References vo_frame_s::accel_data, xine_macroblock_s::blockbaseptr, xine_macroblock_s::blockptr, xvmc_macroblocks_t::blocks, xxmc_driver_s::context, xxmc_driver_s::display, xvmc_macroblocks_t::macro_blocks, xvmc_macroblocks_t::macroblockbaseptr, xvmc_macroblocks_t::macroblockptr, xine_xvmc_s::macroblocks, xxmc_driver_s::macroblocks, xvmc_macroblocks_t::num_blocks, xvmc_macroblocks_t::slices, xxmc_frame_t::vo_frame, xvmc_macroblocks_t::xine_mc, xine_xxmc_s::xvmc, and xxmc_driver_s::xvmc_width.

Referenced by xxmc_xvmc_update_context().

## ◆ xxmc_open_port()

static int xxmc_open_port | ( | xxmc_driver_t * | this,
|  | XvPortID | port )
| static

References x11_DeInstallXErrorHandler(), x11_InstallXErrorHandler(), and xxmc_check_yv12().

Referenced by open_plugin(), and xxmc_autodetect_port().

## ◆ xxmc_overlay_begin()

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

References _x_clear_xx44_palette(), xxmc_frame_t::format, vo_frame_s::overlay_offset_x, vo_frame_s::overlay_offset_y, x11osd_clear(), XINE_IMGFMT_XXMC, xvmc_context_reader_lock(), xvmc_context_reader_unlock(), xxmc_frame_t::xvmc_surf, XVMCLOCKDISPLAY, XVMCUNLOCKDISPLAY, xxmc_check_xoverlay_type(), xxmc_xvmc_alloc_subpicture(), and xxmc_xvmc_surface_valid().

Referenced by open_plugin().

## ◆ xxmc_overlay_blend()

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

References _x_blend_xx44(), _x_blend_yuv(), _x_blend_yuy2(), vo_frame_s::base, xxmc_frame_t::format, FOURCC_IA44, vo_overlay_s::height, xxmc_frame_t::height, LOCK_AND_SURFACE_VALID, vo_frame_s::pitches, vo_overlay_s::rle, vo_overlay_s::unscaled, xxmc_frame_t::vo_frame, vo_overlay_s::width, xxmc_frame_t::width, vo_overlay_s::x, x11osd_blend(), XINE_IMGFMT_XXMC, XINE_IMGFMT_YV12, xvmc_context_reader_unlock(), xxmc_frame_t::xvmc_surf, XVMCLOCKDISPLAY, XVMCUNLOCKDISPLAY, and vo_overlay_s::y.

Referenced by open_plugin().

## ◆ xxmc_overlay_end()

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

References _x_xx44_to_xvmc_palette(), xxmc_frame_t::format, LOCK_AND_SURFACE_VALID, NULL, x11osd_expose(), XINE_IMGFMT_XXMC, xvmc_context_reader_unlock(), xxmc_frame_t::xvmc_surf, XVMCLOCKDISPLAY, XVMCUNLOCKDISPLAY, and xxmc_xvmc_free_subpicture().

Referenced by open_plugin().

## ◆ xxmc_property_callback()

static void xxmc_property_callback | ( | void * | property_gen,
|  | xine_cfg_entry_t * | entry )
| static

References xine_cfg_entry_s::num_value, xvmc_context_reader_lock(), xvmc_context_reader_unlock(), XVMCLOCKDISPLAY, and XVMCUNLOCKDISPLAY.

Referenced by xxmc_check_capability().

## ◆ xxmc_redraw_needed()

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

References _x_vo_scale_redraw_needed(), XINE_IMGFMT_XXMC, xxmc_clean_output_area(), xxmc_compute_ideal_size(), and xxmc_compute_output_size().

Referenced by open_plugin(), xxmc_display_frame(), and xxmc_gui_data_exchange().

## ◆ xxmc_set_property()

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

References LOG_MODULE, VO_NUM_PROPERTIES, VO_PROP_ASPECT_RATIO, VO_PROP_DISCARD_FRAMES, VO_PROP_INTERLACED, VO_PROP_ZOOM_X, VO_PROP_ZOOM_Y, XINE_VERBOSITY_LOG, XINE_VO_ASPECT_AUTO, XINE_VO_ASPECT_NUM_RATIOS, XINE_VO_ZOOM_MAX, XINE_VO_ZOOM_MIN, XINE_VO_ZOOM_STEP, xprintf, xv_flush_recent_frames(), xvmc_context_reader_lock(), xvmc_context_reader_unlock(), XVMCLOCKDISPLAY, XVMCUNLOCKDISPLAY, and xxmc_compute_ideal_size().

Referenced by open_plugin(), and xxmc_check_capability().

## ◆ xxmc_setup_subpictures()

static void xxmc_setup_subpictures | ( | xxmc_driver_t * | driver,
|  | unsigned | width,
|  | unsigned | height )
| static

References _x_init_xx44_palette(), xxmc_driver_s::context, xxmc_driver_s::contextActive, create_ximage(), xxmc_driver_s::display, xvmc_capabilities_t::flags, height, xxmc_driver_s::hwSubpictures, LOG_MODULE, NULL, xxmc_driver_s::palette, xvmc_capabilities_t::sub_max_height, xvmc_capabilities_t::sub_max_width, xxmc_driver_s::subImage, xvmc_capabilities_t::subPicType, xxmc_driver_s::subShmInfo, width, xxmc_driver_s::xine, XINE_VERBOSITY_LOG, xprintf, xxmc_driver_s::xvmc_backend_subpic, xxmc_driver_s::xvmc_cap, xxmc_driver_s::xvmc_cur_cap, xxmc_driver_s::xvmc_palette, xxmc_xvmc_alloc_subpicture(), and xxmc_xvmc_free_subpicture().

Referenced by xxmc_xvmc_update_context().

## ◆ xxmc_unlock_surfaces()

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

References xvmc_context_reader_unlock(), and xxmc_driver_s::xvmc_lock.

Referenced by xxmc_frame_updates().

## ◆ xxmc_update_attr()

static void xxmc_update_attr | ( | void * | this_gen,
|  | xine_cfg_entry_t * | entry,
|  | const char * | atomstr,
|  | const char * | debugstr )
| static

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

Referenced by xxmc_update_XV_BICUBIC(), xxmc_update_XV_DOUBLE_BUFFER(), and xxmc_update_XV_FILTER().

## ◆ xxmc_update_bob()

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

References xine_cfg_entry_s::num_value.

Referenced by open_plugin().

## ◆ xxmc_update_cpu_save()

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

References xine_cfg_entry_s::num_value.

Referenced by open_plugin().

## ◆ xxmc_update_disable_bob_for_progressive_frames()

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

References xine_cfg_entry_s::num_value.

Referenced by open_plugin().

## ◆ xxmc_update_disable_bob_for_scaled_osd()

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

References xine_cfg_entry_s::num_value.

Referenced by open_plugin().

## ◆ xxmc_update_frame_format()

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

References vo_frame_s::accel_data, xine_xxmc_s::decoded, height, vo_frame_s::proc_duplicate_frame_data, xine_xxmc_s::proc_xxmc_update_frame, width, XINE_IMGFMT_XXMC, xxmc_do_update_frame(), and xxmc_duplicate_frame_data().

Referenced by open_plugin().

## ◆ xxmc_update_nvidia_fix()

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

References xine_cfg_entry_s::num_value.

Referenced by open_plugin().

## ◆ xxmc_update_XV_BICUBIC()

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

References xxmc_update_attr().

Referenced by open_plugin().

## ◆ xxmc_update_XV_DOUBLE_BUFFER()

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

References xxmc_update_attr().

Referenced by open_plugin().

## ◆ xxmc_update_XV_FILTER()

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

References xxmc_update_attr().

Referenced by open_plugin().

## ◆ xxmc_update_xv_pitch_alignment()

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

References xine_cfg_entry_s::num_value.

Referenced by open_plugin().

## ◆ xxmc_xvmc_alloc_subpicture()

static XvMCSubpicture * xxmc_xvmc_alloc_subpicture | ( | xxmc_driver_t * | this,
|  | XvMCContext * | context,
|  | unsigned short | width,
|  | unsigned short | height,
|  | int | xvimage_id )
| static

References height, LOG_MODULE, xvmc_surface_handler_s::mutex, NULL, xvmc_surface_handler_s::subInUse, xvmc_surface_handler_s::subpictures, xvmc_surface_handler_s::subValid, width, XINE_VERBOSITY_DEBUG, xprintf, XVMC_MAX_SUBPICTURES, XVMCLOCKDISPLAY, XVMCUNLOCKDISPLAY, and xxmc_xvmc_dump_subpictures().

Referenced by xxmc_duplicate_frame_data(), xxmc_overlay_begin(), and xxmc_setup_subpictures().

## ◆ xxmc_xvmc_alloc_surface()

static XvMCSurface * xxmc_xvmc_alloc_surface | ( | xxmc_driver_t * | this,
|  | XvMCContext * | context )
| static

References LOG_MODULE, xvmc_surface_handler_s::mutex, NULL, xvmc_surface_handler_s::surfaces, xvmc_surface_handler_s::surfInUse, xvmc_surface_handler_s::surfValid, XINE_VERBOSITY_DEBUG, xprintf, XVMC_MAX_SURFACES, XVMCLOCKDISPLAY, XVMCUNLOCKDISPLAY, and xxmc_xvmc_dump_surfaces().

Referenced by xxmc_frame_updates().

## ◆ xxmc_xvmc_destroy_subpictures()

static void xxmc_xvmc_destroy_subpictures | ( | xxmc_driver_t * | this | ) |
| static

References xvmc_surface_handler_s::mutex, xvmc_surface_handler_s::subpictures, xvmc_surface_handler_s::subValid, XVMC_MAX_SUBPICTURES, XVMCLOCKDISPLAY, and XVMCUNLOCKDISPLAY.

Referenced by xxmc_dispose_context().

## ◆ xxmc_xvmc_destroy_surfaces()

static void xxmc_xvmc_destroy_surfaces | ( | xxmc_driver_t * | this | ) |
| static

References xvmc_surface_handler_s::mutex, xvmc_surface_handler_s::surfaces, xvmc_surface_handler_s::surfValid, XVMC_MAX_SURFACES, XVMCLOCKDISPLAY, and XVMCUNLOCKDISPLAY.

Referenced by xxmc_dispose_context().

## ◆ xxmc_xvmc_dump_subpictures()

static void xxmc_xvmc_dump_subpictures | ( | xxmc_driver_t * | this | ) |
| static

References xvmc_surface_handler_s::subInUse, xvmc_surface_handler_s::subValid, XINE_VERBOSITY_DEBUG, xprintf, and XVMC_MAX_SUBPICTURES.

Referenced by xxmc_xvmc_alloc_subpicture(), and xxmc_xvmc_free_subpicture().

## ◆ xxmc_xvmc_dump_surfaces()

static void xxmc_xvmc_dump_surfaces | ( | xxmc_driver_t * | this | ) |
| static

References xvmc_surface_handler_s::surfInUse, xvmc_surface_handler_s::surfValid, XINE_VERBOSITY_DEBUG, xprintf, and XVMC_MAX_SURFACES.

Referenced by xxmc_xvmc_alloc_surface(), and xxmc_xvmc_free_surface().

## ◆ xxmc_xvmc_free_subpicture()

static void xxmc_xvmc_free_subpicture | ( | xxmc_driver_t * | this,
|  | XvMCSubpicture * | sub )
| static

References LOG_MODULE, xvmc_surface_handler_s::mutex, xvmc_surface_handler_s::subInUse, xvmc_surface_handler_s::subpictures, XINE_VERBOSITY_DEBUG, xprintf, XVMC_MAX_SUBPICTURES, and xxmc_xvmc_dump_subpictures().

Referenced by xxmc_dispose(), xxmc_duplicate_frame_data(), xxmc_overlay_end(), and xxmc_setup_subpictures().

## ◆ xxmc_xvmc_free_surface()

static void xxmc_xvmc_free_surface | ( | xxmc_driver_t * | this,
|  | XvMCSurface * | surf )
| static

References LOG_MODULE, xvmc_surface_handler_s::mutex, xvmc_surface_handler_s::surfaces, xvmc_surface_handler_s::surfInUse, XINE_VERBOSITY_DEBUG, xprintf, XVMC_MAX_SURFACES, and xxmc_xvmc_dump_surfaces().

Referenced by xxmc_frame_dispose(), xxmc_frame_updates(), and xxmc_xvmc_update_context().

## ◆ xxmc_xvmc_surface_handler_construct()

static void xxmc_xvmc_surface_handler_construct | ( | xxmc_driver_t * | this | ) |
| static

References xvmc_surface_handler_s::mutex, NULL, xvmc_surface_handler_s::subInUse, xvmc_surface_handler_s::subValid, xvmc_surface_handler_s::surfInUse, xvmc_surface_handler_s::surfValid, XVMC_MAX_SUBPICTURES, and XVMC_MAX_SURFACES.

Referenced by checkXvMCCap().

## ◆ xxmc_xvmc_surface_valid()

int xxmc_xvmc_surface_valid | ( | xxmc_driver_t * | this,
|  | XvMCSurface * | surf )

References xvmc_surface_handler_s::mutex, xvmc_surface_handler_s::surfaces, xvmc_surface_handler_s::surfValid, and XVMC_MAX_SURFACES.

Referenced by xvmc_flush(), xxmc_display_frame(), xxmc_duplicate_frame_data(), xxmc_frame_updates(), xxmc_gui_data_exchange(), xxmc_lock_and_validate_surfaces(), and xxmc_overlay_begin().

## ◆ xxmc_xvmc_update_context()

static int xxmc_xvmc_update_context | ( | xxmc_driver_t * | driver,
|  | xxmc_frame_t * | frame,
|  | uint32_t | width,
|  | uint32_t | height,
|  | int | frame_format_xxmc )
| static

References xine_xxmc_s::acceleration, xxmc_driver_s::contextActive, height, LOG_MODULE, xine_xxmc_s::mpeg, NULL, width, xxmc_driver_s::xine, XINE_VERBOSITY_LOG, XINE_XVMC_ACCEL_IDCT, XINE_XVMC_ACCEL_MOCOMP, xprintf, xxmc_driver_s::xvmc_accel, xxmc_driver_s::xvmc_cap, xvmc_check_colorkey_properties(), xxmc_driver_s::xvmc_height, xxmc_driver_s::xvmc_mpeg, xxmc_frame_t::xvmc_surf, xxmc_driver_s::xvmc_width, xxmc_create_context(), xxmc_frame_t::xxmc_data, xxmc_dispose_context(), xxmc_find_context(), xxmc_mocomp_create_macroblocks(), xxmc_setup_subpictures(), and xxmc_xvmc_free_surface().

Referenced by xxmc_do_update_frame().

## Variable Documentation

## ◆ accel_priority

const unsigned int accel_priority[]
| static

Initial value:
= {
XINE_XVMC_ACCEL_IDCT,
XINE_XVMC_ACCEL_MOCOMP}
XINE_XVMC_ACCEL_IDCT
#define XINE_XVMC_ACCEL_IDCT
Definition accel_xvmc.h:127
XINE_XVMC_ACCEL_MOCOMP
#define XINE_XVMC_ACCEL_MOCOMP
Definition accel_xvmc.h:126

Referenced by xxmc_accel_update(), and xxmc_find_context().

## ◆ bicubic_types

const char* const bicubic_types[] = { "Off", "On", "Auto", NULL }
| static

Referenced by open_plugin().

## ◆ EXPORTED

const plugin_info_t xine_plugin_info [] EXPORTED

Initial value:
= {
{ PLUGIN_VIDEO_OUT, 22, "xxmc", XINE_VERSION_CODE, &vo_info_xxmc, init_class },
{ PLUGIN_NONE, 0, NULL, 0, NULL, NULL }
}
vo_info_xxmc
static const vo_info_t vo_info_xxmc
Definition video_out_xxmc.c:2880
init_class
static void * init_class(xine_t *xine, const void *visual_gen)
Definition video_out_xxmc.c:2861
XINE_VERSION_CODE
#define XINE_VERSION_CODE
Definition xine_internal.h:57
NULL
NULL
Definition xine_plugin.c:78
PLUGIN_NONE
#define PLUGIN_NONE
Definition xine_plugin.h:29
PLUGIN_VIDEO_OUT
#define PLUGIN_VIDEO_OUT
Definition xine_plugin.h:36

## ◆ gX11Fail

int gX11Fail
| static

Referenced by create_ximage(), and HandleXError().

## ◆ prefer_labels

const char* const prefer_labels[] = { "Any", "Overlay", "Textured Video", "Blitter", NULL }
| static

Referenced by open_plugin().

## ◆ prefer_substrings

const char prefer_substrings[][8] = { "", "Overlay", "Texture", "Blitter" }
| static

Referenced by xxmc_autodetect_port().

## ◆ vo_info_xxmc

const vo_info_t vo_info_xxmc
| static

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