via_xvmc.h revision 7e6fb56f
17e6fb56fSmrg/***************************************************************************** 27e6fb56fSmrg * VIA Unichrome XvMC extension X server driver. 37e6fb56fSmrg * 47e6fb56fSmrg * Copyright (c) 2004 The Unichrome project. All rights reserved. 57e6fb56fSmrg * 67e6fb56fSmrg * Permission is hereby granted, free of charge, to any person obtaining a 77e6fb56fSmrg * copy of this software and associated documentation files (the "Software"), 87e6fb56fSmrg * to deal in the Software without restriction, including without limitation 97e6fb56fSmrg * the rights to use, copy, modify, merge, publish, distribute, sublicense, 107e6fb56fSmrg * and/or sell copies of the Software, and to permit persons to whom the 117e6fb56fSmrg * Software is furnished to do so, subject to the following conditions: 127e6fb56fSmrg * 137e6fb56fSmrg * The above copyright notice and this permission notice shall be included in 147e6fb56fSmrg * all copies or substantial portions of the Software. 157e6fb56fSmrg * 167e6fb56fSmrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 177e6fb56fSmrg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 187e6fb56fSmrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 197e6fb56fSmrg * AUTHOR(S) OR COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 207e6fb56fSmrg * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 217e6fb56fSmrg * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 227e6fb56fSmrg * DEALINGS IN THE SOFTWARE. 237e6fb56fSmrg * 247e6fb56fSmrg */ 257e6fb56fSmrg 267e6fb56fSmrg#ifndef _VIA_XVMC_H 277e6fb56fSmrg#define _VIA_XVMC_H 1 287e6fb56fSmrg 297e6fb56fSmrg#include "via_drm.h" 307e6fb56fSmrg 317e6fb56fSmrg/* 327e6fb56fSmrg * This file contains the common definitions between the XvMC lib and the 337e6fb56fSmrg * X server side. It is referenced also by the XvMC lib. Make sure any 347e6fb56fSmrg * structure change is reflected also in a change in minor version number!! 357e6fb56fSmrg */ 367e6fb56fSmrg 377e6fb56fSmrg#define VIAXVMC_MAJOR 0 387e6fb56fSmrg#define VIAXVMC_MINOR 10 397e6fb56fSmrg#define VIAXVMC_PL 0 407e6fb56fSmrg#define VIA_NUM_XVMC_ATTRIBUTES 6 417e6fb56fSmrg#define VIA_XVMC_VALID 0x80000000 427e6fb56fSmrg 437e6fb56fSmrg/* 447e6fb56fSmrg * Commands that client submits through XvPutImage: 457e6fb56fSmrg */ 467e6fb56fSmrg 477e6fb56fSmrg#define VIA_XVMC_COMMAND_FDISPLAY 0 487e6fb56fSmrg#define VIA_XVMC_COMMAND_DISPLAY 1 497e6fb56fSmrg#define VIA_XVMC_COMMAND_UNDISPLAY 2 507e6fb56fSmrg#define VIA_XVMC_COMMAND_ATTRIBUTES 3 517e6fb56fSmrg 527e6fb56fSmrgtypedef drm_via_sarea_t ViaXvMCSAreaPriv; 537e6fb56fSmrg 547e6fb56fSmrgtypedef struct 557e6fb56fSmrg{ 567e6fb56fSmrg INT32 attribute; 577e6fb56fSmrg INT32 value; 587e6fb56fSmrg} ViaAttrPair; 597e6fb56fSmrg 607e6fb56fSmrgtypedef struct 617e6fb56fSmrg{ 627e6fb56fSmrg unsigned numAttr; 637e6fb56fSmrg ViaAttrPair attributes[VIA_NUM_XVMC_ATTRIBUTES]; 647e6fb56fSmrg} ViaXvMCAttrHolder; 657e6fb56fSmrg 667e6fb56fSmrg/* 677e6fb56fSmrg * Passed from client to X server during overlay updates. 687e6fb56fSmrg */ 697e6fb56fSmrg 707e6fb56fSmrgtypedef struct 717e6fb56fSmrg{ 727e6fb56fSmrg unsigned command; 737e6fb56fSmrg unsigned ctxNo; 747e6fb56fSmrg unsigned srfNo; 757e6fb56fSmrg unsigned subPicNo; 767e6fb56fSmrg ViaXvMCAttrHolder attrib; 777e6fb56fSmrg unsigned pad; 787e6fb56fSmrg} ViaXvMCCommandBuffer; 797e6fb56fSmrg 807e6fb56fSmrg/* 817e6fb56fSmrg * Passed from X server to client at context creation. 827e6fb56fSmrg */ 837e6fb56fSmrg 847e6fb56fSmrgtypedef struct 857e6fb56fSmrg{ 867e6fb56fSmrg unsigned int ctxNo; 877e6fb56fSmrg unsigned int major, minor, pl; 887e6fb56fSmrg unsigned xvmc_port; 897e6fb56fSmrg unsigned int fbOffset; 907e6fb56fSmrg unsigned int fbSize; 917e6fb56fSmrg unsigned int mmioOffset; 927e6fb56fSmrg unsigned int mmioSize; 937e6fb56fSmrg unsigned int sAreaSize; 947e6fb56fSmrg unsigned int sAreaPrivOffset; 957e6fb56fSmrg ViaXvMCAttrHolder initAttrs; 967e6fb56fSmrg int useAGP; 977e6fb56fSmrg unsigned int chipId; 987e6fb56fSmrg unsigned int screen; 997e6fb56fSmrg unsigned int depth; 1007e6fb56fSmrg unsigned int stride; 1017e6fb56fSmrg unsigned int pad; 1027e6fb56fSmrg} ViaXvMCCreateContextRec; 1037e6fb56fSmrg 1047e6fb56fSmrg#endif 105