~ubuntu-branches/ubuntu/precise/mesa-lts-quantal/precise-updates

« back to all changes in this revision

Viewing changes to src/gallium/state_trackers/va/va_private.h

  • Committer: Package Import Robot
  • Author(s): Maarten Lankhorst
  • Date: 2012-11-30 20:58:34 UTC
  • Revision ID: package-import@ubuntu.com-20121130205834-gazuvne3fpwlf012
Tags: upstream-9.0
Import upstream version 9.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/**************************************************************************
 
2
 *
 
3
 * Copyright 2010 Thomas Balling Sørensen & Orasanu Lucian.
 
4
 * All Rights Reserved.
 
5
 *
 
6
 * Permission is hereby granted, free of charge, to any person obtaining a
 
7
 * copy of this software and associated documentation files (the
 
8
 * "Software"), to deal in the Software without restriction, including
 
9
 * without limitation the rights to use, copy, modify, merge, publish,
 
10
 * distribute, sub license, and/or sell copies of the Software, and to
 
11
 * permit persons to whom the Software is furnished to do so, subject to
 
12
 * the following conditions:
 
13
 *
 
14
 * The above copyright notice and this permission notice (including the
 
15
 * next paragraph) shall be included in all copies or substantial portions
 
16
 * of the Software.
 
17
 *
 
18
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 
19
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 
20
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
 
21
 * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
 
22
 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
 
23
 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 
24
 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
25
 *
 
26
 **************************************************************************/
 
27
 
 
28
#ifndef VA_PRIVATE_H
 
29
#define VA_PRIVATE_H
 
30
 
 
31
#include <va/va.h>
 
32
#include <va/va_backend.h>
 
33
 
 
34
#include "pipe/p_format.h"
 
35
#include "pipe/p_state.h"
 
36
 
 
37
#define VA_DEBUG(_str,...) debug_printf("[Gallium VA backend]: " _str,__VA_ARGS__)
 
38
#define VA_INFO(_str,...) VA_DEBUG("INFO: " _str,__VA_ARGS__)
 
39
#define VA_WARNING(_str,...) VA_DEBUG("WARNING: " _str,__VA_ARGS__)
 
40
#define VA_ERROR(_str,...) VA_DEBUG("ERROR: " _str,__VA_ARGS__)
 
41
 
 
42
#define VA_MAX_IMAGE_FORMATS_SUPPORTED 2
 
43
#define VA_MAX_SUBPIC_FORMATS_SUPPORTED 2
 
44
#define VA_MAX_ENTRYPOINTS 1
 
45
 
 
46
#define VL_HANDLES
 
47
 
 
48
typedef struct {
 
49
   struct vl_screen *vscreen;
 
50
   struct pipe_surface *backbuffer;
 
51
} vlVaDriverContextPriv;
 
52
 
 
53
typedef struct {
 
54
   unsigned int width;
 
55
   unsigned int height;
 
56
   enum pipe_video_chroma_format format;
 
57
   VADriverContextP ctx;
 
58
} vlVaSurfacePriv;
 
59
 
 
60
// Public functions:
 
61
VAStatus __vaDriverInit_0_31 (VADriverContextP ctx);
 
62
 
 
63
// Private functions:
 
64
struct VADriverVTable vlVaGetVtable();
 
65
 
 
66
bool vlCreateHTAB(void);
 
67
void vlDestroyHTAB(void);
 
68
VAGenericID vlAddDataHTAB(void *data);
 
69
void* vlGetDataHTAB(VAGenericID handle);
 
70
 
 
71
// Vtable functions:
 
72
VAStatus vlVaTerminate (VADriverContextP ctx);
 
73
VAStatus vlVaQueryConfigProfiles (VADriverContextP ctx, VAProfile *profile_list,int *num_profiles);
 
74
VAStatus vlVaQueryConfigEntrypoints (VADriverContextP ctx, VAProfile profile, VAEntrypoint  *entrypoint_list, int *num_entrypoints);
 
