Edit

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

Branch :

  • Show log

    Commit

  • Author : matthieu
    Date : 2006-11-26 18:13:41
    Hash : 889b8606
    Message : Importing xserver from X.Org 7.2RC2

  • 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;
      pointer port_priv;
      pointer driver_priv;
    } XvMCContextRec, *XvMCContextPtr;
    
    typedef struct {
      XID surface_id;
      int surface_type_id;
      XvMCContextPtr context;
      pointer 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;
      pointer 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;
    
    void XvMCExtensionInit(void);
    
    int XvMCScreenInit(ScreenPtr pScreen, int num, XvMCAdaptorPtr adapt);
    
    XvImagePtr XvMCFindXvImage(XvPortPtr pPort, CARD32 id);
    
    int xf86XvMCRegisterDRInfo(ScreenPtr pScreen, char *name,
    			   char *busID, int major, int minor, 
    			   int patchLevel);
    
    
    #endif /* _XVMC_H */