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