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