1 /* 2 * Copyright (c) 2009 Intel Corporation. All Rights Reserved. 3 * 4 * Permission is hereby granted, free of charge, to any person obtaining a 5 * copy of this software and associated documentation files (the 6 * "Software"), to deal in the Software without restriction, including 7 * without limitation the rights to use, copy, modify, merge, publish, 8 * distribute, sub license, and/or sell copies of the Software, and to 9 * permit persons to whom the Software is furnished to do so, subject to 10 * the following conditions: 11 * 12 * The above copyright notice and this permission notice (including the 13 * next paragraph) shall be included in all copies or substantial portions 14 * of the Software. 15 * 16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 17 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 19 * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR 20 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 21 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 22 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 */ 24 25 #ifndef VA_TRACE_H 26 #define VA_TRACE_H 27 28 #ifdef __cplusplus 29 extern "C" { 30 #endif 31 32 extern int trace_flag; 33 34 #define VA_TRACE_FLAG_LOG 0x1 35 #define VA_TRACE_FLAG_BUFDATA 0x2 36 #define VA_TRACE_FLAG_CODEDBUF 0x4 37 #define VA_TRACE_FLAG_SURFACE_DECODE 0x8 38 #define VA_TRACE_FLAG_SURFACE_ENCODE 0x10 39 #define VA_TRACE_FLAG_SURFACE_JPEG 0x20 40 #define VA_TRACE_FLAG_SURFACE (VA_TRACE_FLAG_SURFACE_DECODE | \ 41 VA_TRACE_FLAG_SURFACE_ENCODE | \ 42 VA_TRACE_FLAG_SURFACE_JPEG) 43 44 #define VA_TRACE_LOG(trace_func,...) \ 45 if (trace_flag & VA_TRACE_FLAG_LOG) { \ 46 trace_func(__VA_ARGS__); \ 47 } 48 #define VA_TRACE_SURFACE(trace_func,...) \ 49 if (trace_flag & (VA_TRACE_FLAG_SURFACE | VA_TRACE_FLAG_CODEDBUF)) { \ 50 trace_func(__VA_ARGS__); \ 51 } 52 53 void va_TraceInit(VADisplay dpy); 54 void va_TraceEnd(VADisplay dpy); 55 56 void va_TraceMsg(int idx, const char *msg, ...); 57 58 void va_TraceInitialize ( 59 VADisplay dpy, 60 int *major_version, /* out */ 61 int *minor_version /* out */ 62 ); 63 64 void va_TraceTerminate ( 65 VADisplay dpy 66 ); 67 68 void va_TraceCreateConfig( 69 VADisplay dpy, 70 VAProfile profile, 71 VAEntrypoint entrypoint, 72 VAConfigAttrib *attrib_list, 73 int num_attribs, 74 VAConfigID *config_id /* out */ 75 ); 76 77 void va_TraceCreateSurfaces( 78 VADisplay dpy, 79 int width, 80 int height, 81 int format, 82 int num_surfaces, 83 VASurfaceID *surfaces, /* out */ 84 VASurfaceAttrib *attrib_list, 85 unsigned int num_attribs 86 ); 87 88 void va_TraceCreateContext( 89 VADisplay dpy, 90 VAConfigID config_id, 91 int picture_width, 92 int picture_height, 93 int flag, 94 VASurfaceID *render_targets, 95 int num_render_targets, 96 VAContextID *context /* out */ 97 ); 98 99 void va_TraceCreateBuffer ( 100 VADisplay dpy, 101 VAContextID context, /* in */ 102 VABufferType type, /* in */ 103 unsigned int size, /* in */ 104 unsigned int num_elements, /* in */ 105 void *data, /* in */ 106 VABufferID *buf_id /* out */ 107 ); 108 109 void va_TraceDestroyBuffer ( 110 VADisplay dpy, 111 VABufferID buf_id /* in */ 112 ); 113 114 void va_TraceMapBuffer ( 115 VADisplay dpy, 116 VABufferID buf_id, /* in */ 117 void **pbuf /* out */ 118 ); 119 120 121 void va_TraceBeginPicture( 122 VADisplay dpy, 123 VAContextID context, 124 VASurfaceID render_target 125 ); 126 127 void va_TraceRenderPicture( 128 VADisplay dpy, 129 VAContextID context, 130 VABufferID *buffers, 131 int num_buffers 132 ); 133 134 void va_TraceEndPicture( 135 VADisplay dpy, 136 VAContextID context, 137 int endpic_done 138 ); 139 140 void va_TraceSyncSurface( 141 VADisplay dpy, 142 VASurfaceID render_target 143 ); 144 145 void va_TraceQuerySurfaceStatus( 146 VADisplay dpy, 147 VASurfaceID render_target, 148 VASurfaceStatus *status /* out */ 149 ); 150 151 void va_TraceQuerySurfaceError( 152 VADisplay dpy, 153 VASurfaceID surface, 154 VAStatus error_status, 155 void **error_info /*out*/ 156 ); 157 158 159 void va_TraceMaxNumDisplayAttributes ( 160 VADisplay dpy, 161 int number 162 ); 163 164 void va_TraceQueryDisplayAttributes ( 165 VADisplay dpy, 166 VADisplayAttribute *attr_list, /* out */ 167 int *num_attributes /* out */ 168 ); 169 170 void va_TraceGetDisplayAttributes ( 171 VADisplay dpy, 172 VADisplayAttribute *attr_list, 173 int num_attributes 174 ); 175 176 void va_TraceSetDisplayAttributes ( 177 VADisplay dpy, 178 VADisplayAttribute *attr_list, 179 int num_attributes 180 ); 181 182 /* extern function called by display side */ 183 void va_TracePutSurface ( 184 VADisplay dpy, 185 VASurfaceID surface, 186 void *draw, /* the target Drawable */ 187 short srcx, 188 short srcy, 189 unsigned short srcw, 190 unsigned short srch, 191 short destx, 192 short desty, 193 unsigned short destw, 194 unsigned short desth, 195 VARectangle *cliprects, /* client supplied clip list */ 196 unsigned int number_cliprects, /* number of clip rects in the clip list */ 197 unsigned int flags /* de-interlacing flags */ 198 ); 199 200 #ifdef __cplusplus 201 } 202 #endif 203 204 205 #endif /* VA_TRACE_H */ 206