38 #define XVMC_THREAD_SAFE 60 #if defined (__SVR4) && defined (__sun) 61 # include <sys/int_types.h> 66 #include <sys/types.h> 67 #if defined(__FreeBSD__) 68 #include <machine/param.h> 75 #include <X11/Xutil.h> 76 #include <X11/cursorfont.h> 77 #include <X11/extensions/XShm.h> 78 #include <X11/extensions/Xv.h> 79 #include <X11/extensions/Xvlib.h> 80 #include <X11/extensions/XvMClib.h> 82 #include <X11/extensions/vldXvMC.h> 85 #define LOG_MODULE "video_out_xxmc" 99 #define FOURCC_IA44 0x34344149 100 #define FOURCC_AI44 0x34344941 101 #define XVMC_MAX_SURFACES 16 102 #define XVMC_MAX_SUBPICTURES 4 104 typedef struct xxmc_driver_s xxmc_driver_t;
108 XvMCBlockArray blocks;
110 XvMCMacroBlock *macroblockptr;
111 XvMCMacroBlock *macroblockbaseptr;
112 XvMCMacroBlockArray macro_blocks;
114 } xvmc_macroblocks_t;
135 XShmSegmentInfo shminfo;
139 XvMCSurface *xvmc_surf;
145 unsigned int mpeg_flags;
146 unsigned int accel_flags;
147 unsigned int max_width;
148 unsigned int max_height;
149 unsigned int sub_max_width;
150 unsigned int sub_max_height;
152 XvImageFormatValues subPicType;
154 } xvmc_capabilities_t;
156 typedef struct xvmc_surface_handler_s {
157 XvMCSurface surfaces[XVMC_MAX_SURFACES];
158 int surfInUse[XVMC_MAX_SURFACES];
159 int surfValid[XVMC_MAX_SURFACES];
160 XvMCSubpicture subpictures[XVMC_MAX_SUBPICTURES];
161 int subInUse[XVMC_MAX_SUBPICTURES];
162 int subValid[XVMC_MAX_SUBPICTURES];
163 pthread_mutex_t mutex;
164 } xvmc_surface_handler_t;
166 typedef struct context_lock_s {
167 pthread_mutex_t mutex;
172 #define LOCK_AND_SURFACE_VALID(driver, surface) \ 173 xvmc_context_reader_lock( &(driver)->xvmc_lock ); \ 174 if (!xxmc_xvmc_surface_valid((driver),(surface))) { \ 175 xvmc_context_reader_unlock( &(driver)->xvmc_lock ); \ 179 #if defined(XVMC_THREAD_SAFE) && defined(XVMC_LOCKDISPLAY_SAFE) 180 #define XVMCLOCKDISPLAY(display) 181 #define XVMCUNLOCKDISPLAY(display) 183 #define XVMCLOCKDISPLAY(display) XLockDisplay(display) 184 #define XVMCUNLOCKDISPLAY(display) XUnlockDisplay(display) 187 struct xxmc_driver_s {
196 unsigned int xv_format_yv12;
197 unsigned int xv_format_yuy2;
204 int use_pitch_alignment;
206 uint32_t capabilities;
208 xxmc_frame_t *cur_frame;
211 int disable_bob_for_progressive_frames;
212 int disable_bob_for_scaled_osd;
213 int scaled_osd_active;
215 int xv_xoverlay_type;
221 int deinterlace_enabled;
224 int (*x11_old_error_handler) (Display *, XErrorEvent *);
228 xvmc_macroblocks_t macroblocks;
229 xvmc_capabilities_t *xvmc_cap;
230 unsigned xvmc_num_cap;
231 unsigned int xvmc_max_subpic_x;
232 unsigned int xvmc_max_subpic_y;
236 XvMCSubpicture *old_subpic,*new_subpic;
240 int cpu_save_enabled;
241 int reverse_nvidia_palette;
248 unsigned xvmc_cur_cap;
249 int xvmc_backend_subpic;
252 xvmc_surface_handler_t xvmc_surf_handler;
255 unsigned last_accel_request;
257 unsigned xvmc_height;
258 int have_xvmc_autopaint;
259 int xvmc_xoverlay_type;
268 XShmSegmentInfo subShmInfo;
274 context_lock_t xvmc_lock;
290 extern void xvmc_vld_slice(
vo_frame_t *this_gen);
291 extern void xvmc_vld_frame(
struct vo_frame_s *this_gen);
294 int (*mv_field_sel)[2],
int *dmvector,
299 int picture_structure,
300 int second_field,
int (*f_mot_pmv)[2],
301 int (*b_mot_pmv)[2]);
unsigned int height
Definition: gfontrle.c:5
Definition: alphablend.h:30
Definition: accel_xvmc.h:81
Definition: configfile.h:83
#define VO_NUM_PROPERTIES
Definition: video_out.h:276
Definition: video_out.h:50
void xvmc_context_reader_unlock(context_lock_t *c)
Definition: video_out_xxmc.c:99
Definition: video_out.h:60
#define VO_NUM_RECENT_FRAMES
Definition: video_out.h:289
unsigned int width
Definition: gfontrle.c:4
void xvmc_context_reader_lock(context_lock_t *c)
Definition: video_out_xxmc.c:90
Definition: alphablend.h:53
Definition: xine_internal.h:81
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])
Definition: xvmc_mocomp.c:99
Definition: accel_xvmc.h:38
Definition: configfile.h:46
int xxmc_xvmc_surface_valid(xxmc_driver_t *this, XvMCSurface *surf)
Definition: video_out_xxmc.c:266
Definition: video_out.h:430
Definition: vo_scale.h:39