Xvlib.h revision fba89afe
19f606849Smrg/*********************************************************** 29f606849SmrgCopyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts, 39f606849Smrgand the Massachusetts Institute of Technology, Cambridge, Massachusetts. 49f606849Smrg 59f606849Smrg All Rights Reserved 69f606849Smrg 79f606849SmrgPermission to use, copy, modify, and distribute this software and its 89f606849Smrgdocumentation for any purpose and without fee is hereby granted, 99f606849Smrgprovided that the above copyright notice appear in all copies and that 109f606849Smrgboth that copyright notice and this permission notice appear in 119f606849Smrgsupporting documentation, and that the names of Digital or MIT not be 129f606849Smrgused in advertising or publicity pertaining to distribution of the 139f606849Smrgsoftware without specific, written prior permission. 149f606849Smrg 159f606849SmrgDIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING 169f606849SmrgALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL 179f606849SmrgDIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR 189f606849SmrgANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 199f606849SmrgWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, 209f606849SmrgARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 219f606849SmrgSOFTWARE. 229f606849Smrg 239f606849Smrg******************************************************************/ 249f606849Smrg/* $XFree86: xc/include/extensions/Xvlib.h,v 1.3 1999/12/11 19:28:48 mvojkovi Exp $ */ 259f606849Smrg 269f606849Smrg#ifndef XVLIB_H 279f606849Smrg#define XVLIB_H 289f606849Smrg/* 299f606849Smrg** File: 309f606849Smrg** 319f606849Smrg** Xvlib.h --- Xv library public header file 329f606849Smrg** 339f606849Smrg** Author: 349f606849Smrg** 359f606849Smrg** David Carver (Digital Workstation Engineering/Project Athena) 369f606849Smrg** 379f606849Smrg** Revisions: 389f606849Smrg** 399f606849Smrg** 26.06.91 Carver 409f606849Smrg** - changed XvFreeAdaptors to XvFreeAdaptorInfo 419f606849Smrg** - changed XvFreeEncodings to XvFreeEncodingInfo 429f606849Smrg** 439f606849Smrg** 11.06.91 Carver 449f606849Smrg** - changed SetPortControl to SetPortAttribute 459f606849Smrg** - changed GetPortControl to GetPortAttribute 469f606849Smrg** - changed QueryBestSize 479f606849Smrg** 489f606849Smrg** 05.15.91 Carver 499f606849Smrg** - version 2.0 upgrade 509f606849Smrg** 519f606849Smrg** 01.24.91 Carver 529f606849Smrg** - version 1.4 upgrade 539f606849Smrg** 549f606849Smrg*/ 559f606849Smrg 569f606849Smrg#include <X11/Xfuncproto.h> 579f606849Smrg#include <X11/extensions/Xv.h> 58fba89afeSmrg#include <X11/extensions/XShm.h> 599f606849Smrg 609f606849Smrgtypedef struct { 619f606849Smrg int numerator; 629f606849Smrg int denominator; 639f606849Smrg} XvRational; 649f606849Smrg 659f606849Smrgtypedef struct { 669f606849Smrg int flags; /* XvGettable, XvSettable */ 679f606849Smrg int min_value; 689f606849Smrg int max_value; 699f606849Smrg char *name; 709f606849Smrg} XvAttribute; 719f606849Smrg 729f606849Smrgtypedef struct { 739f606849Smrg XvEncodingID encoding_id; 749f606849Smrg char *name; 759f606849Smrg unsigned long width; 769f606849Smrg unsigned long height; 779f606849Smrg XvRational rate; 789f606849Smrg unsigned long num_encodings; 799f606849Smrg} XvEncodingInfo; 809f606849Smrg 819f606849Smrgtypedef struct { 829f606849Smrg char depth; 839f606849Smrg unsigned long visual_id; 849f606849Smrg} XvFormat; 859f606849Smrg 869f606849Smrgtypedef struct { 879f606849Smrg XvPortID base_id; 889f606849Smrg unsigned long num_ports; 899f606849Smrg char type; 909f606849Smrg char *name; 919f606849Smrg unsigned long num_formats; 929f606849Smrg XvFormat *formats; 939f606849Smrg unsigned long num_adaptors; 949f606849Smrg} XvAdaptorInfo; 959f606849Smrg 969f606849Smrgtypedef struct { 979f606849Smrg int type; 989f606849Smrg unsigned long serial; /* # of last request processed by server */ 999f606849Smrg Bool send_event; /* true if this came from a SendEvent request */ 1009f606849Smrg Display *display; /* Display the event was read from */ 1019f606849Smrg Drawable drawable; /* drawable */ 1029f606849Smrg unsigned long reason; /* what generated this event */ 1039f606849Smrg XvPortID port_id; /* what port */ 1049f606849Smrg Time time; /* milliseconds */ 1059f606849Smrg} XvVideoNotifyEvent; 1069f606849Smrg 1079f606849Smrgtypedef struct { 1089f606849Smrg int type; 1099f606849Smrg unsigned long serial; /* # of last request processed by server */ 1109f606849Smrg Bool send_event; /* true if this came from a SendEvent request */ 1119f606849Smrg Display *display; /* Display the event was read from */ 1129f606849Smrg XvPortID port_id; /* what port */ 1139f606849Smrg Time time; /* milliseconds */ 1149f606849Smrg Atom attribute; /* atom that identifies attribute */ 1159f606849Smrg long value; /* value of attribute */ 1169f606849Smrg} XvPortNotifyEvent; 1179f606849Smrg 1189f606849Smrgtypedef union { 1199f606849Smrg int type; 1209f606849Smrg XvVideoNotifyEvent xvvideo; 1219f606849Smrg XvPortNotifyEvent xvport; 1229f606849Smrg long pad[24]; 1239f606849Smrg} XvEvent; 1249f606849Smrg 1259f606849Smrgtypedef struct { 1269f606849Smrg int id; /* Unique descriptor for the format */ 1279f606849Smrg int type; /* XvRGB, XvYUV */ 1289f606849Smrg int byte_order; /* LSBFirst, MSBFirst */ 1299f606849Smrg char guid[16]; /* Globally Unique IDentifier */ 1309f606849Smrg int bits_per_pixel; 1319f606849Smrg int format; /* XvPacked, XvPlanar */ 1329f606849Smrg int num_planes; 1339f606849Smrg 1349f606849Smrg /* for RGB formats only */ 1359f606849Smrg int depth; 1369f606849Smrg unsigned int red_mask; 1379f606849Smrg unsigned int green_mask; 1389f606849Smrg unsigned int blue_mask; 1399f606849Smrg 1409f606849Smrg /* for YUV formats only */ 1419f606849Smrg unsigned int y_sample_bits; 1429f606849Smrg unsigned int u_sample_bits; 1439f606849Smrg unsigned int v_sample_bits; 1449f606849Smrg unsigned int horz_y_period; 1459f606849Smrg unsigned int horz_u_period; 1469f606849Smrg unsigned int horz_v_period; 1479f606849Smrg unsigned int vert_y_period; 1489f606849Smrg unsigned int vert_u_period; 1499f606849Smrg unsigned int vert_v_period; 1509f606849Smrg char component_order[32]; /* eg. UYVY */ 1519f606849Smrg int scanline_order; /* XvTopToBottom, XvBottomToTop */ 1529f606849Smrg} XvImageFormatValues; 1539f606849Smrg 1549f606849Smrgtypedef struct { 1559f606849Smrg int id; 1569f606849Smrg int width, height; 1579f606849Smrg int data_size; /* bytes */ 1589f606849Smrg int num_planes; 1599f606849Smrg int *pitches; /* bytes */ 1609f606849Smrg int *offsets; /* bytes */ 1619f606849Smrg char *data; 1629f606849Smrg XPointer obdata; 1639f606849Smrg} XvImage; 1649f606849Smrg 1659f606849Smrg_XFUNCPROTOBEGIN 1669f606849Smrg 1679f606849Smrgextern int XvQueryExtension( 1689f606849Smrg Display* /* display */, 1699f606849Smrg unsigned int* /* p_version */, 1709f606849Smrg unsigned int* /* p_revision */, 1719f606849Smrg unsigned int* /* p_requestBase */, 1729f606849Smrg unsigned int* /* p_eventBase */, 1739f606849Smrg unsigned int* /* p_errorBase */ 1749f606849Smrg); 1759f606849Smrg 1769f606849Smrgextern int XvQueryAdaptors( 1779f606849Smrg Display* /* display */, 1789f606849Smrg Window /* window */, 1799f606849Smrg unsigned int* /* p_nAdaptors */, 1809f606849Smrg XvAdaptorInfo** /* p_pAdaptors */ 1819f606849Smrg); 1829f606849Smrg 1839f606849Smrgextern int XvQueryEncodings( 1849f606849Smrg Display* /* display */, 1859f606849Smrg XvPortID /* port */, 1869f606849Smrg unsigned int* /* p_nEncoding */, 1879f606849Smrg XvEncodingInfo** /* p_pEncoding */ 1889f606849Smrg); 1899f606849Smrg 1909f606849Smrgextern int XvPutVideo( 1919f606849Smrg Display* /* display */, 1929f606849Smrg XvPortID /* port */, 1939f606849Smrg Drawable /* d */, 1949f606849Smrg GC /* gc */, 1959f606849Smrg int /* vx */, 1969f606849Smrg int /* vy */, 1979f606849Smrg unsigned int /* vw */, 1989f606849Smrg unsigned int /* vh */, 1999f606849Smrg int /* dx */, 2009f606849Smrg int /* dy */, 2019f606849Smrg unsigned int /* dw */, 2029f606849Smrg unsigned int /* dh */ 2039f606849Smrg); 2049f606849Smrg 2059f606849Smrgextern int XvPutStill( 2069f606849Smrg Display* /* display */, 2079f606849Smrg XvPortID /* port */, 2089f606849Smrg Drawable /* d */, 2099f606849Smrg GC /* gc */, 2109f606849Smrg int /* vx */, 2119f606849Smrg int /* vy */, 2129f606849Smrg unsigned int /* vw */, 2139f606849Smrg unsigned int /* vh */, 2149f606849Smrg int /* dx */, 2159f606849Smrg int /* dy */, 2169f606849Smrg unsigned int /* dw */, 2179f606849Smrg unsigned int /* dh */ 2189f606849Smrg); 2199f606849Smrg 2209f606849Smrgextern int XvGetVideo( 2219f606849Smrg Display* /* display */, 2229f606849Smrg XvPortID /* port */, 2239f606849Smrg Drawable /* d */, 2249f606849Smrg GC /* gc */, 2259f606849Smrg int /* vx */, 2269f606849Smrg int /* vy */, 2279f606849Smrg unsigned int /* vw */, 2289f606849Smrg unsigned int /* vh */, 2299f606849Smrg int /* dx */, 2309f606849Smrg int /* dy */, 2319f606849Smrg unsigned int /* dw */, 2329f606849Smrg unsigned int /* dh */ 2339f606849Smrg); 2349f606849Smrg 2359f606849Smrgextern int XvGetStill( 2369f606849Smrg Display* /* display */, 2379f606849Smrg XvPortID /* port */, 2389f606849Smrg Drawable /* d */, 2399f606849Smrg GC /* gc */, 2409f606849Smrg int /* vx */, 2419f606849Smrg int /* vy */, 2429f606849Smrg unsigned int /* vw */, 2439f606849Smrg unsigned int /* vh */, 2449f606849Smrg int /* dx */, 2459f606849Smrg int /* dy */, 2469f606849Smrg unsigned int /* dw */, 2479f606849Smrg unsigned int /* dh */ 2489f606849Smrg); 2499f606849Smrg 2509f606849Smrgextern int XvStopVideo( 2519f606849Smrg Display* /* display */, 2529f606849Smrg XvPortID /* port */, 2539f606849Smrg Drawable /* drawable */ 2549f606849Smrg); 2559f606849Smrg 2569f606849Smrgextern int XvGrabPort( 2579f606849Smrg Display* /* display */, 2589f606849Smrg XvPortID /* port */, 2599f606849Smrg Time /* time */ 2609f606849Smrg); 2619f606849Smrg 2629f606849Smrgextern int XvUngrabPort( 2639f606849Smrg Display* /* display */, 2649f606849Smrg XvPortID /* port */, 2659f606849Smrg Time /* time */ 2669f606849Smrg); 2679f606849Smrg 2689f606849Smrgextern int XvSelectVideoNotify( 2699f606849Smrg Display* /* display */, 2709f606849Smrg Drawable /* drawable */, 2719f606849Smrg Bool /* onoff */ 2729f606849Smrg); 2739f606849Smrg 2749f606849Smrgextern int XvSelectPortNotify( 2759f606849Smrg Display* /* display */, 2769f606849Smrg XvPortID /* port */, 2779f606849Smrg Bool /* onoff */ 2789f606849Smrg); 2799f606849Smrg 2809f606849Smrgextern int XvSetPortAttribute( 2819f606849Smrg Display* /* display */, 2829f606849Smrg XvPortID /* port */, 2839f606849Smrg Atom /* attribute */, 2849f606849Smrg int /* value */ 2859f606849Smrg); 2869f606849Smrg 2879f606849Smrgextern int XvGetPortAttribute( 2889f606849Smrg Display* /* display */, 2899f606849Smrg XvPortID /* port */, 2909f606849Smrg Atom /* attribute */, 2919f606849Smrg int* /* p_value */ 2929f606849Smrg); 2939f606849Smrg 2949f606849Smrgextern int XvQueryBestSize( 2959f606849Smrg Display* /* display */, 2969f606849Smrg XvPortID /* port */, 2979f606849Smrg Bool /* motion */, 2989f606849Smrg unsigned int /* vid_w */, 2999f606849Smrg unsigned int /* vid_h */, 3009f606849Smrg unsigned int /* drw_w */, 3019f606849Smrg unsigned int /* drw_h */, 3029f606849Smrg unsigned int* /* p_actual_width */, 3039f606849Smrg unsigned int* /* p_actual_width */ 3049f606849Smrg); 3059f606849Smrg 3069f606849Smrgextern XvAttribute* XvQueryPortAttributes( 3079f606849Smrg Display* /* display */, 3089f606849Smrg XvPortID /* port */, 3099f606849Smrg int* /* number */ 3109f606849Smrg); 3119f606849Smrg 3129f606849Smrg 3139f606849Smrgextern void XvFreeAdaptorInfo( 3149f606849Smrg XvAdaptorInfo* /* adaptors */ 3159f606849Smrg); 3169f606849Smrg 3179f606849Smrgextern void XvFreeEncodingInfo( 3189f606849Smrg XvEncodingInfo* /* encodings */ 3199f606849Smrg); 3209f606849Smrg 3219f606849Smrg 3229f606849Smrgextern XvImageFormatValues * XvListImageFormats ( 3239f606849Smrg Display *display, 3249f606849Smrg XvPortID port_id, 3259f606849Smrg int *count_return 3269f606849Smrg); 3279f606849Smrg 3289f606849Smrgextern XvImage * XvCreateImage ( 3299f606849Smrg Display *display, 3309f606849Smrg XvPortID port, 3319f606849Smrg int id, 3329f606849Smrg char *data, 3339f606849Smrg int width, 3349f606849Smrg int height 3359f606849Smrg); 3369f606849Smrg 3379f606849Smrgextern int XvPutImage ( 3389f606849Smrg Display *display, 3399f606849Smrg XvPortID id, 3409f606849Smrg Drawable d, 3419f606849Smrg GC gc, 3429f606849Smrg XvImage *image, 3439f606849Smrg int src_x, 3449f606849Smrg int src_y, 3459f606849Smrg unsigned int src_w, 3469f606849Smrg unsigned int src_h, 3479f606849Smrg int dest_x, 3489f606849Smrg int dest_y, 3499f606849Smrg unsigned int dest_w, 3509f606849Smrg unsigned int dest_h 3519f606849Smrg); 3529f606849Smrg 3539f606849Smrgextern int XvShmPutImage ( 3549f606849Smrg Display *display, 3559f606849Smrg XvPortID id, 3569f606849Smrg Drawable d, 3579f606849Smrg GC gc, 3589f606849Smrg XvImage *image, 3599f606849Smrg int src_x, 3609f606849Smrg int src_y, 3619f606849Smrg unsigned int src_w, 3629f606849Smrg unsigned int src_h, 3639f606849Smrg int dest_x, 3649f606849Smrg int dest_y, 3659f606849Smrg unsigned int dest_w, 3669f606849Smrg unsigned int dest_h, 3679f606849Smrg Bool send_event 3689f606849Smrg); 3699f606849Smrg 3709f606849Smrgextern XvImage * XvShmCreateImage ( 3719f606849Smrg Display *display, 3729f606849Smrg XvPortID port, 3739f606849Smrg int id, 3749f606849Smrg char* data, 3759f606849Smrg int width, 3769f606849Smrg int height, 3779f606849Smrg XShmSegmentInfo *shminfo 3789f606849Smrg); 3799f606849Smrg 3809f606849Smrg 3819f606849Smrg_XFUNCPROTOEND 3829f606849Smrg 3839f606849Smrg#endif /* XVLIB_H */ 384