75
VAStatus vlVaGetConfigAttributes (VADriverContextP ctx, VAProfile profile, VAEntrypoint entrypoint, VAConfigAttrib *attrib_list, int num_attribs);
 
76
VAStatus vlVaCreateConfig (VADriverContextP ctx, VAProfile profile, VAEntrypoint entrypoint, VAConfigAttrib *attrib_list, int num_attribs, VAConfigID *config_id);
 
77
VAStatus vlVaDestroyConfig (VADriverContextP ctx, VAConfigID config_id);
 
78
VAStatus vlVaQueryConfigAttributes (VADriverContextP ctx, VAConfigID config_id, VAProfile *profile, VAEntrypoint *entrypoint, VAConfigAttrib *attrib_list, int *num_attribs);
 
79
VAStatus vlVaCreateSurfaces (VADriverContextP ctx,int width,int height,int format,int num_surfaces,VASurfaceID *surfaces);
 
80
VAStatus vlVaDestroySurfaces (VADriverContextP ctx, VASurfaceID *surface_list, int num_surfaces);
 
81
VAStatus vlVaCreateContext (VADriverContextP ctx,VAConfigID config_id,int picture_width,int picture_height,int flag,VASurfaceID *render_targets,int num_render_targets,VAContextID *context);
 
82
VAStatus vlVaDestroyContext (VADriverContextP ctx,VAContextID context);
 
83
VAStatus vlVaCreateBuffer (VADriverContextP ctx,VAContextID context,VABufferType type,unsigned int size,unsigned int num_elements,void *data,VABufferID *buf_id);
 
84
VAStatus vlVaBufferSetNumElements (VADriverContextP ctx,VABufferID buf_id,unsigned int num_elements);
 
85
VAStatus vlVaMapBuffer (VADriverContextP ctx,VABufferID buf_id,void **pbuf);
 
86
VAStatus vlVaUnmapBuffer (VADriverContextP ctx,VABufferID buf_id);
 
87
VAStatus vlVaDestroyBuffer (VADriverContextP ctx,VABufferID buffer_id);
 
88
VAStatus vlVaBeginPicture (VADriverContextP ctx,VAContextID context,VASurfaceID render_target);
 
89
VAStatus vlVaRenderPicture (VADriverContextP ctx,VAContextID context,VABufferID *buffers,int num_buffers);
 
90
VAStatus vlVaEndPicture (VADriverContextP ctx,VAContextID context);
 
91
VAStatus vlVaSyncSurface (VADriverContextP ctx,VASurfaceID render_target);
 
92
VAStatus vlVaQuerySurfaceStatus (VADriverContextP ctx,VASurfaceID render_target,VASurfaceStatus *status);
 
93
VAStatus vlVaPutSurface (VADriverContextP ctx,
 
94
                         VASurfaceID surface,
 
95
                         void* draw,
 
96
                         short srcx,
 
97
                         short srcy,
 
98
                         unsigned short srcw,
 
99
                         unsigned short srch,
 
100
                         short destx,
 
101
                         short desty,
 
102
                         unsigned short destw,
 
103
                         unsigned short desth,
 
104
                         VARectangle *cliprects,
 
105
                         unsigned int number_cliprects,
 
106
                         unsigned int flags);
 
107
VAStatus vlVaQueryImageFormats (VADriverContextP ctx,VAImageFormat *format_list,int *num_formats);
 
108
VAStatus vlVaQuerySubpictureFormats(VADriverContextP ctx,VAImageFormat *format_list,unsigned int *flags,unsigned int *num_formats);
 
109
VAStatus vlVaCreateImage(VADriverContextP ctx,VAImageFormat *format,int width,int height,VAImage *image);
 
110
VAStatus vlVaDeriveImage(VADriverContextP ctx,VASurfaceID surface,VAImage *image);
 
