1 2#ifndef _XVMC_H 3#define _XVMC_H 4#include <X11/extensions/Xv.h> 5#include "xvdix.h" 6 7typedef struct { 8 int num_xvimages; 9 int *xvimage_ids; 10} XvMCImageIDList; 11 12typedef struct { 13 int surface_type_id; 14 int chroma_format; 15 int color_description; 16 unsigned short max_width; 17 unsigned short max_height; 18 unsigned short subpicture_max_width; 19 unsigned short subpicture_max_height; 20 int mc_type; 21 int flags; 22 XvMCImageIDList *compatible_subpictures; 23} XvMCSurfaceInfoRec, *XvMCSurfaceInfoPtr; 24 25typedef struct { 26 XID context_id; 27 ScreenPtr pScreen; 28 int adapt_num; 29 int surface_type_id; 30 unsigned short width; 31 unsigned short height; 32 CARD32 flags; 33 int refcnt; 34 pointer port_priv; 35 pointer driver_priv; 36} XvMCContextRec, *XvMCContextPtr; 37 38typedef struct { 39 XID surface_id; 40 int surface_type_id; 41 XvMCContextPtr context; 42 pointer driver_priv; 43} XvMCSurfaceRec, *XvMCSurfacePtr; 44 45 46typedef struct { 47 XID subpicture_id; 48 int xvimage_id; 49 unsigned short width; 50 unsigned short height; 51 int num_palette_entries; 52 int entry_bytes; 53 char component_order[4]; 54 XvMCContextPtr context; 55 pointer driver_priv; 56} XvMCSubpictureRec, *XvMCSubpicturePtr; 57 58typedef int (*XvMCCreateContextProcPtr) ( 59 XvPortPtr port, 60 XvMCContextPtr context, 61 int *num_priv, 62 CARD32 **priv 63); 64 65typedef void (*XvMCDestroyContextProcPtr) ( 66 XvMCContextPtr context 67); 68 69typedef int (*XvMCCreateSurfaceProcPtr) ( 70 XvMCSurfacePtr surface, 71 int *num_priv, 72 CARD32 **priv 73); 74 75typedef void (*XvMCDestroySurfaceProcPtr) ( 76 XvMCSurfacePtr surface 77); 78 79typedef int (*XvMCCreateSubpictureProcPtr) ( 80 XvMCSubpicturePtr subpicture, 81 int *num_priv, 82 CARD32 **priv 83); 84 85typedef void (*XvMCDestroySubpictureProcPtr) ( 86 XvMCSubpicturePtr subpicture 87); 88 89 90typedef struct { 91 XvAdaptorPtr xv_adaptor; 92 int num_surfaces; 93 XvMCSurfaceInfoPtr *surfaces; 94 int num_subpictures; 95 XvImagePtr *subpictures; 96 XvMCCreateContextProcPtr CreateContext; 97 XvMCDestroyContextProcPtr DestroyContext; 98 XvMCCreateSurfaceProcPtr CreateSurface; 99 XvMCDestroySurfaceProcPtr DestroySurface; 100 XvMCCreateSubpictureProcPtr CreateSubpicture; 101 XvMCDestroySubpictureProcPtr DestroySubpicture; 102} XvMCAdaptorRec, *XvMCAdaptorPtr; 103 104#ifndef XorgLoader 105extern _X_EXPORT void XvMCExtensionInit(void); 106 107extern _X_EXPORT int XvMCScreenInit(ScreenPtr pScreen, 108 int num, 109 XvMCAdaptorPtr adapt); 110 111extern _X_EXPORT XvImagePtr XvMCFindXvImage(XvPortPtr pPort, CARD32 id); 112 113extern _X_EXPORT int xf86XvMCRegisterDRInfo(ScreenPtr pScreen, char *name, 114 char *busID, int major, int minor, 115 int patchLevel); 116#endif 117 118#endif /* _XVMC_H */ 119