via_xvmc.h revision 7e6fb56f
16086d97eSmrg/*****************************************************************************
2fc5a983dSmrg * VIA Unichrome XvMC extension X server driver.
3fc5a983dSmrg *
471ba42d0Smrg * Copyright (c) 2004 The Unichrome project. All rights reserved.
5fc5a983dSmrg *
6fc5a983dSmrg * Permission is hereby granted, free of charge, to any person obtaining a
7fc5a983dSmrg * copy of this software and associated documentation files (the "Software"),
8fc5a983dSmrg * to deal in the Software without restriction, including without limitation
9fc5a983dSmrg * the rights to use, copy, modify, merge, publish, distribute, sublicense,
10fc5a983dSmrg * and/or sell copies of the Software, and to permit persons to whom the
11fc5a983dSmrg * Software is furnished to do so, subject to the following conditions:
12fc5a983dSmrg *
13fc5a983dSmrg * The above copyright notice and this permission notice shall be included in
14fc5a983dSmrg * all copies or substantial portions of the Software.
15fc5a983dSmrg *
166086d97eSmrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
176086d97eSmrg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18fc5a983dSmrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19fc5a983dSmrg * AUTHOR(S) OR COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20fc5a983dSmrg * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21fc5a983dSmrg * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22fc5a983dSmrg * DEALINGS IN THE SOFTWARE.
23f3561b8bSmrg *
24f3561b8bSmrg */
25f3561b8bSmrg
26f3561b8bSmrg#ifndef _VIA_XVMC_H
27f3561b8bSmrg#define _VIA_XVMC_H 1
28f3561b8bSmrg
29f3561b8bSmrg#include "via_drm.h"
30f3561b8bSmrg
31f3561b8bSmrg/*
32f3561b8bSmrg * This file contains the common definitions between the XvMC lib and the
33f3561b8bSmrg * X server side. It is referenced also by the XvMC lib. Make sure any
34f3561b8bSmrg * structure change is reflected also in a change in minor version number!!
35f3561b8bSmrg */
36f3561b8bSmrg
37f3561b8bSmrg#define VIAXVMC_MAJOR 0
38f3561b8bSmrg#define VIAXVMC_MINOR 10
39f3561b8bSmrg#define VIAXVMC_PL    0
40f3561b8bSmrg#define VIA_NUM_XVMC_ATTRIBUTES 6
41f3561b8bSmrg#define VIA_XVMC_VALID 0x80000000
42f3561b8bSmrg
43f3561b8bSmrg/*
44f3561b8bSmrg * Commands that client submits through XvPutImage:
45f3561b8bSmrg */
46f3561b8bSmrg
47f3561b8bSmrg#define VIA_XVMC_COMMAND_FDISPLAY 0
48f3561b8bSmrg#define VIA_XVMC_COMMAND_DISPLAY 1
49f3561b8bSmrg#define VIA_XVMC_COMMAND_UNDISPLAY 2
50f3561b8bSmrg#define VIA_XVMC_COMMAND_ATTRIBUTES 3
51f3561b8bSmrg
52f3561b8bSmrgtypedef drm_via_sarea_t ViaXvMCSAreaPriv;
53f3561b8bSmrg
54f3561b8bSmrgtypedef struct
55f3561b8bSmrg{
56f3561b8bSmrg    INT32 attribute;
57f3561b8bSmrg    INT32 value;
58f3561b8bSmrg} ViaAttrPair;
59f3561b8bSmrg
60fc5a983dSmrgtypedef struct
61f3561b8bSmrg{
62fc5a983dSmrg    unsigned numAttr;
63fc5a983dSmrg    ViaAttrPair attributes[VIA_NUM_XVMC_ATTRIBUTES];
64f3561b8bSmrg} ViaXvMCAttrHolder;
65f3561b8bSmrg
66f3561b8bSmrg/*
67f3561b8bSmrg * Passed from client to X server during overlay updates.
68f3561b8bSmrg */
69f3561b8bSmrg
70f3561b8bSmrgtypedef struct
71f3561b8bSmrg{
72f3561b8bSmrg    unsigned command;
73fc5a983dSmrg    unsigned ctxNo;
74fc5a983dSmrg    unsigned srfNo;
75f3561b8bSmrg    unsigned subPicNo;
76f3561b8bSmrg    ViaXvMCAttrHolder attrib;
77f3561b8bSmrg    unsigned pad;
78f3561b8bSmrg} ViaXvMCCommandBuffer;
79f3561b8bSmrg
80f3561b8bSmrg/*
81f3561b8bSmrg * Passed from X server to client at context creation.
82f3561b8bSmrg */
83f3561b8bSmrg
84f3561b8bSmrgtypedef struct
85f3561b8bSmrg{
86f3561b8bSmrg    unsigned int ctxNo;
87f3561b8bSmrg    unsigned int major, minor, pl;
88f3561b8bSmrg    unsigned xvmc_port;
89f3561b8bSmrg    unsigned int fbOffset;
90f3561b8bSmrg    unsigned int fbSize;
91f3561b8bSmrg    unsigned int mmioOffset;
92f3561b8bSmrg    unsigned int mmioSize;
93f3561b8bSmrg    unsigned int sAreaSize;
94f3561b8bSmrg    unsigned int sAreaPrivOffset;
95f3561b8bSmrg    ViaXvMCAttrHolder initAttrs;
96f3561b8bSmrg    int useAGP;
97f3561b8bSmrg    unsigned int chipId;
98f3561b8bSmrg    unsigned int screen;
99f3561b8bSmrg    unsigned int depth;
100f3561b8bSmrg    unsigned int stride;
101f3561b8bSmrg    unsigned int pad;
102f3561b8bSmrg} ViaXvMCCreateContextRec;
103f3561b8bSmrg
104f3561b8bSmrg#endif
105f3561b8bSmrg