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