diff src/video/Xext/extensions/Xvlib.h @ 292:eadc0746dfaf

Added SDL_LockRect() and SDL_UnlockRect() Incorporated XFree86 extension libraries into the source
author Sam Lantinga <slouken@libsdl.org>
date Tue, 05 Mar 2002 19:55:32 +0000
parents
children 585a7e1285ae
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/video/Xext/extensions/Xvlib.h	Tue Mar 05 19:55:32 2002 +0000
@@ -0,0 +1,433 @@
+/***********************************************************
+Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts,
+and the Massachusetts Institute of Technology, Cambridge, Massachusetts.
+
+                        All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its 
+documentation for any purpose and without fee is hereby granted, 
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in 
+supporting documentation, and that the names of Digital or MIT not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.  
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+SOFTWARE.
+
+******************************************************************/
+/* $XFree86: xc/include/extensions/Xvlib.h,v 1.3 1999/12/11 19:28:48 mvojkovi Exp $ */
+
+#ifndef XVLIB_H
+#define XVLIB_H
+/*
+** File: 
+**
+**   Xvlib.h --- Xv library public header file
+**
+** Author: 
+**
+**   David Carver (Digital Workstation Engineering/Project Athena)
+**
+** Revisions:
+**
+**   26.06.91 Carver
+**     - changed XvFreeAdaptors to XvFreeAdaptorInfo
+**     - changed XvFreeEncodings to XvFreeEncodingInfo
+**
+**   11.06.91 Carver
+**     - changed SetPortControl to SetPortAttribute
+**     - changed GetPortControl to GetPortAttribute
+**     - changed QueryBestSize
+**
+**   05.15.91 Carver
+**     - version 2.0 upgrade
+**
+**   01.24.91 Carver
+**     - version 1.4 upgrade
+**
+*/
+
+#include <X11/Xfuncproto.h>
+#include <XFree86/extensions/Xv.h>
+#include "SDLname.h"
+
+typedef struct {
+  int numerator;
+  int denominator;
+} SDL_NAME(XvRational);
+
+typedef struct {
+  int flags;	/* XvGettable, XvSettable */
+  int min_value;
+  int max_value;
+  char *name;
+} SDL_NAME(XvAttribute);
+
+typedef struct {
+  XvEncodingID encoding_id;
+  char *name;
+  unsigned long width;
+  unsigned long height;
+  SDL_NAME(XvRational) rate;
+  unsigned long num_encodings;
+} SDL_NAME(XvEncodingInfo);
+
+typedef struct {
+  char depth;
+  unsigned long visual_id;
+} SDL_NAME(XvFormat);
+
+typedef struct {
+  XvPortID base_id;
+  unsigned long num_ports;
+  char type;
+  char *name;
+  unsigned long num_formats;
+  SDL_NAME(XvFormat) *formats;
+  unsigned long num_adaptors;
+} SDL_NAME(XvAdaptorInfo);
+
+typedef struct {
+  int type;
+  unsigned long serial;	   /* # of last request processed by server */
+  Bool send_event;	   /* true if this came from a SendEvent request */
+  Display *display;	   /* Display the event was read from */
+  Drawable drawable;       /* drawable */
+  unsigned long reason;    /* what generated this event */
+  XvPortID port_id;        /* what port */
+  Time time;		   /* milliseconds */
+} SDL_NAME(XvVideoNotifyEvent);
+
+typedef struct {
+  int type;
+  unsigned long serial;	   /* # of last request processed by server */
+  Bool send_event;	   /* true if this came from a SendEvent request */
+  Display *display;	   /* Display the event was read from */
+  XvPortID port_id;        /* what port */
+  Time time;		   /* milliseconds */
+  Atom attribute;           /* atom that identifies attribute */
+  long value;              /* value of attribute */
+} SDL_NAME(XvPortNotifyEvent);
+
+typedef union {
+  int type;
+  SDL_NAME(XvVideoNotifyEvent) xvvideo;
+  SDL_NAME(XvPortNotifyEvent) xvport;
+  long pad[24];
+} SDL_NAME(XvEvent);
+
+typedef struct {
+  int id;                      /* Unique descriptor for the format */
+  int type;                    /* XvRGB, XvYUV */
+  int byte_order;              /* LSBFirst, MSBFirst */
+  char guid[16];               /* Globally Unique IDentifier */
+  int bits_per_pixel;
+  int format;                  /* XvPacked, XvPlanar */
+  int num_planes;
+
+  /* for RGB formats only */
+  int depth;
+  unsigned int red_mask;       
+  unsigned int green_mask;   
+  unsigned int blue_mask;   
+
+  /* for YUV formats only */
+  unsigned int y_sample_bits;
+  unsigned int u_sample_bits;
+  unsigned int v_sample_bits;   
+  unsigned int horz_y_period;
+  unsigned int horz_u_period;
+  unsigned int horz_v_period;
+  unsigned int vert_y_period;
+  unsigned int vert_u_period;
+  unsigned int vert_v_period;
+  char component_order[32];    /* eg. UYVY */
+  int scanline_order;          /* XvTopToBottom, XvBottomToTop */
+} SDL_NAME(XvImageFormatValues); 
+
+typedef struct {
+  int id;
+  int width, height;
+  int data_size;              /* bytes */
+  int num_planes;
+  int *pitches;               /* bytes */
+  int *offsets;               /* bytes */
+  char *data;
+  XPointer obdata;     
+} SDL_NAME(XvImage);
+
+_XFUNCPROTOBEGIN
+
+extern int SDL_NAME(XvQueryExtension)(
+#if NeedFunctionPrototypes
+  Display*                 /* display */,
+  unsigned int*            /* p_version */,
+  unsigned int*            /* p_revision */,
+  unsigned int*            /* p_requestBase */,
+  unsigned int*            /* p_eventBase */, 
+  unsigned int*            /* p_errorBase */
+#endif
+);
+
+extern int SDL_NAME(XvQueryAdaptors)(
+#if NeedFunctionPrototypes
+  Display*                 /* display */,
+  Window                   /* window */,
+  unsigned int*            /* p_nAdaptors */,
+  SDL_NAME(XvAdaptorInfo)**          /* p_pAdaptors */
+#endif
+);
+
+extern int SDL_NAME(XvQueryEncodings)(
+#if NeedFunctionPrototypes
+  Display*                 /* display */,
+  XvPortID                 /* port */,
+  unsigned int*            /* p_nEncoding */,
+  SDL_NAME(XvEncodingInfo)**         /* p_pEncoding */
+#endif
+);
+
+extern int SDL_NAME(XvPutVideo)(
+#if NeedFunctionPrototypes
+  Display*                 /* display */,
+  XvPortID                 /* port */,
+  Drawable                 /* d */,
+  GC                       /* gc */,
+  int                      /* vx */, 
+  int                      /* vy */,
+  unsigned int             /* vw */, 
+  unsigned int             /* vh */,
+  int                      /* dx */, 
+  int                      /* dy */,
+  unsigned int             /* dw */,
+  unsigned int             /* dh */
+#endif
+);
+
+extern int SDL_NAME(XvPutStill)(
+#if NeedFunctionPrototypes
+  Display*                 /* display */,
+  XvPortID                 /* port */,
+  Drawable                 /* d */,
+  GC                       /* gc */,
+  int                      /* vx */, 
+  int                      /* vy */,
+  unsigned int             /* vw */, 
+  unsigned int             /* vh */,
+  int                      /* dx */, 
+  int                      /* dy */,
+  unsigned int             /* dw */,
+  unsigned int             /* dh */
+#endif
+);
+
+extern int SDL_NAME(XvGetVideo)(
+#if NeedFunctionPrototypes
+  Display*                 /* display */,
+  XvPortID                 /* port */,
+  Drawable                 /* d */,
+  GC                       /* gc */,
+  int                      /* vx */, 
+  int                      /* vy */,
+  unsigned int             /* vw */, 
+  unsigned int             /* vh */,
+  int                      /* dx */, 
+  int                      /* dy */,
+  unsigned int             /* dw */,
+  unsigned int             /* dh */
+#endif
+);
+
+extern int SDL_NAME(XvGetStill)(
+#if NeedFunctionPrototypes
+  Display*                 /* display */,
+  XvPortID                 /* port */,
+  Drawable                 /* d */,
+  GC                       /* gc */,
+  int                      /* vx */, 
+  int                      /* vy */,
+  unsigned int             /* vw */, 
+  unsigned int             /* vh */,
+  int                      /* dx */, 
+  int                      /* dy */,
+  unsigned int             /* dw */,
+  unsigned int             /* dh */
+#endif
+);
+
+extern int SDL_NAME(XvStopVideo)(
+#if NeedFunctionPrototypes
+  Display*                /* display */,
+  XvPortID                /* port */,
+  Drawable                /* drawable */
+#endif
+);
+
+extern int SDL_NAME(XvGrabPort)(
+#if NeedFunctionPrototypes
+  Display*                /* display */,
+  XvPortID                /* port */,
+  Time                    /* time */
+#endif
+);
+
+extern int SDL_NAME(XvUngrabPort)(
+#if NeedFunctionPrototypes
+  Display*                /* display */,
+  XvPortID                /* port */,
+  Time                    /* time */
+#endif
+);
+
+extern int SDL_NAME(XvSelectVideoNotify)(
+#if NeedFunctionPrototypes
+  Display*                /* display */,
+  Drawable                /* drawable */,
+  Bool                    /* onoff */
+#endif
+);
+
+extern int SDL_NAME(XvSelectPortNotify)(
+#if NeedFunctionPrototypes
+  Display*                /* display */,
+  XvPortID                /* port */,
+  Bool                    /* onoff */
+#endif
+);
+
+extern int SDL_NAME(XvSetPortAttribute)(
+#if NeedFunctionPrototypes
+  Display*                /* display */,
+  XvPortID                /* port */,
+  Atom                    /* attribute */,
+  int                     /* value */
+#endif
+);
+
+extern int SDL_NAME(XvGetPortAttribute)(
+#if NeedFunctionPrototypes
+  Display*                /* display */,
+  XvPortID                /* port */,
+  Atom                    /* attribute */,
+  int*                    /* p_value */
+#endif
+);
+
+extern int SDL_NAME(XvQueryBestSize)(
+#if NeedFunctionPrototypes
+  Display*                /* display */,
+  XvPortID                /* port */,
+  Bool                    /* motion */,
+  unsigned int            /* vid_w */, 
+  unsigned int            /* vid_h */,
+  unsigned int            /* drw_w */, 
+  unsigned int            /* drw_h */,
+  unsigned int*           /* p_actual_width */, 
+  unsigned int*           /* p_actual_width */
+#endif
+);
+
+extern SDL_NAME(XvAttribute)* SDL_NAME(XvQueryPortAttributes)(
+#if NeedFunctionPrototypes
+  Display*                /* display */,
+  XvPortID                /* port */,
+  int*                    /* number */
+#endif
+);
+
+
+extern void SDL_NAME(XvFreeAdaptorInfo)(
+#if NeedFunctionPrototypes
+  SDL_NAME(XvAdaptorInfo)*          /* adaptors */
+#endif
+);
+
+extern void SDL_NAME(XvFreeEncodingInfo)(
+#if NeedFunctionPrototypes
+  SDL_NAME(XvEncodingInfo)*         /* encodings */
+#endif
+);
+
+
+extern SDL_NAME(XvImageFormatValues) * SDL_NAME(XvListImageFormats) (
+#if NeedFunctionPrototypes
+   Display 	*display,
+   XvPortID 	port_id,
+   int 		*count_return
+#endif
+);
+
+extern SDL_NAME(XvImage) * SDL_NAME(XvCreateImage) (
+#if NeedFunctionPrototypes
+   Display *display,
+   XvPortID port,
+   int id,
+   char *data,
+   int width, 
+   int height 
+#endif
+);
+
+extern int SDL_NAME(XvPutImage) (
+#if NeedFunctionPrototypes
+  Display *display,
+   XvPortID id,
+   Drawable d,
+   GC gc,
+   SDL_NAME(XvImage) *image,
+   int src_x,
+   int src_y,
+   unsigned int src_w,
+   unsigned int src_h,
+   int dest_x, 
+   int dest_y,
+   unsigned int dest_w,
+   unsigned int dest_h
+#endif
+);
+
+extern int SDL_NAME(XvShmPutImage) (
+#if NeedFunctionPrototypes
+   Display *display,
+   XvPortID id,
+   Drawable d,
+   GC gc,
+   SDL_NAME(XvImage) *image,
+   int src_x,
+   int src_y,
+   unsigned int src_w,
+   unsigned int src_h,
+   int dest_x, 
+   int dest_y,
+   unsigned int dest_w,
+   unsigned int dest_h,
+   Bool send_event
+#endif
+);
+
+#ifdef _XSHM_H_
+
+extern SDL_NAME(XvImage) * SDL_NAME(XvShmCreateImage) (
+#if NeedFunctionPrototypes
+   Display *display,
+   XvPortID port,
+   int id,
+   char* data,
+   int width, 
+   int height,
+   XShmSegmentInfo *shminfo
+#endif
+);
+
+#endif
+
+
+_XFUNCPROTOEND
+
+#endif /* XVLIB_H */