xine-lib 1.2.13-20230125hg15249
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <math.h>
#include <stdint.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/time.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/cursorfont.h>
#include <X11/extensions/XShm.h>
#include <X11/extensions/Xv.h>
#include <X11/extensions/Xvlib.h>
#include <X11/extensions/XvMClib.h>
#include "xine.h"
#include <xine/video_out.h>
#include <xine/xine_internal.h>
#include <xine/xineutils.h>
#include <xine/vo_scale.h>
#include "x11osd.h"
#include "accel_xvmc.h"
Go to the source code of this file.
Data Structures | |
struct | xvmc_macroblocks_t |
struct | xxmc_property_t |
struct | xxmc_frame_t |
struct | xvmc_capabilities_t |
struct | xvmc_surface_handler_s |
struct | context_lock_s |
struct | xxmc_driver_s |
struct | xxmc_class_t |
Macros | |
#define | XVMC_THREAD_SAFE |
#define | LOG_MODULE "video_out_xxmc" |
#define | LOG_VERBOSE |
#define | FOURCC_IA44 0x34344149 |
#define | FOURCC_AI44 0x34344941 |
#define | XVMC_MAX_SURFACES 16 |
#define | XVMC_MAX_SUBPICTURES 4 |
#define | LOCK_AND_SURFACE_VALID(driver, surface) |
#define | XVMCLOCKDISPLAY(display) XLockDisplay(display) |
#define | XVMCUNLOCKDISPLAY(display) XUnlockDisplay(display) |
Typedefs | |
typedef struct xxmc_driver_s | xxmc_driver_t |
typedef struct xvmc_surface_handler_s | xvmc_surface_handler_t |
typedef struct context_lock_s | context_lock_t |
Functions | |
void | xvmc_context_reader_unlock (context_lock_t *c) |
void | xvmc_context_reader_lock (context_lock_t *c) |
int | xxmc_xvmc_surface_valid (xxmc_driver_t *this, XvMCSurface *surf) |
void | xvmc_vld_slice (vo_frame_t *this_gen) |
void | xvmc_vld_frame (struct vo_frame_s *this_gen) |
void | xxmc_xvmc_proc_macro_block (int x, int y, int mb_type, int motion_type, int(*mv_field_sel)[2], int *dmvector, int cbp, int dct_type, vo_frame_t *current_frame, vo_frame_t *forward_ref_frame, vo_frame_t *backward_ref_frame, int picture_structure, int second_field, int(*f_mot_pmv)[2], int(*b_mot_pmv)[2]) |
#define FOURCC_AI44 0x34344941 |
Referenced by checkXvMCCap(), and create_ximage().
#define FOURCC_IA44 0x34344149 |
Referenced by checkXvMCCap(), create_ximage(), and xxmc_overlay_blend().
#define LOCK_AND_SURFACE_VALID | ( | driver, | |
surface ) |
Referenced by xxmc_display_frame(), xxmc_overlay_blend(), and xxmc_overlay_end().
#define LOG_MODULE "video_out_xxmc" |
#define LOG_VERBOSE |
#define XVMC_MAX_SUBPICTURES 4 |
#define XVMC_MAX_SURFACES 16 |
#define XVMC_THREAD_SAFE |
#define XVMCLOCKDISPLAY | ( | display | ) | XLockDisplay(display) |
Referenced by checkXvMCCap(), xvmc_check_colorkey_properties(), xvmc_flush(), xvmc_render_macro_blocks(), xxmc_create_context(), xxmc_display_frame(), xxmc_dispose_context(), xxmc_duplicate_frame_data(), xxmc_gui_data_exchange(), xxmc_overlay_begin(), xxmc_overlay_blend(), xxmc_overlay_end(), xxmc_property_callback(), xxmc_set_property(), xxmc_xvmc_alloc_subpicture(), xxmc_xvmc_alloc_surface(), xxmc_xvmc_destroy_subpictures(), and xxmc_xvmc_destroy_surfaces().
#define XVMCUNLOCKDISPLAY | ( | display | ) | XUnlockDisplay(display) |
Referenced by checkXvMCCap(), xvmc_check_colorkey_properties(), xvmc_flush(), xvmc_render_macro_blocks(), xxmc_create_context(), xxmc_display_frame(), xxmc_dispose_context(), xxmc_duplicate_frame_data(), xxmc_gui_data_exchange(), xxmc_overlay_begin(), xxmc_overlay_blend(), xxmc_overlay_end(), xxmc_property_callback(), xxmc_set_property(), xxmc_xvmc_alloc_subpicture(), xxmc_xvmc_alloc_surface(), xxmc_xvmc_destroy_subpictures(), and xxmc_xvmc_destroy_surfaces().
typedef struct context_lock_s context_lock_t |
typedef struct xvmc_surface_handler_s xvmc_surface_handler_t |
typedef struct xxmc_driver_s xxmc_driver_t |
|
extern |
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().
|
extern |
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().
|
extern |
Referenced by xxmc_frame_updates().
|
extern |
Referenced by xxmc_frame_updates().
|
extern |
References xine_macroblock_s::blockbaseptr, xine_macroblock_s::blockptr, calc_DMV(), vo_frame_s::driver, xvmc_macroblocks_t::macroblockbaseptr, xvmc_macroblocks_t::macroblockptr, NULL, xvmc_macroblocks_t::num_blocks, vo_frame_s::picture_coding_type, xvmc_macroblocks_t::slices, vo_frame_s::top_field_first, VO_BOTH_FIELDS, XINE_MACROBLOCK_INTRA, XINE_MACROBLOCK_MOTION_BACKWARD, XINE_MACROBLOCK_MOTION_FORWARD, XINE_MACROBLOCK_PATTERN, xvmc_macroblocks_t::xine_mc, XINE_MC_16X8, XINE_MC_DMV, XINE_MC_FIELD, XINE_MC_FRAME, XINE_PICT_B_TYPE, XINE_PICT_D_TYPE, XINE_PICT_I_TYPE, XINE_PICT_P_TYPE, and xvmc_render_macro_blocks().
Referenced by xxmc_frame_updates().
|
extern |
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().