Edit

IABSD.fr/xenocara/xserver/Xext/xvmcext.h

Branch :

  • Show log

    Commit

  • Author : matthieu
    Date : 2014-09-27 17:52:59
    Hash : 4f58590a
    Message : Update to xserver 1.16.1. Tested by naddy@, jsg@ & kettenis@

  • xserver/Xext/xvmcext.h
  • #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 */