[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

x11proto-video: Changes to 'upstream-unstable'



 .gitignore         |   78 +++++-
 Makefile.am        |   13 -
 README             |   30 ++
 configure.ac       |   15 -
 vldXvMC.h          |    1 
 xv-protocol-v2.txt |  654 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 6 files changed, 771 insertions(+), 20 deletions(-)

New commits:
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>

diff --git a/configure.ac b/configure.ac
index 5e128e1..c016740 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
 AC_PREREQ([2.60])
-AC_INIT([VideoProto], [2.3.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
+AC_INIT([VideoProto], [2.3.1], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
 AM_INIT_AUTOMAKE([foreign dist-bzip2])
 AM_MAINTAINER_MODE
 

commit 56a94402e9252879771ba42ee76990f132b56fca
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Sun Mar 28 19:00:31 2010 -0400

    config: remove the pkgconfig pc.in file from EXTRA_DIST
    
    Automake always includes it in the tarball.
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>

diff --git a/Makefile.am b/Makefile.am
index befe525..6064e46 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -11,7 +11,6 @@ pkgconfig_DATA = videoproto.pc
 
 dist_doc_DATA = xv-protocol-v2.txt
 
-EXTRA_DIST = videoproto.pc.in
 
 MAINTAINERCLEANFILES = ChangeLog INSTALL
 

commit 72a31b1b758c42faef518081a1a1c436c26add4f
Author: Rémi Cardona <remi@gentoo.org>
Date:   Thu Dec 17 08:42:27 2009 +0100

    require autoconf 2.60 because of $(docdir) use
    
    Signed-off-by: Rémi Cardona <remi@gentoo.org>
    Reviewed-by: Gaetan Nadon <memsize@videotron.ca>
    Reviewed-by: Alan Coopersmith <alan.coopersmith@sun.com>
    Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>

diff --git a/configure.ac b/configure.ac
index 9f706bc..5e128e1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,4 +1,4 @@
-AC_PREREQ([2.57])
+AC_PREREQ([2.60])
 AC_INIT([VideoProto], [2.3.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
 AM_INIT_AUTOMAKE([foreign dist-bzip2])
 AM_MAINTAINER_MODE

commit 38602c56dcf24bf7dbddfbac89a35c15e3d3f885
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Sun Nov 22 19:24:48 2009 -0500

    Makefile.am: add ChangeLog and INSTALL on MAINTAINERCLEANFILES
    
    Now that the INSTALL file is generated.
    Allows running make maintainer-clean.

diff --git a/Makefile.am b/Makefile.am
index 89d1537..befe525 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -13,6 +13,8 @@ dist_doc_DATA = xv-protocol-v2.txt
 
 EXTRA_DIST = videoproto.pc.in
 
+MAINTAINERCLEANFILES = ChangeLog INSTALL
+
 .PHONY: ChangeLog INSTALL
 
 INSTALL:

commit 35734855fd913c7b743280346fc19471a39d88d4
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Mon Nov 16 11:13:30 2009 -0500

    README: file created or updated #24206
    
    Contains a set of URLs to freedesktop.org.

diff --git a/README b/README
new file mode 100644
index 0000000..ecc468a
--- /dev/null
+++ b/README
@@ -0,0 +1,30 @@
+				X Video Extension
+
+This extension provides a protocol for a video output mechanism,
+mainly to rescale video playback in the video controller hardware.
+
+Extension name: XVideo
+
+All questions regarding this software should be directed at the
+Xorg mailing list:
+
+        http://lists.freedesktop.org/mailman/listinfo/xorg
+
+Please submit bug reports to the Xorg bugzilla:
+
+        https://bugs.freedesktop.org/enter_bug.cgi?product=xorg
+
+The master development code repository can be found at:
+
+        git://anongit.freedesktop.org/git/xorg/proto/videoproto
+
+        http://cgit.freedesktop.org/xorg/proto/videoproto
+
+For patch submission instructions, see:
+
+	http://www.x.org/wiki/Development/Documentation/SubmittingPatches
+
+For more information on the git code manager, see:
+
+        http://wiki.x.org/wiki/GitPage
+

commit 86b3515e9ea8dc6252db0ed31642ef314656c9bf
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Sun Nov 15 19:45:27 2009 -0500

    Makefile.am: ChangeLog not required: EXTRA_DIST or *CLEANFILES #24432
    
    ChangeLog filename is known to Automake and requires no further
    coding in the makefile.

diff --git a/Makefile.am b/Makefile.am
index e6a6641..89d1537 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -13,9 +13,6 @@ dist_doc_DATA = xv-protocol-v2.txt
 
 EXTRA_DIST = videoproto.pc.in
 
-EXTRA_DIST += ChangeLog
-MAINTAINERCLEANFILES = ChangeLog
-
 .PHONY: ChangeLog INSTALL
 
 INSTALL:

commit ad23568d0d5d0c1cdfc54bfdb752e398ab881639
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Sun Nov 15 18:31:29 2009 -0500

    Makefile.am: INSTALL file is missing or incorrect #24206
    
    The standard GNU file on building/installing  tarball is copied
    using the XORG_INSTALL macro contained in XORG_DEFAULT_OPTIONS
    Add INSTALL target

diff --git a/Makefile.am b/Makefile.am
index 45df9f4..e6a6641 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -16,9 +16,12 @@ EXTRA_DIST = videoproto.pc.in
 EXTRA_DIST += ChangeLog
 MAINTAINERCLEANFILES = ChangeLog
 
-.PHONY: ChangeLog
+.PHONY: ChangeLog INSTALL
+
+INSTALL:
+	$(INSTALL_CMD)
 
 ChangeLog:
 	$(CHANGELOG_CMD)
 
-dist-hook: ChangeLog
+dist-hook: ChangeLog INSTALL

commit 40310f285cdac70865ff342f874e2bd21d36ef8d
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Sun Nov 15 18:11:36 2009 -0500

    configure.ac: deploy the new XORG_DEFAULT_OPTIONS #24242
    
    This macro aggregate a number of existing macros that sets commmon
    X.Org components configuration options. It shields the configuration file from
    future changes.

diff --git a/configure.ac b/configure.ac
index c993963..9f706bc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,11 +3,11 @@ AC_INIT([VideoProto], [2.3.0], [https://bugs.freedesktop.org/enter_bug.cgi?produ
 AM_INIT_AUTOMAKE([foreign dist-bzip2])
 AM_MAINTAINER_MODE
 
-# Require xorg-macros: XORG_CHANGELOG
-m4_ifndef([XORG_MACROS_VERSION], [AC_FATAL([must install xorg-macros 1.2 or later before running autoconf/autogen])])
-XORG_MACROS_VERSION(1.2)
-XORG_RELEASE_VERSION
-XORG_CHANGELOG
+# Require xorg-macros: XORG_DEFAULT_OPTIONS
+m4_ifndef([XORG_MACROS_VERSION],
+          [m4_fatal([must install xorg-macros 1.3 or later before running autoconf/autogen])])
+XORG_MACROS_VERSION(1.3)
+XORG_DEFAULT_OPTIONS
 
 AC_OUTPUT([Makefile
            videoproto.pc])

commit 69311c693daf6797646bce9b1c62bba54fed9343
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Sun Nov 15 13:55:25 2009 -0500

    configure.ac: AM_MAINTAINER_MODE missing #24238
    
    This turns off maintainer mode build rules in tarballs.
    Works in conjunction with autogen.sh --enable-maintainer-mode

diff --git a/configure.ac b/configure.ac
index e0ab234..c993963 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,6 +1,7 @@
 AC_PREREQ([2.57])
 AC_INIT([VideoProto], [2.3.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
 AM_INIT_AUTOMAKE([foreign dist-bzip2])
+AM_MAINTAINER_MODE
 
 # Require xorg-macros: XORG_CHANGELOG
 m4_ifndef([XORG_MACROS_VERSION], [AC_FATAL([must install xorg-macros 1.2 or later before running autoconf/autogen])])

commit a9fc831a64cab7c70aecee4f0f86ac01360e3d8f
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Sat Nov 14 18:26:47 2009 -0500

    .gitignore: use common defaults with custom section # 24239
    
    Using common defaults will reduce errors and maintenance.
    Only the very small or inexistent custom section need periodic maintenance
    when the structure of the component changes. Do not edit defaults.

diff --git a/.gitignore b/.gitignore
index 7c0b689..d342ae6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,14 +1,78 @@
-Makefile
-Makefile.in
+#
+#		X.Org module default exclusion patterns
+#		The next section if for module specific patterns
+#
+#	Do not edit the following section
+# 	GNU Build System (Autotools)
 aclocal.m4
-autom4te.cache
+autom4te.cache/
+autoscan.log
+ChangeLog
+compile
+config.guess
+config.h
+config.h.in
 config.log
+config-ml.in
+config.py
 config.status
+config.status.lineno
+config.sub
 configure
+configure.scan
+depcomp
+.deps/
+INSTALL
 install-sh
+.libs/
+libtool
+libtool.m4
+ltmain.sh
+lt~obsolete.m4
+ltoptions.m4
+ltsugar.m4
+ltversion.m4
+Makefile
+Makefile.in
+mdate-sh
 missing
-videoproto.pc
+mkinstalldirs
+*.pc
+py-compile
+stamp-h?
+symlink-tree
+texinfo.tex
+ylwrap
+
+#	Do not edit the following section
+# 	Edit Compile Debug Document Distribute
 *~
-videoproto-*.tar.*
-ChangeLog
-tags
+*.[0-9]
+*.[0-9]x
+*.bak
+*.bin
+core
+*.dll
+*.exe
+*-ISO*.bdf
+*-JIS*.bdf
+*-KOI8*.bdf
+*.kld
+*.ko
+*.ko.cmd
+*.lai
+*.l[oa]
+*.[oa]
+*.obj
+*.patch
+*.so
+*.pcf.gz
+*.pdb
+*.tar.bz2
+*.tar.gz
+#
+#		Add & Override patterns for videoproto 
+#
+#		Edit the following section as needed
+# For example, !report.pc overrides *.pc. See 'man gitignore'
+# 

commit 9190399907610486001f3676945958dbab4b837a
Author: Luc Verhaegen <libv@skynet.be>
Date:   Mon Oct 19 23:59:20 2009 +0200

    vldXvMC.h: stop uselessly including XvMClib.h.
    
    Protocol header depending on client library header?
    
    Only clients which depend on this header but which did not bother to
    include it directly will run into trouble, but the fix is trivial,
    general and backwards compatible.
    
    Signed-off-by: Luc Verhaegen <libv@skynet.be>

diff --git a/vldXvMC.h b/vldXvMC.h
index 91fb3b7..5c66ceb 100644
--- a/vldXvMC.h
+++ b/vldXvMC.h
@@ -30,7 +30,6 @@
 
 #include <X11/Xlib.h>
 #include <X11/extensions/XvMC.h>
-#include <X11/extensions/XvMClib.h>
 
 /* 
  * New "Motion compensation type".

commit 56ea4c0c10bb23ae4b115b13c0052d1e808d2e75
Author: Alan Coopersmith <alan.coopersmith@sun.com>
Date:   Sat Oct 10 16:35:12 2009 -0700

    Move xv-protocol-v2.txt from xorg-docs to videoproto
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>

diff --git a/Makefile.am b/Makefile.am
index 65630ff..45df9f4 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -9,6 +9,8 @@ video_HEADERS = \
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = videoproto.pc
 
+dist_doc_DATA = xv-protocol-v2.txt
+
 EXTRA_DIST = videoproto.pc.in
 
 EXTRA_DIST += ChangeLog
diff --git a/xv-protocol-v2.txt b/xv-protocol-v2.txt
new file mode 100644
index 0000000..31e2013
--- /dev/null
+++ b/xv-protocol-v2.txt
@@ -0,0 +1,654 @@
+
+
+
+
+
+
+
+
+
+			  X Video Extension
+			 Protocol Description
+
+			      Version 2
+
+			      25-JUL-91
+
+			     David Carver
+
+		    Digital Equipment Corporation
+		Workstation Engineering/Project Athena
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
+  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.  
+  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+
+  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.
+
+    When you receive a revision of the document, refer to the changes
+    and issues sections to guide your review and analysis.
+
+
+  Acknowledgements
+  ---------------
+
+    The following people have made major contributions to the design of
+    the Xv protocol:
+
+      Branko Gerovac (DEC/Corporate Research)
+      Russ Sasnett (GTE/Project Athena)
+      Ralph Swick (DEC/Project Athena)
+
+    Many ideas and approaches in Xv were the product of discussions
+    with several groups, including
+
+      Project Athena's Visual Computing Group
+      The MIT X Consortium 
+      The MIT Media Lab's Interactive Cinema Group
+      
+  
+  
+  Changes
+  -------
+
+    From version 1.3 to 2.0
+
+    -- Changed SetPortControl and GetPortControl to GetPortAttribute
+       and SetPortAttribute.
+
+    -- Changed QueryBestSize
+
+    -- Simplified SelectVideoNotify and SelectPortNotify requests.
+
+    -- Changed the way SetPortControl and GetPortControl works.
+
+    -- Added a QueryExtension request to return the version and
+       revision information of the extension.
+
+    -- Changed the name of the QueryVideo request to QueryAdaptors;
+       Removed the list of encodings from QueryVideo and added a
+       QueryEncodings request.
+
+    -- Added a PortNotify event that notifies interested clients that
+       a port control has been changed.
+
+    -- Added SelectPortNotify request to select for PortNotify events.
+
+    -- The XvInterruped reason has been replaced by two new reasons:
+       one for when video is preempted by another video request and
+       one for when video is terminated because of hard transmission
+       or reception errors.
+
+    -- Changed the wording of the QueryBestSize request.  Added issue
+       about whether or not returned sizes should maintain the
+       requested aspect ratio.
+
+
+
+  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
+    entirely within the digital domain.  The Xv extension, however,
+    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
+      --  describes what video encodings each adaptor supports
+      --  displays video from a port to a drawable
+      --  captures video from a drawable to a port
+      --  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
+    [base-id..base-id + num-ports - 1]
+
+    The type attribute determines if the adaptor can process video
+    input, output, or input and output.  The if the adaptor can
+    process input then Input is asserted, if the adaptor can process
+    output then Output is asserted.
+
+    The drawable depths and visual types supported by the adaptor are
+    listed in `formats'.  Note: that when video is being processed for
+    pixmaps the visual format is taken to be the visual of the first
+    pair that matches the depth of the pixmap.
+
+    The name field contains an a vendor specific string that
+    identifies the adaptor.
+
+    It should be noted that the existence of separate adaptors doesn't
+    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
+  -------------------
+
+    QueryExtension
+    ==>
+      version: CARD16
+      revision: CARD16
+
+    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    
+      port: PORT
+    ==>
+      encodings: LISTofENCODINGINFO
+
+    The QueryEncodings request returns the list of encodings supported
+    by the port adaptor.  Use the SetPortAttribute request to set
+    which encoding a port is to process.  The ENCODINGINFO record
+    describes an encoding:
+
+    ENCODINGINFO:
+  	[encoding: ENCODINGID
+  	 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
+      gc: GCONTEXT
+      vid-x, vid-y: INT16
+      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.
+
+    If video is successfully initiated, a VideoNotify event with
+    detail Started is generated for the drawable.  If the port is
+    already in use, its video is preempted, and if the new drawable is
+    different than the old, a VideoNotify event with detail Preempted
+    is generated for the old drawable.  If the port is grabbed by
+    another client, this request is ignored, and a VideoNotify event
+    with detail Busy is generated for the drawable.  If the port is
+    not receiving a valid video signal or if the video signal is
+    interrupted while video is active a VideoNotify event with detail
+    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
+      gc: GCONTEXT
+      vid-x, vid-y: INT16
+      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.
+
+    If the port is grabbed by another client, this request is ignored,
+    and a VideoNotify event with detail Busy is generated for the
+    drawable.  If the port is not receiving a valid video signal a
+    VideoNotify event with detail HardError is generated for the
+    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
+      gc: GCONTEXT
+      vid-x, vid-y: INT16
+      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
+    any region not updated with drawable data is undefined.
+
+    If video is successfully initiated, a VideoNotify event with
+    detail Started is generated for the drawable.  If the port is
+    already in use, its video is preempted, and if the new drawable is
+    different than the old, a VideoNotify event with detail Preempted
+    is generated for the old drawable.  If the port is grabbed by
+    another client, this request is ignored, and a VideoNotify event
+    with detail Busy is generated for the drawable.
+
+    GC components: subwindow-mode, clip-x-origin, clip-y-origin,
+    clip-mask.
+  
+    Errors: {Match, Value, GContext, Port, Alloc}
+  
+  
+    GetStill
+      port: PORT
+      drawable: DRAWABLE
+      gc: GCONTEXT
+      vid-x, vid-y: INT16
+      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
+    any region not updated with drawable data is undefined.
+
+    If the still is successfully captured a VideoNotify event with
+    detail Still is generated for the drawable.  If the port is
+    grabbed by another client, this request is ignored, and a
+    VideoNotify event with detail Busy is generated for the drawable.
+
+    GC components: subwindow-mode, clip-x-origin, clip-y-origin,
+    clip-mask.
+  
+    Errors: {Match, Value, GContext, Port, Alloc}
+  
+  
+  
+  
+  Grab Requests
+  -------------
+  
+    GrabPort
+      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    
+      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}  
+
+  
+    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.
+
+    Errors: {Drawable}
+
+
+    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
+      vid-w, vid-h: CARD16
+      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
+    or smaller than the requested size if one is supported.  If motion
+    is True then the requested size is intended for use with full
+    motion video.  If motion is False, the requested size is intended
+    for use with stills only.
+
+    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          
+    -----------------------------------------------------------------
+  
+    "XV_ENCODING"         ENCODINGID
+    "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
+    must be one of the encodings listed for the adaptor, otherwise an
+    Encoding error is generated.
+
+    If the adaptor doesn't support the exact hue, saturation,
+    brightness, and contrast levels supplied, the closest levels
+    supported are assumed.  The GetPortAttribute request can be used
+    to query the resulting levels.
+
+    When a SetPortAttribute request is processed a PortNotify event is
+    generated for all clients that have requested port change
+    notification using SelectPortNotify.
+
+    Errors: {Port, Match, Value}


Reply to: