1706f2543Smrg 2706f2543Smrg#ifndef _XVMC_H 3706f2543Smrg#define _XVMC_H 4706f2543Smrg#include <X11/extensions/Xv.h> 5706f2543Smrg#include "xvdix.h" 6706f2543Smrg 7706f2543Smrgtypedef struct { 8706f2543Smrg int num_xvimages; 9706f2543Smrg int *xvimage_ids; 10706f2543Smrg} XvMCImageIDList; 11706f2543Smrg 12706f2543Smrgtypedef struct { 13706f2543Smrg int surface_type_id; 14706f2543Smrg int chroma_format; 15706f2543Smrg int color_description; 16706f2543Smrg unsigned short max_width; 17706f2543Smrg unsigned short max_height; 18706f2543Smrg unsigned short subpicture_max_width; 19706f2543Smrg unsigned short subpicture_max_height; 20706f2543Smrg int mc_type; 21706f2543Smrg int flags; 22706f2543Smrg XvMCImageIDList *compatible_subpictures; 23706f2543Smrg} XvMCSurfaceInfoRec, *XvMCSurfaceInfoPtr; 24706f2543Smrg 25706f2543Smrgtypedef struct { 26706f2543Smrg XID context_id; 27706f2543Smrg ScreenPtr pScreen; 28706f2543Smrg int adapt_num; 29706f2543Smrg int surface_type_id; 30706f2543Smrg unsigned short width; 31706f2543Smrg unsigned short height; 32706f2543Smrg CARD32 flags; 33706f2543Smrg int refcnt; 34706f2543Smrg pointer port_priv; 35706f2543Smrg pointer driver_priv; 36706f2543Smrg} XvMCContextRec, *XvMCContextPtr; 37706f2543Smrg 38706f2543Smrgtypedef struct { 39706f2543Smrg XID surface_id; 40706f2543Smrg int surface_type_id; 41706f2543Smrg XvMCContextPtr context; 42706f2543Smrg pointer driver_priv; 43706f2543Smrg} XvMCSurfaceRec, *XvMCSurfacePtr; 44706f2543Smrg 45706f2543Smrg 46706f2543Smrgtypedef struct { 47706f2543Smrg XID subpicture_id; 48706f2543Smrg int xvimage_id; 49706f2543Smrg unsigned short width; 50706f2543Smrg unsigned short height; 51706f2543Smrg int num_palette_entries; 52706f2543Smrg int entry_bytes; 53706f2543Smrg char component_order[4]; 54706f2543Smrg XvMCContextPtr context; 55706f2543Smrg pointer driver_priv; 56706f2543Smrg} XvMCSubpictureRec, *XvMCSubpicturePtr; 57706f2543Smrg 58706f2543Smrgtypedef int (*XvMCCreateContextProcPtr) ( 59706f2543Smrg XvPortPtr port, 60706f2543Smrg XvMCContextPtr context, 61706f2543Smrg int *num_priv, 62706f2543Smrg CARD32 **priv 63706f2543Smrg); 64706f2543Smrg 65706f2543Smrgtypedef void (*XvMCDestroyContextProcPtr) ( 66706f2543Smrg XvMCContextPtr context 67706f2543Smrg); 68706f2543Smrg 69706f2543Smrgtypedef int (*XvMCCreateSurfaceProcPtr) ( 70706f2543Smrg XvMCSurfacePtr surface, 71706f2543Smrg int *num_priv, 72706f2543Smrg CARD32 **priv 73706f2543Smrg); 74706f2543Smrg 75706f2543Smrgtypedef void (*XvMCDestroySurfaceProcPtr) ( 76706f2543Smrg XvMCSurfacePtr surface 77706f2543Smrg); 78706f2543Smrg 79706f2543Smrgtypedef int (*XvMCCreateSubpictureProcPtr) ( 80706f2543Smrg XvMCSubpicturePtr subpicture, 81706f2543Smrg int *num_priv, 82706f2543Smrg CARD32 **priv 83706f2543Smrg); 84706f2543Smrg 85706f2543Smrgtypedef void (*XvMCDestroySubpictureProcPtr) ( 86706f2543Smrg XvMCSubpicturePtr subpicture 87706f2543Smrg); 88706f2543Smrg 89706f2543Smrg 90706f2543Smrgtypedef struct { 91706f2543Smrg XvAdaptorPtr xv_adaptor; 92706f2543Smrg int num_surfaces; 93706f2543Smrg XvMCSurfaceInfoPtr *surfaces; 94706f2543Smrg int num_subpictures; 95706f2543Smrg XvImagePtr *subpictures; 96706f2543Smrg XvMCCreateContextProcPtr CreateContext; 97706f2543Smrg XvMCDestroyContextProcPtr DestroyContext; 98706f2543Smrg XvMCCreateSurfaceProcPtr CreateSurface; 99706f2543Smrg XvMCDestroySurfaceProcPtr DestroySurface; 100706f2543Smrg XvMCCreateSubpictureProcPtr CreateSubpicture; 101706f2543Smrg XvMCDestroySubpictureProcPtr DestroySubpicture; 102706f2543Smrg} XvMCAdaptorRec, *XvMCAdaptorPtr; 103706f2543Smrg 104706f2543Smrg#ifndef XorgLoader 105706f2543Smrgextern _X_EXPORT void XvMCExtensionInit(void); 106706f2543Smrg 107706f2543Smrgextern _X_EXPORT int XvMCScreenInit(ScreenPtr pScreen, 108706f2543Smrg int num, 109706f2543Smrg XvMCAdaptorPtr adapt); 110706f2543Smrg 111706f2543Smrgextern _X_EXPORT XvImagePtr XvMCFindXvImage(XvPortPtr pPort, CARD32 id); 112706f2543Smrg 113706f2543Smrgextern _X_EXPORT int xf86XvMCRegisterDRInfo(ScreenPtr pScreen, char *name, 114706f2543Smrg char *busID, int major, int minor, 115706f2543Smrg int patchLevel); 116706f2543Smrg#endif 117706f2543Smrg 118706f2543Smrg#endif /* _XVMC_H */ 119