diff options
Diffstat (limited to 'proto')
-rw-r--r-- | proto/videoproto/COPYING | 8 | ||||
-rw-r--r-- | proto/videoproto/ChangeLog | 96 | ||||
-rw-r--r-- | proto/videoproto/INSTALL | 291 | ||||
-rw-r--r-- | proto/videoproto/Xv.h | 12 | ||||
-rw-r--r-- | proto/videoproto/XvMC.h | 10 | ||||
-rw-r--r-- | proto/videoproto/XvMCproto.h | 10 | ||||
-rw-r--r-- | proto/videoproto/Xvproto.h | 26 | ||||
-rw-r--r-- | proto/videoproto/compile | 347 | ||||
-rw-r--r-- | proto/videoproto/configure.ac | 11 | ||||
-rw-r--r-- | proto/videoproto/videoproto.pc.in | 2 | ||||
-rw-r--r-- | proto/videoproto/vldXvMC.h | 34 | ||||
-rw-r--r-- | proto/videoproto/xv-protocol-v2.txt | 216 |
12 files changed, 902 insertions, 161 deletions
diff --git a/proto/videoproto/COPYING b/proto/videoproto/COPYING index cfa79e77f..28dd80b05 100644 --- a/proto/videoproto/COPYING +++ b/proto/videoproto/COPYING @@ -3,13 +3,13 @@ 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, +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 +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. +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 diff --git a/proto/videoproto/ChangeLog b/proto/videoproto/ChangeLog index c9d614e82..ccf461c0c 100644 --- a/proto/videoproto/ChangeLog +++ b/proto/videoproto/ChangeLog @@ -1,3 +1,99 @@ +commit 4d26102ace67377e88ba087e52ca894e0ffd2ebf +Author: Alan Coopersmith <alan.coopersmith@oracle.com> +Date: Mon Jul 22 21:40:14 2013 -0700 + + videoproto 2.3.2 + + Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> + +commit 665f990f72b0518d7ea604affd935c6a2297058a +Author: Alan Coopersmith <alan.coopersmith@oracle.com> +Date: Mon Jul 22 21:36:29 2013 -0700 + + config: Add missing AC_CONFIG_SRCDIR + + Regroup AC statements under the Autoconf initialization section. + Regroup AM statements under the Automake initialization section. + + Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> + +commit 77d5c8d90e81139391a57710095784cde0476b9c +Author: Alan Coopersmith <alan.coopersmith@oracle.com> +Date: Thu Jun 27 22:14:36 2013 -0700 + + Trim trailing whitespace + + Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> + +commit 1a96222d64cde75e20fd9bb7a717cf269c7e9a59 +Author: Alan Coopersmith <alan.coopersmith@oracle.com> +Date: Sun Jun 23 00:34:52 2013 -0700 + + Xvproto.h: fix xvQueryEncodingsReply to match actual wire protocol + + padl3 was declared as CARD32, which for proper alignment, got two + additional bytes of padding silently inserted before it. Declaring + it as CARD16 aligns it properly after the CARD16 num_encodings. + + Fixes clang warning: + Xvproto.h:462:10: warning: padding struct 'struct _QueryEncodingsReply' with 2 bytes to align 'padl3' [-Wpadded] + CARD32 padl3 B32; + ^ + This makes sizeof(xvQueryEncodingsReply) match the sz_xvQueryEncodingsReply + which is used in libXv & the X server for the size sent over the wire. + + Reported-by: Daniel Martin <consume.noise@gmail.com> + Reviewed-by: Julien Cristau <jcristau@debian.org> + Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> + +commit d97051236bba088688681f348086feb733cbdd08 +Author: Julien Cristau <jcristau@debian.org> +Date: Sun Jun 9 19:00:29 2013 +0200 + + Xvproto: fix xvEncodingInfo to match actual wire protocol + + The padding is *before* the rate field, so the rate is placed on a 32bit + boundary. This change adds explicit padding between height and rate, + and removes extraneous padding after the rate field, which the server + never sent and xlib never read. + + This changes sizeof(xvEncodingInfo). Hopefully that's not a big deal as + clients only see the Xlib structure XvEncodingInfo. + + Debian bug#657215 + + Reported-by: Kevin Ryde <user42@zip.com.au> + Signed-off-by: Julien Cristau <jcristau@debian.org> + Reviewed-by: Daniel Martin <consume.noise@gmail.com> + Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> + Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> + +commit e42cf822e230cff5c6550ca2c050dfa27d2c9611 +Author: Colin Walters <walters@verbum.org> +Date: Wed Jan 4 17:37:06 2012 -0500 + + autogen.sh: Implement GNOME Build API + + http://people.gnome.org/~walters/docs/build-api.txt + + Signed-off-by: Adam Jackson <ajax@redhat.com> + +commit fa26f1cc56909b55bb7b2d31c56f66af48cad0af +Author: Adam Jackson <ajax@redhat.com> +Date: Tue Jan 15 14:01:10 2013 -0500 + + configure: Remove AM_MAINTAINER_MODE + + Signed-off-by: Adam Jackson <ajax@redhat.com> + +commit b994209d8559a0d0802487ed53585404b398a707 +Author: Adam Jackson <ajax@redhat.com> +Date: Tue Aug 10 10:17:10 2010 -0400 + + videoproto 2.3.1 + + Signed-off-by: Adam Jackson <ajax@redhat.com> + commit 56a94402e9252879771ba42ee76990f132b56fca Author: Gaetan Nadon <memsize@videotron.ca> Date: Sun Mar 28 19:00:31 2010 -0400 diff --git a/proto/videoproto/INSTALL b/proto/videoproto/INSTALL new file mode 100644 index 000000000..8b82ade08 --- /dev/null +++ b/proto/videoproto/INSTALL @@ -0,0 +1,291 @@ +Installation Instructions +************************* + +Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, +2006, 2007, 2008 Free Software Foundation, Inc. + + This file is free documentation; the Free Software Foundation gives +unlimited permission to copy, distribute and modify it. + +Basic Installation +================== + + Briefly, the shell commands `./configure; make; make install' should +configure, build, and install this package. The following +more-detailed instructions are generic; see the `README' file for +instructions specific to this package. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, and a +file `config.log' containing compiler output (useful mainly for +debugging `configure'). + + It can also use an optional file (typically called `config.cache' +and enabled with `--cache-file=config.cache' or simply `-C') that saves +the results of its tests to speed up reconfiguring. Caching is +disabled by default to prevent problems with accidental use of stale +cache files. + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If you are using the cache, and at +some point `config.cache' contains results you don't want to keep, you +may remove or edit it. + + The file `configure.ac' (or `configure.in') is used to create +`configure' by a program called `autoconf'. You need `configure.ac' if +you want to change it or regenerate `configure' using a newer version +of `autoconf'. + +The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. + + Running `configure' might take a while. While running, it prints + some messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package. + + 4. Type `make install' to install the programs and any data files and + documentation. + + 5. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + + 6. Often, you can also type `make uninstall' to remove the installed + files again. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. Run `./configure --help' +for details on some of the pertinent environment variables. + + You can give `configure' initial values for configuration parameters +by setting variables in the command line or in the environment. Here +is an example: + + ./configure CC=c99 CFLAGS=-g LIBS=-lposix + + *Note Defining Variables::, for more details. + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you can use GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. + + With a non-GNU `make', it is safer to compile the package for one +architecture at a time in the source code directory. After you have +installed the package for one architecture, use `make distclean' before +reconfiguring for another architecture. + + On MacOS X 10.5 and later systems, you can create libraries and +executables that work on multiple system types--known as "fat" or +"universal" binaries--by specifying multiple `-arch' options to the +compiler but only a single `-arch' option to the preprocessor. Like +this: + + ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CPP="gcc -E" CXXCPP="g++ -E" + + This is not guaranteed to produce working output in all cases, you +may have to build one architecture at a time and combine the results +using the `lipo' tool if you have problems. + +Installation Names +================== + + By default, `make install' installs the package's commands under +`/usr/local/bin', include files under `/usr/local/include', etc. You +can specify an installation prefix other than `/usr/local' by giving +`configure' the option `--prefix=PREFIX'. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +pass the option `--exec-prefix=PREFIX' to `configure', the package uses +PREFIX as the prefix for installing programs and libraries. +Documentation and other data files still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like `--bindir=DIR' to specify different values for particular +kinds of files. Run `configure --help' for a list of the directories +you can set and what kinds of files go in them. + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + +Optional Features +================= + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + +Particular systems +================== + + On HP-UX, the default C compiler is not ANSI C compatible. If GNU +CC is not installed, it is recommended to use the following options in +order to use an ANSI C compiler: + + ./configure CC="cc -Ae" + +and if that doesn't work, install pre-built binaries of GCC for HP-UX. + + On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot +parse its `<wchar.h>' header file. The option `-nodtk' can be used as +a workaround. If GNU CC is not installed, it is therefore recommended +to try + + ./configure CC="cc" + +and if that doesn't work, try + + ./configure CC="cc -nodtk" + +Specifying the System Type +========================== + + There may be some features `configure' cannot figure out +automatically, but needs to determine by the type of machine the package +will run on. Usually, assuming the package is built to be run on the +_same_ architectures, `configure' can figure that out, but if it prints +a message saying it cannot guess the machine type, give it the +`--build=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name which has the form: + + CPU-COMPANY-SYSTEM + +where SYSTEM can have one of these forms: + + OS KERNEL-OS + + See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the machine type. + + If you are _building_ compiler tools for cross-compiling, you should +use the option `--target=TYPE' to select the type of system they will +produce code for. + + If you want to _use_ a cross compiler, that generates code for a +platform different from the build platform, you should specify the +"host" platform (i.e., that on which the generated programs will +eventually be run) with `--host=TYPE'. + +Sharing Defaults +================ + + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Defining Variables +================== + + Variables not defined in a site shell script can be set in the +environment passed to `configure'. However, some packages may run +configure again during the build, and the customized values of these +variables may be lost. In order to avoid this problem, you should set +them in the `configure' command line, using `VAR=value'. For example: + + ./configure CC=/usr/local2/bin/gcc + +causes the specified `gcc' to be used as the C compiler (unless it is +overridden in the site shell script). + +Unfortunately, this technique does not work for `CONFIG_SHELL' due to +an Autoconf bug. Until the bug is fixed you can use this workaround: + + CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash + +`configure' Invocation +====================== + + `configure' recognizes the following options to control how it +operates. + +`--help' +`-h' + Print a summary of all of the options to `configure', and exit. + +`--help=short' +`--help=recursive' + Print a summary of the options unique to this package's + `configure', and exit. The `short' variant lists options used + only in the top level, while the `recursive' variant lists options + also present in any nested packages. + +`--version' +`-V' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`--cache-file=FILE' + Enable the cache: use and save the results of the tests in FILE, + traditionally `config.cache'. FILE defaults to `/dev/null' to + disable caching. + +`--config-cache' +`-C' + Alias for `--cache-file=config.cache'. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to `/dev/null' (any error + messages will still be shown). + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`--prefix=DIR' + Use DIR as the installation prefix. *Note Installation Names:: + for more details, including other options available for fine-tuning + the installation locations. + +`--no-create' +`-n' + Run the configure checks, but stop before creating any output + files. + +`configure' also accepts some other, not widely useful, options. Run +`configure --help' for more details. + diff --git a/proto/videoproto/Xv.h b/proto/videoproto/Xv.h index 985653c9c..ef3f7862b 100644 --- a/proto/videoproto/Xv.h +++ b/proto/videoproto/Xv.h @@ -4,13 +4,13 @@ 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, +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 +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. +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 @@ -25,11 +25,11 @@ SOFTWARE. #ifndef XV_H #define XV_H /* -** File: +** File: ** ** Xv.h --- Xv shared library and server header file ** -** Author: +** Author: ** ** David Carver (Digital Workstation Engineering/Project Athena) ** diff --git a/proto/videoproto/XvMC.h b/proto/videoproto/XvMC.h index 2690be8be..47cc6dbbc 100644 --- a/proto/videoproto/XvMC.h +++ b/proto/videoproto/XvMC.h @@ -42,7 +42,7 @@ #define XVMC_PREDICTION_FIELD 0x01 #define XVMC_PREDICTION_FRAME 0x02 #define XVMC_PREDICTION_DUAL_PRIME 0x03 -#define XVMC_PREDICTION_16x8 0x02 +#define XVMC_PREDICTION_16x8 0x02 #define XVMC_PREDICTION_4MV 0x04 #define XVMC_SELECT_FIRST_FORWARD 0x01 @@ -68,11 +68,11 @@ typedef struct { int surface_type_id; int chroma_format; - unsigned short max_width; - unsigned short max_height; + unsigned short max_width; + unsigned short max_height; unsigned short subpicture_max_width; unsigned short subpicture_max_height; - int mc_type; + int mc_type; int flags; } XvMCSurfaceInfo; @@ -118,7 +118,7 @@ typedef struct { unsigned short x; unsigned short y; unsigned char macroblock_type; - unsigned char motion_type; + unsigned char motion_type; unsigned char motion_vertical_field_select; unsigned char dct_type; short PMV[2][2][2]; diff --git a/proto/videoproto/XvMCproto.h b/proto/videoproto/XvMCproto.h index 8e80f17e7..43ec688b9 100644 --- a/proto/videoproto/XvMCproto.h +++ b/proto/videoproto/XvMCproto.h @@ -89,7 +89,7 @@ typedef struct { BYTE type; /* X_Reply */ BYTE padb1; CARD16 sequenceNumber B16; - CARD32 length B32; + CARD32 length B32; CARD16 width_actual B16; CARD16 height_actual B16; CARD32 flags_return B32; @@ -121,7 +121,7 @@ typedef struct { BYTE type; /* X_Reply */ BYTE padb1; CARD16 sequenceNumber B16; - CARD32 length B32; + CARD32 length B32; CARD32 padl2 B32; CARD32 padl3 B32; CARD32 padl4 B32; @@ -156,7 +156,7 @@ typedef struct { BYTE type; /* X_Reply */ BYTE padb1; CARD16 sequenceNumber B16; - CARD32 length B32; + CARD32 length B32; CARD16 width_actual B16; CARD16 height_actual B16; CARD16 num_palette_entries B16; @@ -213,8 +213,8 @@ typedef struct { BYTE type; /* X_Reply */ BYTE padb1; CARD16 sequenceNumber B16; - CARD32 length B32; - CARD32 major B32; + CARD32 length B32; + CARD32 major B32; CARD32 minor B32; CARD32 patchLevel B32; CARD32 nameLen B32; diff --git a/proto/videoproto/Xvproto.h b/proto/videoproto/Xvproto.h index b6b56cf3c..94bd9cc66 100644 --- a/proto/videoproto/Xvproto.h +++ b/proto/videoproto/Xvproto.h @@ -4,13 +4,13 @@ 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, +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 +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. +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 @@ -25,11 +25,11 @@ SOFTWARE. #ifndef XVPROTO_H #define XVPROTO_H /* -** File: +** File: ** ** Xvproto.h --- Xv protocol header file ** -** Author: +** Author: ** ** David Carver (Digital Workstation Engineering/Project Athena) ** @@ -84,8 +84,8 @@ typedef struct { XvEncodingID encoding B32; CARD16 name_size B16; CARD16 width B16, height B16; - xvRational rate; CARD16 pad B16; + xvRational rate; } xvEncodingInfo; #define sz_xvEncodingInfo (12 + sz_xvRational) @@ -125,7 +125,7 @@ typedef struct { CARD16 pad6 B16; CARD32 y_sample_bits B32; CARD32 u_sample_bits B32; - CARD32 v_sample_bits B32; + CARD32 v_sample_bits B32; CARD32 horz_y_period B32; CARD32 horz_u_period B32; CARD32 horz_v_period B32; @@ -459,7 +459,7 @@ typedef struct _QueryEncodingsReply { CARD16 sequenceNumber B16; CARD32 length B32; CARD16 num_encodings B16; - CARD32 padl3 B32; + CARD16 padl3 B16; CARD32 padl4 B32; CARD32 padl5 B32; CARD32 padl6 B32; @@ -516,7 +516,7 @@ typedef struct { BYTE padb1; CARD16 sequenceNumber B16; CARD32 length B32; /* 0 */ - CARD32 num_attributes B32; + CARD32 num_attributes B32; CARD32 text_size B32; CARD32 padl5 B32; CARD32 padl6 B32; @@ -530,7 +530,7 @@ typedef struct { BYTE padb1; CARD16 sequenceNumber B16; CARD32 length B32; - CARD32 num_formats B32; + CARD32 num_formats B32; CARD32 padl4 B32; CARD32 padl5 B32; CARD32 padl6 B32; @@ -543,8 +543,8 @@ typedef struct { BYTE type; /* X_Reply */ BYTE padb1; CARD16 sequenceNumber B16; - CARD32 length B32; - CARD32 num_planes B32; + CARD32 length B32; + CARD32 num_planes B32; CARD32 data_size B32; CARD16 width B16; CARD16 height B16; diff --git a/proto/videoproto/compile b/proto/videoproto/compile new file mode 100644 index 000000000..531136b06 --- /dev/null +++ b/proto/videoproto/compile @@ -0,0 +1,347 @@ +#! /bin/sh +# Wrapper for compilers which do not understand '-c -o'. + +scriptversion=2012-10-14.11; # UTC + +# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Written by Tom Tromey <tromey@cygnus.com>. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to <bug-automake@gnu.org> or send patches to +# <automake-patches@gnu.org>. + +nl=' +' + +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent tools from complaining about whitespace usage. +IFS=" "" $nl" + +file_conv= + +# func_file_conv build_file lazy +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. If the determined conversion +# type is listed in (the comma separated) LAZY, no conversion will +# take place. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv/,$2, in + *,$file_conv,*) + ;; + mingw/*) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin/*) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine/*) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_cl_dashL linkdir +# Make cl look for libraries in LINKDIR +func_cl_dashL () +{ + func_file_conv "$1" + if test -z "$lib_path"; then + lib_path=$file + else + lib_path="$lib_path;$file" + fi + linker_opts="$linker_opts -LIBPATH:$file" +} + +# func_cl_dashl library +# Do a library search-path lookup for cl +func_cl_dashl () +{ + lib=$1 + found=no + save_IFS=$IFS + IFS=';' + for dir in $lib_path $LIB + do + IFS=$save_IFS + if $shared && test -f "$dir/$lib.dll.lib"; then + found=yes + lib=$dir/$lib.dll.lib + break + fi + if test -f "$dir/$lib.lib"; then + found=yes + lib=$dir/$lib.lib + break + fi + if test -f "$dir/lib$lib.a"; then + found=yes + lib=$dir/lib$lib.a + break + fi + done + IFS=$save_IFS + + if test "$found" != yes; then + lib=$lib.lib + fi +} + +# func_cl_wrapper cl arg... +# Adjust compile command to suit cl +func_cl_wrapper () +{ + # Assume a capable shell + lib_path= + shared=: + linker_opts= + for arg + do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + eat=1 + case $2 in + *.o | *.[oO][bB][jJ]) + func_file_conv "$2" + set x "$@" -Fo"$file" + shift + ;; + *) + func_file_conv "$2" + set x "$@" -Fe"$file" + shift + ;; + esac + ;; + -I) + eat=1 + func_file_conv "$2" mingw + set x "$@" -I"$file" + shift + ;; + -I*) + func_file_conv "${1#-I}" mingw + set x "$@" -I"$file" + shift + ;; + -l) + eat=1 + func_cl_dashl "$2" + set x "$@" "$lib" + shift + ;; + -l*) + func_cl_dashl "${1#-l}" + set x "$@" "$lib" + shift + ;; + -L) + eat=1 + func_cl_dashL "$2" + ;; + -L*) + func_cl_dashL "${1#-L}" + ;; + -static) + shared=false + ;; + -Wl,*) + arg=${1#-Wl,} + save_ifs="$IFS"; IFS=',' + for flag in $arg; do + IFS="$save_ifs" + linker_opts="$linker_opts $flag" + done + IFS="$save_ifs" + ;; + -Xlinker) + eat=1 + linker_opts="$linker_opts $2" + ;; + -*) + set x "$@" "$1" + shift + ;; + *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) + func_file_conv "$1" + set x "$@" -Tp"$file" + shift + ;; + *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) + func_file_conv "$1" mingw + set x "$@" "$file" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift + done + if test -n "$linker_opts"; then + linker_opts="-link$linker_opts" + fi + exec "$@" $linker_opts + exit 1 +} + +eat= + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: compile [--help] [--version] PROGRAM [ARGS] + +Wrapper for compilers which do not understand '-c -o'. +Remove '-o dest.o' from ARGS, run PROGRAM with the remaining +arguments, and rename the output as expected. + +If you are trying to build a whole package this is not the +right script to run: please start by reading the file 'INSTALL'. + +Report bugs to <bug-automake@gnu.org>. +EOF + exit $? + ;; + -v | --v*) + echo "compile $scriptversion" + exit $? + ;; + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + func_cl_wrapper "$@" # Doesn't return... + ;; +esac + +ofile= +cfile= + +for arg +do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + # So we strip '-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # If no '-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # '.c' file was seen then we are probably linking. That is also + # ok. + exec "$@" +fi + +# Name of file we expect compiler to create. +cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` + +# Create the lock directory. +# Note: use '[/\\:.-]' here to ensure that we don't use the same name +# that we are using for the .o file. Also, base the name on the expected +# object file name, since that is what matters with a parallel build. +lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d +while true; do + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir '$lockdir'; exit 1" 1 2 15 + +# Run the compile. +"$@" +ret=$? + +if test -f "$cofile"; then + test "$cofile" = "$ofile" || mv "$cofile" "$ofile" +elif test -f "${cofile}bj"; then + test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" +fi + +rmdir "$lockdir" +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/proto/videoproto/configure.ac b/proto/videoproto/configure.ac index c016740f6..cc0c203de 100644 --- a/proto/videoproto/configure.ac +++ b/proto/videoproto/configure.ac @@ -1,7 +1,14 @@ +dnl +dnl Process this file with autoconf to create configure. + +# Initialize Autoconf AC_PREREQ([2.60]) -AC_INIT([VideoProto], [2.3.1], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg]) +AC_INIT([VideoProto], [2.3.2], + [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg]) +AC_CONFIG_SRCDIR([Makefile.am]) + +# Initialize Automake AM_INIT_AUTOMAKE([foreign dist-bzip2]) -AM_MAINTAINER_MODE # Require xorg-macros: XORG_DEFAULT_OPTIONS m4_ifndef([XORG_MACROS_VERSION], diff --git a/proto/videoproto/videoproto.pc.in b/proto/videoproto/videoproto.pc.in index 584054074..4aa75168b 100644 --- a/proto/videoproto/videoproto.pc.in +++ b/proto/videoproto/videoproto.pc.in @@ -2,7 +2,7 @@ prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ - + Name: VideoProto Description: Video extension headers Version: @PACKAGE_VERSION@ diff --git a/proto/videoproto/vldXvMC.h b/proto/videoproto/vldXvMC.h index 5c66cebb9..fbd251e05 100644 --- a/proto/videoproto/vldXvMC.h +++ b/proto/videoproto/vldXvMC.h @@ -20,7 +20,7 @@ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. - * + * * Author: Thomas Hellström, 2004. */ @@ -31,7 +31,7 @@ #include <X11/Xlib.h> #include <X11/extensions/XvMC.h> -/* +/* * New "Motion compensation type". */ @@ -74,7 +74,7 @@ /* * Which of two mappings between quantiser_scale_code * and quantiser_scale shall apply. - */ + */ #define XVMC_Q_SCALE_TYPE 0x00000400 @@ -86,20 +86,20 @@ #define XVMC_INTRA_VLC_FORMAT 0x00000800 /* - * Also XVMC_SECOND_FIELD should be set in flags if active. - */ + * Also XVMC_SECOND_FIELD should be set in flags if active. + */ #define XVMC_I_PICTURE 1 #define XVMC_P_PICTURE 2 #define XVMC_B_PICTURE 3 typedef struct _XvMCMpegControl{ - unsigned + unsigned BVMV_range, /* Backward vertical motion vector range */ BHMV_range, /* Backward horizontal motion vector range */ FVMV_range, /* Forward vertical motion vector range */ FHMV_range, /* Forward horizontal motion vector range */ - picture_structure, /* XVMC_TOP_FIELD, XVMC_BOTTOM_FIELD, + picture_structure, /* XVMC_TOP_FIELD, XVMC_BOTTOM_FIELD, * XVMC_FRAME_PICTURE */ intra_dc_precision, /* 0x00 - 0x03 corresponds to 8 to 11 bits prec. */ @@ -126,13 +126,13 @@ extern Status XvMCBeginSurface(Display *display, /* * The quantizer matrix structure. This should be filled in by the user and - * uploaded whenever a change is needed. The lib initializes with + * uploaded whenever a change is needed. The lib initializes with * default matrices and will automatically load the hardware with new matrices * on decoder context switches. To load data, set the corresponding load flag * to true and fill in the values. The VIA MPEG2 engine only uses the - * intra_quantiser_matrix and the non_intra_quantiser_matrix. + * intra_quantiser_matrix and the non_intra_quantiser_matrix. */ - + typedef struct _XvMCQMatrix { int load_intra_quantiser_matrix; int load_non_intra_quantiser_matrix; @@ -145,7 +145,7 @@ typedef struct _XvMCQMatrix { } XvMCQMatrix; /* - * Upload a XvMCQMatrix structure to the clientlib. + * Upload a XvMCQMatrix structure to the clientlib. * The hardware will start using it the next XvMCBeginSurface. */ @@ -154,21 +154,21 @@ extern Status XvMCLoadQMatrix(Display *display, XvMCContext *context, /* - * Put a slice to the decoder. The hardware will start processing it + * Put a slice to the decoder. The hardware will start processing it * immediately. */ -extern Status XvMCPutSlice(Display *display,XvMCContext *context, +extern Status XvMCPutSlice(Display *display,XvMCContext *context, char *slice, int nBytes); /* - * Put a slice without the slice start code to the decoder. - * The hardware will start processing it - * immediately. This function is for client optimization. + * Put a slice without the slice start code to the decoder. + * The hardware will start processing it + * immediately. This function is for client optimization. * XvMCPutSlice(display,context,slice,nBytes) is equivalent to * XvMCPutSlice2(display,context,slice+4,nBytes-4,slice[3]); */ -extern Status XvMCPutSlice2(Display *display,XvMCContext *context, +extern Status XvMCPutSlice2(Display *display,XvMCContext *context, char *slice, int nBytes, int sliceCode); #endif diff --git a/proto/videoproto/xv-protocol-v2.txt b/proto/videoproto/xv-protocol-v2.txt index 31e2013bb..d018184c6 100644 --- a/proto/videoproto/xv-protocol-v2.txt +++ b/proto/videoproto/xv-protocol-v2.txt @@ -41,8 +41,8 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts, + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts, and the Massachusetts Institute of Technology, Cambridge, Massachusetts. All Rights Reserved @@ -55,24 +55,24 @@ 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. + 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. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Preface ------- - + The following is an outline for an X video extension protocol. It is preliminary and subject to change. My goal in writing this was to fix some the shortcomings of existing overly simplistic extensions while avoiding pitfalls in an overly complex extension. - + Your feedback is desired, and since the major design directions have been stable for some time, feel free to hammer on the details of the protocol. @@ -95,10 +95,10 @@ with several groups, including Project Athena's Visual Computing Group - The MIT X Consortium + The MIT X Consortium The MIT Media Lab's Interactive Cinema Group - - + + Changes ------- @@ -139,7 +139,7 @@ Introduction ------------ - + Video technology is moving very quickly. Standards for processing high resolution video are currently a hot topic of discussion internationally, and it will soon be possible to process video @@ -147,47 +147,47 @@ does not attempt to address issues of digital video. Its purpose is to provide a mechanism for support of current and near term interactive video technology. - + It is somewhat ironic that Xv contains nothing particularly innovative. It takes a minimalistic approach, and without a doubt it could have been defined years ago, and with several revisions. So, the life expectancy of Xv is not long. Nevertheless, it may undergo further revision and experimentation that will help our progress towards digital video systems. - + One premise of the Xv extension is that the X server is not alone. A separate video server is often used to manage other aspects of video processing, though the partition between what the X server does and what a video server does is a matter of great debate. - + Model ----- - + This extension models video monitor capabilities in the X Window System. Some advanced monitors support the simultaneous display of multiple video signals (into separate windows), and that is prepresented here through the ability to display video from multiple video input adaptors into X drawables. - + Some monitors support multiple video encodings (mostly for internationalization purposes) either through switches or automatic detection, thus each video adaptor specifies the set of encodings it supports. - + The requests to display video from an adaptor into a drawable are modeled after the core PutImage request, though extended to support scaling and source clipping. - + Video output is also supported and is symmetric with the video input function, though fewer GC components are used. - - + + Mechanism --------- - + The Xv extension does the following: - + -- lists available video adaptors -- identifies the number of ports each adaptor supports -- describes what drawable formats each adaptor supports @@ -197,35 +197,35 @@ -- grabs and ungrabs ports -- sets and gets port attributes -- delivers event notification - + - + Adaptors -------- - + A display may have multiple video input and output adaptors. An adaptor may support multiple simultaneously active ports, and in some cases the number of ports has no fixed limit. - + An input port receives encoded video data and converts it to a stream of data used to update a drawable. An output port samples data from a drawable and produces a stream of encoded video data. - + The ADAPTORINFO structure is used to describe a video adaptor. - + ADAPTORINFO: [base-id: PORT num-ports: CARD16 type: SETofADAPTORTYPE formats: LISTofFORMAT name: STRING] - + ADAPTORTYPE: {Input, Output} FORMAT: [depth: CARD8 visual: VISUALID] - + The base-id field specifies the XID of the first port of the adaptor. The `num-ports' field specifies how many ports the adaptor supports. The ports of the adaptor have XIDs in the range @@ -248,24 +248,24 @@ necessarily imply that simultaneous operation is supported. - + Errors ------ - + Port - + A Port error is returned if any request names a PORT that does not exist. - + Encoding - + An Encoding error is returned if any request names an ENCODINGID that does not exist. - + Query Requests ------------------- @@ -277,19 +277,19 @@ The QueryExtension request returns the extension version and revision numbers. - + QueryAdaptors win: WINDOW ==> adaptors: LISTofADAPTORINFO - + The QueryAdaptors request returns the video adaptor information for the screen of the specified window. - + Errors: {Window} - QueryEncodings + QueryEncodings port: PORT ==> encodings: LISTofENCODINGINFO @@ -304,28 +304,28 @@ name: STRING width, height: CARD16 rate: FRACTION] - + The `encoding' field identifies an encoding supported by a port. Its value is unique for a screen. Width and height specify the size of the video image and rate specifies the rate at which fields of image information are encoded. - + An encoding is identified by a string that names the encoding. Encoding naming conventions need to be established (i.e., something along the lines of font naming, but simpler) - + FRACTION [numerator, denominator: INT32] - + The FRACTION structure is used to specify a fractional number. Errors: {Port} - + Put Video Requests ------------------ - + PutVideo port: PORT drawable: DRAWABLE @@ -334,12 +334,12 @@ vid-w, vid-h: CARD16 drw-x, drw-y: INT16 drw-w, drw-h: CARD16 - + The PutVideo request writes video into a drawable. The position and size of the source rectangle is specified by vid-x, vid-y, vid-w, and vid-h. The position and size of the destination rectangle is specified by drw-x, drw-y, drw-w, drw-h. - + Video data is clipped to the bounds of the video encoding, scaled to the requested drawable region size (or the closest size supported), and clipped to the bounds of the drawable. @@ -356,10 +356,10 @@ HardError is generated for the drawable. GC components: subwindow-mode, clip-x-origin, clip-y-origin, clip-mask. - + Errors: {Match, Value, GContext, Port, Alloc} - - + + PutStill port: PORT drawable: DRAWABLE @@ -368,13 +368,13 @@ vid-w, vid-h: CARD16 drw-x, drw-y: INT16 drw-w, drw-h: CARD16 - + The PutStill request writes a single frame of video into a drawable. The position and size of the source rectangle is specified by vid-x, vid-y, vid-w, and vid-h. The position and size of the destination rectangle is specified by drw-x, drw-y, drw-w, drw-h. - + Video data is clipped to the bounds of the video encoding, scaled to the requested drawable region size (or the closest size supported) and clipped to the bounds of the drawable. @@ -386,14 +386,14 @@ drawable. GC components: subwindow-mode, clip-x-origin, clip-y-origin, clip-mask. - + Errors: {Match, Value, GContext, Port, Alloc} - + - + Get Video Requests ------------------ - + GetVideo port: PORT drawable: DRAWABLE @@ -402,12 +402,12 @@ vid-w, vid-h: CARD16 drw-x, drw-y: INT16 drw-w, drw-h: CARD16 - + The GetVideo request outputs video from a drawable. The position and size of the destination rectangle is specified by vid-x, vid-y, vid-w, and vid-h. The position and size of the source rectangle is specified by drw-x, drw-y, drw-w, and drw-h. - + Drawable data is clipped to the bounds of the drawable, scaled to the requested video region size (or the closest size supported) and clipped to the bounds of the video encoding. The contents of @@ -423,10 +423,10 @@ GC components: subwindow-mode, clip-x-origin, clip-y-origin, clip-mask. - + Errors: {Match, Value, GContext, Port, Alloc} - - + + GetStill port: PORT drawable: DRAWABLE @@ -435,12 +435,12 @@ vid-w, vid-h: CARD16 drw-x, drw-y: INT16 drw-w, drw-h: CARD16 - + The GetStill request outputs video from a drawable. The position and size of the destination rectangle is specified by vid-x, vid-y, vid-w, and vid-h. The position and size of the source rectangle is specified by drw-x, drw-y, drw-w, and drw-h. - + Drawable data is clipped to the bounds of the drawable, scaled to the requested video region size (or the closest size supported) and clipped to the bounds of the video encoding. The contents of @@ -453,70 +453,70 @@ GC components: subwindow-mode, clip-x-origin, clip-y-origin, clip-mask. - + Errors: {Match, Value, GContext, Port, Alloc} - - + + - + Grab Requests ------------- - + GrabPort - port: PORT + port: PORT timestamp: {TIMESTAMP, CurrentTime} ==> status: {Success, AlreadyGrabbed, InvalidTime} - + The GrabPort request grabs a port. While a port is grabbed, only video requests from the grabbing client are permitted. - + If timestamp specifies a time older than the current port time, a status of InvalidTime is returned. If the port is already grabbed by another client, a status of AlreadyGrabbed is returned. Otherwise a status of Success is returned. The port time is updated when the following requests are processed: GrabPort, UngrabPort, PutVideo, PutStill, GetVideo, GetStill - + If the port is actively processing video for another client, the video is preempted, and an VideoNotify event with detail Preempted is generated for its drawable. Errors: {Port} - - + + UngrabPort - port: PORT + port: PORT timestamp: {TIMESTAMP, CurrentTime} - + The UngrabPort request ungrabs a port. If timestamp specifies a time before the last connection request time of this port, the request is ignored. - + Errors: {Port} - + Other Requests -------------- - + StopVideo port: PORT drawable: DRAWABLE - + The StopVideo request stops active video for the specified port and drawable. If the port isn't processing video, or if it is processing video in a different drawable, the request is ignored. When video is stopped a VideoNotify event with detail Stopped is generated for the associated drawable. - Errors: {Drawable, Port} + Errors: {Drawable, Port} + - SelectVideoNotify drawable: DRAWABLE onoff: BOOL - + The SelectVideoNotify request enables or disables VideoNotify event delivery to the requesting client. VideoNotify events are generated when video starts and stops. @@ -527,14 +527,14 @@ SelectPortNotify port: PORT onoff: BOOL - + The SelectPortNotify request enables or disables PortNotify event delivery to the requesting client. PortNotify events are generated when port attributes are changed using SetPortAttribute. Errors: {Port} - + QueryBestSize port: PORT motion: BOOL @@ -542,7 +542,7 @@ drw-w, drw-h: CARD16 ==> actual-width, actual-height: CARD16 - + The QueryBestSize request returns, for the given source size and desired destination size, the closest destination size that the port adaptor supports. The returned size will be equal @@ -553,30 +553,30 @@ The retuned size is also chosen to maintain the requested aspect ratio if possible. - + Errors: {Port} - + - + SetPortAttribute port: PORT attribute: ATOM value: INT32 - + The SetPortAttribute request sets the value of a port attribute. The port attribute is identified by the attribute atom. The following strings are guaranteed to generate valid atoms using the InternAtom request. - String Type + String Type ----------------------------------------------------------------- - + "XV_ENCODING" ENCODINGID - "XV_HUE" [-1000..1000] - "XV_SATURATION" [-1000..1000] - "XV_BRIGHTNESS" [-1000..1000] + "XV_HUE" [-1000..1000] + "XV_SATURATION" [-1000..1000] + "XV_BRIGHTNESS" [-1000..1000] "XV_CONTRAST" [-1000..1000] - + If the given attribute doesn't match an attribute supported by the port adaptor a Match error is generated. The supplied encoding @@ -593,14 +593,14 @@ notification using SelectPortNotify. Errors: {Port, Match, Value} - - + + GetPortAttribute port: PORT attribute: ATOM ==> - value: INT32 - + value: INT32 + The GetPortAttribute request returns the current value of the attribute identified by the given atom. If the given atom @@ -613,7 +613,7 @@ Events ------ - + VideoNotify drawable: DRAWABLE port: PORT @@ -635,18 +635,18 @@ A Preempted reason is generated when video is stopped by a conflicting request. - + A HardError reason is generated when the video port cannot initiate or continue processing a video request because of an underlying transmission or reception error. - + PortNotify port: PORT attribute: ATOM value: INT32 time: TIMESTAMP - + The PortNotify event is generated when a SetPortAttribute request is processed. The event is delivered to all clients that have performed a SelectPortNotify request for the port. The event |