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