61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync/*
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * Copyright (c) 1998-2003 by The XFree86 Project, Inc.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync *
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * Permission is hereby granted, free of charge, to any person obtaining a
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * copy of this software and associated documentation files (the "Software"),
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * to deal in the Software without restriction, including without limitation
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * the rights to use, copy, modify, merge, publish, distribute, sublicense,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * and/or sell copies of the Software, and to permit persons to whom the
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * Software is furnished to do so, subject to the following conditions:
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync *
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * The above copyright notice and this permission notice shall be included in
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * all copies or substantial portions of the Software.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync *
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * OTHER DEALINGS IN THE SOFTWARE.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync *
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * Except as contained in this notice, the name of the copyright holder(s)
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * and author(s) shall not be used in advertising or otherwise to promote
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * the sale, use or other dealings in this Software without prior written
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * authorization from the copyright holder(s) and author(s).
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync */
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#ifndef _XF86XV_H_
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#define _XF86XV_H_
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#include "xvdix.h"
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#include "xf86str.h"
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#define VIDEO_NO_CLIPPING 0x00000001
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#define VIDEO_INVERT_CLIPLIST 0x00000002
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#define VIDEO_OVERLAID_IMAGES 0x00000004
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#define VIDEO_OVERLAID_STILLS 0x00000008
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync/*
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * Usage of VIDEO_CLIP_TO_VIEWPORT is not recommended.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * It can make reput behaviour inconsistent.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync */
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#define VIDEO_CLIP_TO_VIEWPORT 0x00000010
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef struct {
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int id;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int type;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int byte_order;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync unsigned char guid[16];
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int bits_per_pixel;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int format;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int num_planes;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync /* for RGB formats only */
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int depth;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync unsigned int red_mask;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync unsigned int green_mask;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync unsigned int blue_mask;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync /* for YUV formats only */
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync unsigned int y_sample_bits;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync unsigned int u_sample_bits;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync unsigned int v_sample_bits;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync unsigned int horz_y_period;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync unsigned int horz_u_period;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync unsigned int horz_v_period;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync unsigned int vert_y_period;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync unsigned int vert_u_period;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync unsigned int vert_v_period;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync char component_order[32];
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int scanline_order;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync} XF86ImageRec, *XF86ImagePtr;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef struct {
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync ScrnInfoPtr pScrn;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int id;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync unsigned short width, height;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int *pitches; /* bytes */
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int *offsets; /* in bytes from start of framebuffer */
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync DevUnion devPrivate;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync} XF86SurfaceRec, *XF86SurfacePtr;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef int (*PutVideoFuncPtr) (ScrnInfoPtr pScrn,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync short vid_x, short vid_y, short drw_x,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync short drw_y, short vid_w, short vid_h,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync short drw_w, short drw_h, RegionPtr clipBoxes,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync void *data, DrawablePtr pDraw);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef int (*PutStillFuncPtr) (ScrnInfoPtr pScrn, short vid_x, short vid_y,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync short drw_x, short drw_y, short vid_w,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync short vid_h, short drw_w, short drw_h,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync RegionPtr clipBoxes, void *data,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync DrawablePtr pDraw);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef int (*GetVideoFuncPtr) (ScrnInfoPtr pScrn, short vid_x, short vid_y,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync short drw_x, short drw_y, short vid_w,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync short vid_h, short drw_w, short drw_h,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync RegionPtr clipBoxes, void *data,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync DrawablePtr pDraw);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef int (*GetStillFuncPtr) (ScrnInfoPtr pScrn, short vid_x, short vid_y,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync short drw_x, short drw_y, short vid_w,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync short vid_h, short drw_w, short drw_h,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync RegionPtr clipBoxes, void *data,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync DrawablePtr pDraw);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef void (*StopVideoFuncPtr) (ScrnInfoPtr pScrn, void *data, Bool Exit);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef int (*SetPortAttributeFuncPtr) (ScrnInfoPtr pScrn, Atom attribute,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync INT32 value, void *data);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef int (*GetPortAttributeFuncPtr) (ScrnInfoPtr pScrn, Atom attribute,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync INT32 *value, void *data);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef void (*QueryBestSizeFuncPtr) (ScrnInfoPtr pScrn, Bool motion,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync short vid_w, short vid_h, short drw_w,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync short drw_h, unsigned int *p_w,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync unsigned int *p_h, void *data);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef int (*PutImageFuncPtr) (ScrnInfoPtr pScrn, short src_x, short src_y,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync short drw_x, short drw_y, short src_w,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync short src_h, short drw_w, short drw_h,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int image, unsigned char *buf, short width,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync short height, Bool Sync, RegionPtr clipBoxes,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync void *data, DrawablePtr pDraw);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef int (*ReputImageFuncPtr) (ScrnInfoPtr pScrn, short src_x, short src_y,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync short drw_x, short drw_y, short src_w,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync short src_h, short drw_w, short drw_h,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync RegionPtr clipBoxes, void *data,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync DrawablePtr pDraw);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef int (*QueryImageAttributesFuncPtr) (ScrnInfoPtr pScrn, int image,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync unsigned short *width,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync unsigned short *height,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int *pitches, int *offsets);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef void (*ClipNotifyFuncPtr) (ScrnInfoPtr pScrn, void *data,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync WindowPtr window, int dx, int dy);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef enum {
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync XV_OFF,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync XV_PENDING,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync XV_ON
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync} XvStatus;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync/*** this is what the driver needs to fill out ***/
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef struct {
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int id;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync const char *name;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync unsigned short width, height;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync XvRationalRec rate;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync} XF86VideoEncodingRec, *XF86VideoEncodingPtr;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef struct {
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync char depth;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync short class;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync} XF86VideoFormatRec, *XF86VideoFormatPtr;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef struct {
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int flags;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int min_value;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int max_value;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync const char *name;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync} XF86AttributeRec, *XF86AttributePtr;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef struct {
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync unsigned int type;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int flags;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync const char *name;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int nEncodings;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync XF86VideoEncodingPtr pEncodings;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int nFormats;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync XF86VideoFormatPtr pFormats;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int nPorts;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync DevUnion *pPortPrivates;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int nAttributes;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync XF86AttributePtr pAttributes;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int nImages;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync XF86ImagePtr pImages;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync PutVideoFuncPtr PutVideo;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync PutStillFuncPtr PutStill;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync GetVideoFuncPtr GetVideo;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync GetStillFuncPtr GetStill;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync StopVideoFuncPtr StopVideo;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync SetPortAttributeFuncPtr SetPortAttribute;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync GetPortAttributeFuncPtr GetPortAttribute;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync QueryBestSizeFuncPtr QueryBestSize;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync PutImageFuncPtr PutImage;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync ReputImageFuncPtr ReputImage; /* image/still */
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync QueryImageAttributesFuncPtr QueryImageAttributes;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync ClipNotifyFuncPtr ClipNotify;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync} XF86VideoAdaptorRec, *XF86VideoAdaptorPtr;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef struct {
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync XF86ImagePtr image;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int flags;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int (*alloc_surface) (ScrnInfoPtr pScrn,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int id,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync unsigned short width,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync unsigned short height, XF86SurfacePtr surface);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int (*free_surface) (XF86SurfacePtr surface);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int (*display) (XF86SurfacePtr surface,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync short vid_x, short vid_y,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync short drw_x, short drw_y,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync short vid_w, short vid_h,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync short drw_w, short drw_h, RegionPtr clipBoxes);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int (*stop) (XF86SurfacePtr surface);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int (*getAttribute) (ScrnInfoPtr pScrn, Atom attr, INT32 *value);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int (*setAttribute) (ScrnInfoPtr pScrn, Atom attr, INT32 value);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int max_width;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int max_height;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int num_attributes;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync XF86AttributePtr attributes;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync} XF86OffscreenImageRec, *XF86OffscreenImagePtr;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern _X_EXPORT Bool
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync xf86XVScreenInit(ScreenPtr pScreen, XF86VideoAdaptorPtr * Adaptors, int num);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef int (*xf86XVInitGenericAdaptorPtr) (ScrnInfoPtr pScrn,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync XF86VideoAdaptorPtr ** Adaptors);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern _X_EXPORT int
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync xf86XVRegisterGenericAdaptorDriver(xf86XVInitGenericAdaptorPtr InitFunc);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern _X_EXPORT int
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync xf86XVListGenericAdaptors(ScrnInfoPtr pScrn, XF86VideoAdaptorPtr ** Adaptors);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern _X_EXPORT Bool
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncxf86XVRegisterOffscreenImages(ScreenPtr pScreen,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync XF86OffscreenImagePtr images, int num);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern _X_EXPORT XF86OffscreenImagePtr
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncxf86XVQueryOffscreenImages(ScreenPtr pScreen, int *num);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern _X_EXPORT XF86VideoAdaptorPtr xf86XVAllocateVideoAdaptorRec(ScrnInfoPtr
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync pScrn);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern _X_EXPORT void xf86XVFreeVideoAdaptorRec(XF86VideoAdaptorPtr ptr);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern _X_EXPORT void
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync xf86XVFillKeyHelper(ScreenPtr pScreen, CARD32 key, RegionPtr clipboxes);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern _X_EXPORT void
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncxf86XVFillKeyHelperDrawable(DrawablePtr pDraw, CARD32 key, RegionPtr clipboxes);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern _X_EXPORT void
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncxf86XVFillKeyHelperPort(DrawablePtr pDraw, void *data, CARD32 key,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync RegionPtr clipboxes, Bool fillEverything);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern _X_EXPORT Bool
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncxf86XVClipVideoHelper(BoxPtr dst,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync INT32 *xa,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync INT32 *xb,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync INT32 *ya,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync INT32 *yb, RegionPtr reg, INT32 width, INT32 height);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern _X_EXPORT void
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncxf86XVCopyYUV12ToPacked(const void *srcy,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync const void *srcv,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync const void *srcu,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync void *dst,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int srcPitchy,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int srcPitchuv, int dstPitch, int h, int w);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern _X_EXPORT void
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncxf86XVCopyPacked(const void *src,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync void *dst, int srcPitch, int dstPitch, int h, int w);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#endif /* _XF86XV_H_ */