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