You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
2.9 KiB
C
99 lines
2.9 KiB
C
|
|
#ifndef _XVMC_H
|
|
#define _XVMC_H
|
|
#include <X11/extensions/Xv.h>
|
|
#include "xvdix.h"
|
|
|
|
typedef struct {
|
|
int num_xvimages;
|
|
int *xvimage_ids;
|
|
} XvMCImageIDList;
|
|
|
|
typedef struct {
|
|
int surface_type_id;
|
|
int chroma_format;
|
|
int color_description;
|
|
unsigned short max_width;
|
|
unsigned short max_height;
|
|
unsigned short subpicture_max_width;
|
|
unsigned short subpicture_max_height;
|
|
int mc_type;
|
|
int flags;
|
|
XvMCImageIDList *compatible_subpictures;
|
|
} XvMCSurfaceInfoRec, *XvMCSurfaceInfoPtr;
|
|
|
|
typedef struct {
|
|
XID context_id;
|
|
ScreenPtr pScreen;
|
|
int adapt_num;
|
|
int surface_type_id;
|
|
unsigned short width;
|
|
unsigned short height;
|
|
CARD32 flags;
|
|
int refcnt;
|
|
void *port_priv;
|
|
void *driver_priv;
|
|
} XvMCContextRec, *XvMCContextPtr;
|
|
|
|
typedef struct {
|
|
XID surface_id;
|
|
int surface_type_id;
|
|
XvMCContextPtr context;
|
|
void *driver_priv;
|
|
} XvMCSurfaceRec, *XvMCSurfacePtr;
|
|
|
|
typedef struct {
|
|
XID subpicture_id;
|
|
int xvimage_id;
|
|
unsigned short width;
|
|
unsigned short height;
|
|
int num_palette_entries;
|
|
int entry_bytes;
|
|
char component_order[4];
|
|
XvMCContextPtr context;
|
|
void *driver_priv;
|
|
} XvMCSubpictureRec, *XvMCSubpicturePtr;
|
|
|
|
typedef int (*XvMCCreateContextProcPtr) (XvPortPtr port,
|
|
XvMCContextPtr context,
|
|
int *num_priv, CARD32 **priv);
|
|
|
|
typedef void (*XvMCDestroyContextProcPtr) (XvMCContextPtr context);
|
|
|
|
typedef int (*XvMCCreateSurfaceProcPtr) (XvMCSurfacePtr surface,
|
|
int *num_priv, CARD32 **priv);
|
|
|
|
typedef void (*XvMCDestroySurfaceProcPtr) (XvMCSurfacePtr surface);
|
|
|
|
typedef int (*XvMCCreateSubpictureProcPtr) (XvMCSubpicturePtr subpicture,
|
|
int *num_priv, CARD32 **priv);
|
|
|
|
typedef void (*XvMCDestroySubpictureProcPtr) (XvMCSubpicturePtr subpicture);
|
|
|
|
typedef struct {
|
|
XvAdaptorPtr xv_adaptor;
|
|
int num_surfaces;
|
|
XvMCSurfaceInfoPtr *surfaces;
|
|
int num_subpictures;
|
|
XvImagePtr *subpictures;
|
|
XvMCCreateContextProcPtr CreateContext;
|
|
XvMCDestroyContextProcPtr DestroyContext;
|
|
XvMCCreateSurfaceProcPtr CreateSurface;
|
|
XvMCDestroySurfaceProcPtr DestroySurface;
|
|
XvMCCreateSubpictureProcPtr CreateSubpicture;
|
|
XvMCDestroySubpictureProcPtr DestroySubpicture;
|
|
} XvMCAdaptorRec, *XvMCAdaptorPtr;
|
|
|
|
extern int (*XvMCScreenInitProc)(ScreenPtr, int, XvMCAdaptorPtr);
|
|
|
|
extern _X_EXPORT int XvMCScreenInit(ScreenPtr pScreen,
|
|
int num, XvMCAdaptorPtr adapt);
|
|
|
|
extern _X_EXPORT XvImagePtr XvMCFindXvImage(XvPortPtr pPort, CARD32 id);
|
|
|
|
extern _X_EXPORT int xf86XvMCRegisterDRInfo(ScreenPtr pScreen, const char *name,
|
|
const char *busID, int major, int minor,
|
|
int patchLevel);
|
|
|
|
#endif /* _XVMC_H */
|