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_FUNC(trace_func,...) \ 45 if (trace_flag) { \ 46 trace_func(__VA_ARGS__); \ 47 } 48 #define VA_TRACE_LOG(trace_func,...) \ 49 if (trace_flag & VA_TRACE_FLAG_LOG) { \ 50 trace_func(__VA_ARGS__); \ 51 } 52 #define VA_TRACE_SURFACE(trace_func,...) \ 53 if (trace_flag & (VA_TRACE_FLAG_SURFACE | VA_TRACE_FLAG_CODEDBUF)) { \ 54 trace_func(__VA_ARGS__); \ 55 } 56 57 void va_TraceInit(VADisplay dpy); 58 void va_TraceEnd(VADisplay dpy); 59 60 void va_TraceMsg(int idx, const char *msg, ...); 61 62 void va_TraceInitialize ( 63 VADisplay dpy, 64 int *major_version, /* out */ 65 int *minor_version /* out */ 66 ); 67 68 void va_TraceTerminate ( 69 VADisplay dpy 70 ); 71 72 void va_TraceCreateConfig( 73 VADisplay dpy, 74 VAProfile profile, 75 VAEntrypoint entrypoint, 76 VAConfigAttrib *attrib_list, 77 int num_attribs, 78 VAConfigID *config_id /* out */ 79 ); 80 81 void va_TraceCreateSurface( 82 VADisplay dpy, 83 int width, 84 int height, 85 int format, 86 int num_surfaces, 87 VASurfaceID *surfaces /* out */ 88 ); 89 90 void va_TraceCreateContext( 91 VADisplay dpy, 92 VAConfigID config_id, 93 int picture_width, 94 int picture_height, 95 int flag, 96 VASurfaceID *render_targets, 97 int num_render_targets, 98 VAContextID *context /* out */ 99 ); 100 101 102 void va_TraceMapBuffer ( 103 VADisplay dpy, 104 VABufferID buf_id, /* in */ 105 void **pbuf /* out */ 106 ); 107 108 109 void va_TraceBeginPicture( 110 VADisplay dpy, 111 VAContextID context, 112 VASurfaceID render_target 113 ); 114 115 void va_TraceRenderPicture( 116 VADisplay dpy, 117 VAContextID context, 118 VABufferID *buffers, 119 int num_buffers 120 ); 121 122 void va_TraceEndPicture( 123 VADisplay dpy, 124 VAContextID context, 125 int endpic_done 126 ); 127 128 void va_TraceSyncSurface( 129 VADisplay dpy, 130 VASurfaceID render_target 131 ); 132 133 void va_TraceQuerySurfaceStatus( 134 VADisplay dpy, 135 VASurfaceID render_target, 136 VASurfaceStatus *status /* out */ 137 ); 138 139 void va_TraceQuerySurfaceError( 140 VADisplay dpy, 141 VASurfaceID surface, 142 VAStatus error_status, 143 void **error_info /*out*/ 144 ); 145 146 147 void va_TraceMaxNumDisplayAttributes ( 148 VADisplay dpy, 149 int number 150 ); 151 152 void va_TraceQueryDisplayAttributes ( 153 VADisplay dpy, 154 VADisplayAttribute *attr_list, /* out */ 155 int *num_attributes /* out */ 156 ); 157 158 void va_TraceGetDisplayAttributes ( 159 VADisplay dpy, 160 VADisplayAttribute *attr_list, 161 int num_attributes 162 ); 163 164 void va_TraceSetDisplayAttributes ( 165 VADisplay dpy, 166 VADisplayAttribute *attr_list, 167 int num_attributes 168 ); 169 170 /* extern function called by display side */ 171 void va_TracePutSurface ( 172 VADisplay dpy, 173 VASurfaceID surface, 174 void *draw, /* the target Drawable */ 175 short srcx, 176 short srcy, 177 unsigned short srcw, 178 unsigned short srch, 179 short destx, 180 short desty, 181 unsigned short destw, 182 unsigned short desth, 183 VARectangle *cliprects, /* client supplied clip list */ 184 unsigned int number_cliprects, /* number of clip rects in the clip list */ 185 unsigned int flags /* de-interlacing flags */ 186 ); 187 188 #ifdef __cplusplus 189 } 190 #endif 191 192 193 #endif /* VA_TRACE_H */ 194