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