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 */
 |