95 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			2.7 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 _X_EXPORT int XvMCScreenInit(ScreenPtr pScreen,
 | |
|                                     int num, XvMCAdaptorPtr adapt);
 | |
| 
 | |
| extern _X_EXPORT int xf86XvMCRegisterDRInfo(ScreenPtr pScreen, const char *name,
 | |
|                                             const char *busID, int major, int minor,
 | |
|                                             int patchLevel);
 | |
| 
 | |
| #endif                          /* _XVMC_H */
 |