#ifndef _XVMC_H #define _XVMC_H #include <X11/extensions/Xv.h> #include "xvdix.h" typedef struct { int num_xvimages; int *xvimage_ids; } XvMCImageIDList; typedef struct { int surface_type_id; int chroma_format; int color_description; unsigned short max_width; unsigned short max_height; unsigned short subpicture_max_width; unsigned short subpicture_max_height; int mc_type; int flags; XvMCImageIDList *compatible_subpictures; } XvMCSurfaceInfoRec, *XvMCSurfaceInfoPtr; typedef struct { XID context_id; ScreenPtr pScreen; int adapt_num; int surface_type_id; unsigned short width; unsigned short height; CARD32 flags; int refcnt; void *port_priv; void *driver_priv; } XvMCContextRec, *XvMCContextPtr; typedef struct { XID surface_id; int surface_type_id; XvMCContextPtr context; void *driver_priv; } XvMCSurfaceRec, *XvMCSurfacePtr; typedef struct { XID subpicture_id; int xvimage_id; unsigned short width; unsigned short height; int num_palette_entries; int entry_bytes; char component_order[4]; XvMCContextPtr context; void *driver_priv; } XvMCSubpictureRec, *XvMCSubpicturePtr; typedef int (*XvMCCreateContextProcPtr) (XvPortPtr port, XvMCContextPtr context, int *num_priv, CARD32 **priv); typedef void (*XvMCDestroyContextProcPtr) (XvMCContextPtr context); typedef int (*XvMCCreateSurfaceProcPtr) (XvMCSurfacePtr surface, int *num_priv, CARD32 **priv); typedef void (*XvMCDestroySurfaceProcPtr) (XvMCSurfacePtr surface); typedef int (*XvMCCreateSubpictureProcPtr) (XvMCSubpicturePtr subpicture, int *num_priv, CARD32 **priv); typedef void (*XvMCDestroySubpictureProcPtr) (XvMCSubpicturePtr subpicture); typedef struct { XvAdaptorPtr xv_adaptor; int num_surfaces; XvMCSurfaceInfoPtr *surfaces; int num_subpictures; XvImagePtr *subpictures; XvMCCreateContextProcPtr CreateContext; XvMCDestroyContextProcPtr DestroyContext; XvMCCreateSurfaceProcPtr CreateSurface; XvMCDestroySurfaceProcPtr DestroySurface; XvMCCreateSubpictureProcPtr CreateSubpicture; XvMCDestroySubpictureProcPtr DestroySubpicture; } XvMCAdaptorRec, *XvMCAdaptorPtr; extern int (*XvMCScreenInitProc)(ScreenPtr, int, XvMCAdaptorPtr); extern _X_EXPORT int XvMCScreenInit(ScreenPtr pScreen, int num, XvMCAdaptorPtr adapt); extern _X_EXPORT XvImagePtr XvMCFindXvImage(XvPortPtr pPort, CARD32 id); extern _X_EXPORT int xf86XvMCRegisterDRInfo(ScreenPtr pScreen, const char *name, const char *busID, int major, int minor, int patchLevel); #endif /* _XVMC_H */