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