111
VAStatus vlVaDestroyImage(VADriverContextP ctx,VAImageID image);
 
112
VAStatus vlVaSetImagePalette(VADriverContextP ctx,VAImageID image, unsigned char *palette);
 
113
VAStatus vlVaGetImage(VADriverContextP ctx,VASurfaceID surface,int x,int y,unsigned int width,unsigned int height,VAImageID image);
 
114
VAStatus vlVaPutImage(VADriverContextP ctx,
 
115
                      VASurfaceID surface,
 
116
                      VAImageID image,
 
117
                      int src_x,
 
118
                      int src_y,
 
119
                      unsigned int src_width,
 
120
                      unsigned int src_height,
 
121
                      int dest_x,
 
122
                      int dest_y,
 
123
                      unsigned int dest_width,
 
124
                      unsigned int dest_height);
 
125
VAStatus vlVaQuerySubpictureFormats(VADriverContextP ctx,VAImageFormat *format_list,unsigned int *flags,unsigned int *num_formats);
 
126
VAStatus vlVaCreateSubpicture(VADriverContextP ctx,VAImageID image,VASubpictureID *subpicture);
 
127
VAStatus vlVaDestroySubpicture(VADriverContextP ctx,VASubpictureID subpicture);
 
128
VAStatus vlVaSubpictureImage(VADriverContextP ctx,VASubpictureID subpicture,VAImageID image);
 
129
VAStatus vlVaSetSubpictureChromakey(VADriverContextP ctx,VASubpictureID subpicture,unsigned int chromakey_min,unsigned int chromakey_max,unsigned int chromakey_mask);
 
130
VAStatus vlVaSetSubpictureGlobalAlpha(VADriverContextP ctx,VASubpictureID subpicture,float global_alpha);
 
131
VAStatus vlVaAssociateSubpicture(VADriverContextP ctx,
 
132
                                 VASubpictureID subpicture,
 
133
                                 VASurfaceID *target_surfaces,
 
134
                                 int num_surfaces,
 
135
                                 short src_x,
 
136
                                 short src_y,
 
137
                                 unsigned short src_width,
 
138
                                 unsigned short src_height,
 
139
                                 short dest_x,
 
140
                                 short dest_y,
 
141
                                 unsigned short dest_width,
 
142
                                 unsigned short dest_height,
 
143
                                 unsigned int flags);
 
144
VAStatus vlVaDeassociateSubpicture(VADriverContextP ctx,VASubpictureID subpicture,VASurfaceID *target_surfaces,int num_surfaces);
 
145
VAStatus vlVaQueryDisplayAttributes(VADriverContextP ctx,VADisplayAttribute *attr_list,int *num_attributes);
 
146
VAStatus vlVaGetDisplayAttributes(VADriverContextP ctx,VADisplayAttribute *attr_list,int num_attributes);
 
147
VAStatus vlVaSetDisplayAttributes(VADriverContextP ctx,VADisplayAttribute *attr_list,int num_attributes);
 
148
VAStatus vlVaBufferInfo(VADriverContextP ctx,VAContextID context,VABufferID buf_id,VABufferType *type,unsigned int *size,unsigned int *num_elements);
 
149
VAStatus vlVaLockSurface(VADriverContextP ctx,
 
150
                         VASurfaceID surface,
 
151
                         unsigned int *fourcc,
 
152
                         unsigned int *luma_stride,
 
153
                         unsigned int *chroma_u_stride,
 
154
                         unsigned int *chroma_v_stride,
 
155
                         unsigned int *luma_offset,
 
156
                         unsigned int *chroma_u_offset,
 
157
                         unsigned int *chroma_v_offset,
 
158
                         unsigned int *buffer_name,
 
159
                         void **buffer);
 
160
VAStatus vlVaUnlockSurface(VADriverContextP ctx,VASurfaceID surface);
 
161
 
 
162
#endif //VA_PRIVATE_H