va_trace.c revision b0fac498ca4863166252f1268fda83394db54153
1b0fac498ca4863166252f1268fda83394db54153Fei Jiang/* 2b0fac498ca4863166252f1268fda83394db54153Fei Jiang * Copyright (c) 2009 Intel Corporation. All Rights Reserved. 3b0fac498ca4863166252f1268fda83394db54153Fei Jiang * 4b0fac498ca4863166252f1268fda83394db54153Fei Jiang * Permission is hereby granted, free of charge, to any person obtaining a 5b0fac498ca4863166252f1268fda83394db54153Fei Jiang * copy of this software and associated documentation files (the 6b0fac498ca4863166252f1268fda83394db54153Fei Jiang * "Software"), to deal in the Software without restriction, including 7b0fac498ca4863166252f1268fda83394db54153Fei Jiang * without limitation the rights to use, copy, modify, merge, publish, 8b0fac498ca4863166252f1268fda83394db54153Fei Jiang * distribute, sub license, and/or sell copies of the Software, and to 9b0fac498ca4863166252f1268fda83394db54153Fei Jiang * permit persons to whom the Software is furnished to do so, subject to 10b0fac498ca4863166252f1268fda83394db54153Fei Jiang * the following conditions: 11b0fac498ca4863166252f1268fda83394db54153Fei Jiang * 12b0fac498ca4863166252f1268fda83394db54153Fei Jiang * The above copyright notice and this permission notice (including the 13b0fac498ca4863166252f1268fda83394db54153Fei Jiang * next paragraph) shall be included in all copies or substantial portions 14b0fac498ca4863166252f1268fda83394db54153Fei Jiang * of the Software. 15b0fac498ca4863166252f1268fda83394db54153Fei Jiang * 16b0fac498ca4863166252f1268fda83394db54153Fei Jiang * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 17b0fac498ca4863166252f1268fda83394db54153Fei Jiang * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18b0fac498ca4863166252f1268fda83394db54153Fei Jiang * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 19b0fac498ca4863166252f1268fda83394db54153Fei Jiang * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR 20b0fac498ca4863166252f1268fda83394db54153Fei Jiang * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 21b0fac498ca4863166252f1268fda83394db54153Fei Jiang * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 22b0fac498ca4863166252f1268fda83394db54153Fei Jiang * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23b0fac498ca4863166252f1268fda83394db54153Fei Jiang */ 24b0fac498ca4863166252f1268fda83394db54153Fei Jiang 25b0fac498ca4863166252f1268fda83394db54153Fei Jiang#define _GNU_SOURCE 1 26b0fac498ca4863166252f1268fda83394db54153Fei Jiang#include "va.h" 27b0fac498ca4863166252f1268fda83394db54153Fei Jiang#include "va_backend.h" 28b0fac498ca4863166252f1268fda83394db54153Fei Jiang 29b0fac498ca4863166252f1268fda83394db54153Fei Jiang#include <assert.h> 30b0fac498ca4863166252f1268fda83394db54153Fei Jiang#include <stdarg.h> 31b0fac498ca4863166252f1268fda83394db54153Fei Jiang#include <stdlib.h> 32b0fac498ca4863166252f1268fda83394db54153Fei Jiang#include <stdio.h> 33b0fac498ca4863166252f1268fda83394db54153Fei Jiang#include <string.h> 34b0fac498ca4863166252f1268fda83394db54153Fei Jiang#include <dlfcn.h> 35b0fac498ca4863166252f1268fda83394db54153Fei Jiang#include <unistd.h> 36b0fac498ca4863166252f1268fda83394db54153Fei Jiang 37b0fac498ca4863166252f1268fda83394db54153Fei Jiangunsigned int trace_flag = 0; 38b0fac498ca4863166252f1268fda83394db54153Fei Jiang 39b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic const char *trace_file = 0; 40b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic FILE *trace_fp = 0; 41b0fac498ca4863166252f1268fda83394db54153Fei Jiang 42b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic VASurfaceID trace_rendertarget; /* current render target */ 43b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic VAProfile trace_profile; /* current entrypoint for buffers */ 44b0fac498ca4863166252f1268fda83394db54153Fei Jiang 45b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic unsigned int trace_frame; 46b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic unsigned int trace_slice; 47b0fac498ca4863166252f1268fda83394db54153Fei Jiang 48b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic unsigned int trace_width; 49b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic unsigned int trace_height; 50b0fac498ca4863166252f1268fda83394db54153Fei Jiang 51b0fac498ca4863166252f1268fda83394db54153Fei Jiangint va_TraceInit(void) 52b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 53b0fac498ca4863166252f1268fda83394db54153Fei Jiang trace_file = (const char *)getenv("LIBVA_TRACE"); 54b0fac498ca4863166252f1268fda83394db54153Fei Jiang if (trace_file) { 55b0fac498ca4863166252f1268fda83394db54153Fei Jiang trace_fp = fopen(trace_file, "w"); 56b0fac498ca4863166252f1268fda83394db54153Fei Jiang if (trace_fp) 57b0fac498ca4863166252f1268fda83394db54153Fei Jiang trace_flag = 1; 58b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 59b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 60b0fac498ca4863166252f1268fda83394db54153Fei Jiang 61b0fac498ca4863166252f1268fda83394db54153Fei Jiangint va_TraceEnd(void) 62b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 63b0fac498ca4863166252f1268fda83394db54153Fei Jiang if (trace_file && trace_fp) { 64b0fac498ca4863166252f1268fda83394db54153Fei Jiang fclose(trace_fp); 65b0fac498ca4863166252f1268fda83394db54153Fei Jiang 66b0fac498ca4863166252f1268fda83394db54153Fei Jiang trace_file = NULL; 67b0fac498ca4863166252f1268fda83394db54153Fei Jiang trace_fp = NULL; 68b0fac498ca4863166252f1268fda83394db54153Fei Jiang 69b0fac498ca4863166252f1268fda83394db54153Fei Jiang trace_flag = 0; 70b0fac498ca4863166252f1268fda83394db54153Fei Jiang 71b0fac498ca4863166252f1268fda83394db54153Fei Jiang trace_width = 0; 72b0fac498ca4863166252f1268fda83394db54153Fei Jiang trace_height = 0; 73b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 74b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 75b0fac498ca4863166252f1268fda83394db54153Fei Jiang 76b0fac498ca4863166252f1268fda83394db54153Fei Jiangint va_TraceMsg(const char *msg, ...) 77b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 78b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_list args; 79b0fac498ca4863166252f1268fda83394db54153Fei Jiang 80b0fac498ca4863166252f1268fda83394db54153Fei Jiang if (msg) { 81b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_start(args, msg); 82b0fac498ca4863166252f1268fda83394db54153Fei Jiang vfprintf(trace_fp, msg, args); 83b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_end(args); 84b0fac498ca4863166252f1268fda83394db54153Fei Jiang } else { 85b0fac498ca4863166252f1268fda83394db54153Fei Jiang fflush(trace_fp); 86b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 87b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 88b0fac498ca4863166252f1268fda83394db54153Fei Jiang 89b0fac498ca4863166252f1268fda83394db54153Fei Jiang 90b0fac498ca4863166252f1268fda83394db54153Fei Jiangint va_TraceCreateConfig( 91b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 92b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAProfile profile, 93b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAEntrypoint entrypoint, 94b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAConfigAttrib *attrib_list, 95b0fac498ca4863166252f1268fda83394db54153Fei Jiang int num_attribs, 96b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAConfigID *config_id /* out */ 97b0fac498ca4863166252f1268fda83394db54153Fei Jiang ) 98b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 99b0fac498ca4863166252f1268fda83394db54153Fei Jiang int i; 100b0fac498ca4863166252f1268fda83394db54153Fei Jiang 101b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tprofile = %d\n", profile); 102b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tentrypoint = %d\n", entrypoint); 103b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tnum_attribs = %d\n", num_attribs); 104b0fac498ca4863166252f1268fda83394db54153Fei Jiang for (i = 0; i < num_attribs; i++) { 105b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\t\tattrib_list[%d].type = 0x%08x\n", i, attrib_list[i].type); 106b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\t\tattrib_list[%d].value = 0x%08x\n", i, attrib_list[i].value); 107b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 108b0fac498ca4863166252f1268fda83394db54153Fei Jiang 109b0fac498ca4863166252f1268fda83394db54153Fei Jiang trace_profile = profile; 110b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 111b0fac498ca4863166252f1268fda83394db54153Fei Jiang 112b0fac498ca4863166252f1268fda83394db54153Fei Jiang 113b0fac498ca4863166252f1268fda83394db54153Fei Jiangint va_TraceCreateSurface( 114b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 115b0fac498ca4863166252f1268fda83394db54153Fei Jiang int width, 116b0fac498ca4863166252f1268fda83394db54153Fei Jiang int height, 117b0fac498ca4863166252f1268fda83394db54153Fei Jiang int format, 118b0fac498ca4863166252f1268fda83394db54153Fei Jiang int num_surfaces, 119b0fac498ca4863166252f1268fda83394db54153Fei Jiang VASurfaceID *surfaces /* out */ 120b0fac498ca4863166252f1268fda83394db54153Fei Jiang ) 121b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 122b0fac498ca4863166252f1268fda83394db54153Fei Jiang int i; 123b0fac498ca4863166252f1268fda83394db54153Fei Jiang 124b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\twidth = %d\n", width); 125b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\theight = %d\n", height); 126b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tformat = %d\n", format); 127b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tnum_surfaces = %d\n", num_surfaces); 128b0fac498ca4863166252f1268fda83394db54153Fei Jiang 129b0fac498ca4863166252f1268fda83394db54153Fei Jiang for (i = 0; i < num_surfaces; i++) 130b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\t\tsurfaces[%d] = 0x%08x\n", i, surfaces[i]); 131b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 132b0fac498ca4863166252f1268fda83394db54153Fei Jiang 133b0fac498ca4863166252f1268fda83394db54153Fei Jiang 134b0fac498ca4863166252f1268fda83394db54153Fei Jiangint va_TraceCreateContext( 135b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 136b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAConfigID config_id, 137b0fac498ca4863166252f1268fda83394db54153Fei Jiang int picture_width, 138b0fac498ca4863166252f1268fda83394db54153Fei Jiang int picture_height, 139b0fac498ca4863166252f1268fda83394db54153Fei Jiang int flag, 140b0fac498ca4863166252f1268fda83394db54153Fei Jiang VASurfaceID *render_targets, 141b0fac498ca4863166252f1268fda83394db54153Fei Jiang int num_render_targets, 142b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID *context /* out */ 143b0fac498ca4863166252f1268fda83394db54153Fei Jiang ) 144b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 145b0fac498ca4863166252f1268fda83394db54153Fei Jiang int i; 146b0fac498ca4863166252f1268fda83394db54153Fei Jiang 147b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\twidth = %d\n", picture_width); 148b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\theight = %d\n", picture_height); 149b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tflag = 0x%08x\n", flag); 150b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tnum_render_targets = %d\n", num_render_targets); 151b0fac498ca4863166252f1268fda83394db54153Fei Jiang for (i=0; i<num_render_targets; i++) 152b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\t\trender_targets[%d] = 0x%08x\n", i, render_targets[i]); 153b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tcontext = 0x%08x\n", context); 154b0fac498ca4863166252f1268fda83394db54153Fei Jiang 155b0fac498ca4863166252f1268fda83394db54153Fei Jiang 156b0fac498ca4863166252f1268fda83394db54153Fei Jiang trace_frame = 0; 157b0fac498ca4863166252f1268fda83394db54153Fei Jiang trace_slice = 0; 158b0fac498ca4863166252f1268fda83394db54153Fei Jiang 159b0fac498ca4863166252f1268fda83394db54153Fei Jiang trace_width = picture_width; 160b0fac498ca4863166252f1268fda83394db54153Fei Jiang trace_height = picture_height; 161b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 162b0fac498ca4863166252f1268fda83394db54153Fei Jiang 163b0fac498ca4863166252f1268fda83394db54153Fei Jiang 164b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic char * buffer_type_to_string(int type) 165b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 166b0fac498ca4863166252f1268fda83394db54153Fei Jiang switch (type) { 167b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAPictureParameterBufferType: return "VAPictureParameterBufferType"; 168b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAIQMatrixBufferType: return "VAIQMatrixBufferType"; 169b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VABitPlaneBufferType: return "VABitPlaneBufferType"; 170b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VASliceGroupMapBufferType: return "VASliceGroupMapBufferType"; 171b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VASliceParameterBufferType: return "VASliceParameterBufferType"; 172b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VASliceDataBufferType: return "VASliceDataBufferType"; 173b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAProtectedSliceDataBufferType: return "VAProtectedSliceDataBufferType"; 174b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAMacroblockParameterBufferType: return "VAMacroblockParameterBufferType"; 175b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAResidualDataBufferType: return "VAResidualDataBufferType"; 176b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VADeblockingParameterBufferType: return "VADeblockingParameterBufferType"; 177b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAImageBufferType: return "VAImageBufferType"; 178b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncCodedBufferType: return "VAEncCodedBufferType"; 179b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncSequenceParameterBufferType: return "VAEncSequenceParameterBufferType"; 180b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncPictureParameterBufferType: return "VAEncPictureParameterBufferType"; 181b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncSliceParameterBufferType: return "VAEncSliceParameterBufferType"; 182b0fac498ca4863166252f1268fda83394db54153Fei Jiang default: return "UnknowBuffer"; 183b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 184b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 185b0fac498ca4863166252f1268fda83394db54153Fei Jiang 186b0fac498ca4863166252f1268fda83394db54153Fei Jiang 187b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic int va_TraceVABuffers( 188b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 189b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 190b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID buffer, 191b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType type, 192b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int size, 193b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int num_elements, 194b0fac498ca4863166252f1268fda83394db54153Fei Jiang void *pbuf 195b0fac498ca4863166252f1268fda83394db54153Fei Jiang ) 196b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 197b0fac498ca4863166252f1268fda83394db54153Fei Jiang int i; 198b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned char *p = pbuf; 199b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int *pi = (unsigned int *)pbuf; 200b0fac498ca4863166252f1268fda83394db54153Fei Jiang 201b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("***Buffer Data***"); 202b0fac498ca4863166252f1268fda83394db54153Fei Jiang for (i=0; i<size; i++) { 203b0fac498ca4863166252f1268fda83394db54153Fei Jiang if ((i%16) == 0) 204b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\n0x%08x:", i); 205b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg(" %02x", p[i]); 206b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 207b0fac498ca4863166252f1268fda83394db54153Fei Jiang 208b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\n"); 209b0fac498ca4863166252f1268fda83394db54153Fei Jiang return 0; 210b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 211b0fac498ca4863166252f1268fda83394db54153Fei Jiang 212b0fac498ca4863166252f1268fda83394db54153Fei Jiang 213b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic void va_TraceVAPictureParameterBufferMPEG2( 214b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 215b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 216b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID buffer, 217b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType type, 218b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int size, 219b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int num_elements, 220b0fac498ca4863166252f1268fda83394db54153Fei Jiang void *data) 221b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 222b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, data); 223b0fac498ca4863166252f1268fda83394db54153Fei Jiang 224b0fac498ca4863166252f1268fda83394db54153Fei Jiang return; 225b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 226b0fac498ca4863166252f1268fda83394db54153Fei Jiang 227b0fac498ca4863166252f1268fda83394db54153Fei Jiang 228b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic void va_TraceVAIQMatrixBufferMPEG2( 229b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 230b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 231b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID buffer, 232b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType type, 233b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int size, 234b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int num_elements, 235b0fac498ca4863166252f1268fda83394db54153Fei Jiang void *data) 236b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 237b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, data); 238b0fac498ca4863166252f1268fda83394db54153Fei Jiang 239b0fac498ca4863166252f1268fda83394db54153Fei Jiang return; 240b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 241b0fac498ca4863166252f1268fda83394db54153Fei Jiang 242b0fac498ca4863166252f1268fda83394db54153Fei Jiang 243b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic void va_TraceVASliceParameterBufferMPEG2( 244b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 245b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 246b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID buffer, 247b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType type, 248b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int size, 249b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int num_elements, 250b0fac498ca4863166252f1268fda83394db54153Fei Jiang void *data) 251b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 252b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, data); 253b0fac498ca4863166252f1268fda83394db54153Fei Jiang 254b0fac498ca4863166252f1268fda83394db54153Fei Jiang return; 255b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 256b0fac498ca4863166252f1268fda83394db54153Fei Jiang 257b0fac498ca4863166252f1268fda83394db54153Fei Jiang 258b0fac498ca4863166252f1268fda83394db54153Fei Jiang 259b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic void va_TraceVAPictureParameterBufferMPEG4( 260b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 261b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 262b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID buffer, 263b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType type, 264b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int size, 265b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int num_elements, 266b0fac498ca4863166252f1268fda83394db54153Fei Jiang void *data) 267b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 268b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, data); 269b0fac498ca4863166252f1268fda83394db54153Fei Jiang 270b0fac498ca4863166252f1268fda83394db54153Fei Jiang return; 271b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 272b0fac498ca4863166252f1268fda83394db54153Fei Jiang 273b0fac498ca4863166252f1268fda83394db54153Fei Jiang 274b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic void va_TraceVAIQMatrixBufferMPEG4( 275b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 276b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 277b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID buffer, 278b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType type, 279b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int size, 280b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int num_elements, 281b0fac498ca4863166252f1268fda83394db54153Fei Jiang void *data) 282b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 283b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, data); 284b0fac498ca4863166252f1268fda83394db54153Fei Jiang 285b0fac498ca4863166252f1268fda83394db54153Fei Jiang return; 286b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 287b0fac498ca4863166252f1268fda83394db54153Fei Jiang 288b0fac498ca4863166252f1268fda83394db54153Fei Jiang 289b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic void va_TraceVASliceParameterBufferMPEG4( 290b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 291b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 292b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID buffer, 293b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType type, 294b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int size, 295b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int num_elements, 296b0fac498ca4863166252f1268fda83394db54153Fei Jiang void *data) 297b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 298b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, data); 299b0fac498ca4863166252f1268fda83394db54153Fei Jiang 300b0fac498ca4863166252f1268fda83394db54153Fei Jiang return; 301b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 302b0fac498ca4863166252f1268fda83394db54153Fei Jiang 303b0fac498ca4863166252f1268fda83394db54153Fei Jiang 304b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic void va_TraceVAPictureParameterBufferH264( 305b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 306b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 307b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID buffer, 308b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType type, 309b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int size, 310b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int num_elements, 311b0fac498ca4863166252f1268fda83394db54153Fei Jiang void *data) 312b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 313b0fac498ca4863166252f1268fda83394db54153Fei Jiang int i; 314b0fac498ca4863166252f1268fda83394db54153Fei Jiang 315b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAPictureParameterBufferH264 *p = (VAPictureParameterBufferH264*)data; 316b0fac498ca4863166252f1268fda83394db54153Fei Jiang 317b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg ("==========H264PicParameterBuffer============\n"); 318b0fac498ca4863166252f1268fda83394db54153Fei Jiang 319b0fac498ca4863166252f1268fda83394db54153Fei Jiang#if 0 320b0fac498ca4863166252f1268fda83394db54153Fei Jiang if (p->num_ref_frames > 4) 321b0fac498ca4863166252f1268fda83394db54153Fei Jiang { 322b0fac498ca4863166252f1268fda83394db54153Fei Jiang int num = 0; 323b0fac498ca4863166252f1268fda83394db54153Fei Jiang for (i = 15; i >= 0; i--) 324b0fac498ca4863166252f1268fda83394db54153Fei Jiang { 325b0fac498ca4863166252f1268fda83394db54153Fei Jiang if (p->ReferenceFrames[i].flags != VA_PICTURE_H264_INVALID) 326b0fac498ca4863166252f1268fda83394db54153Fei Jiang { 327b0fac498ca4863166252f1268fda83394db54153Fei Jiang num++; 328b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 329b0fac498ca4863166252f1268fda83394db54153Fei Jiang if (num > 4) 330b0fac498ca4863166252f1268fda83394db54153Fei Jiang { 331b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->ReferenceFrames[i].flags = VA_PICTURE_H264_INVALID; 332b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 333b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 334b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->num_ref_frames = 4; 335b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 336b0fac498ca4863166252f1268fda83394db54153Fei Jiang#endif 337b0fac498ca4863166252f1268fda83394db54153Fei Jiang 338b0fac498ca4863166252f1268fda83394db54153Fei Jiang#if 1 339b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("picture id: %d\n", p->CurrPic.picture_id); 340b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("frame idx: %d\n", p->CurrPic.frame_idx); 341b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("picture flags: %d\n", p->CurrPic.flags); 342b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("top field order count: %d\n", p->CurrPic.TopFieldOrderCnt); 343b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("bottom field order count: %d\n", p->CurrPic.BottomFieldOrderCnt); 344b0fac498ca4863166252f1268fda83394db54153Fei Jiang 345b0fac498ca4863166252f1268fda83394db54153Fei Jiang 346b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("Reference frames: \n"); 347b0fac498ca4863166252f1268fda83394db54153Fei Jiang for (i = 0; i < 16; i++) 348b0fac498ca4863166252f1268fda83394db54153Fei Jiang { 349b0fac498ca4863166252f1268fda83394db54153Fei Jiang if (p->ReferenceFrames[i].flags != VA_PICTURE_H264_INVALID) 350b0fac498ca4863166252f1268fda83394db54153Fei Jiang { 351b0fac498ca4863166252f1268fda83394db54153Fei Jiang //va_TraceMsg("%d-%d; ", p->ReferenceFrames[i].TopFieldOrderCnt, p->ReferenceFrames[i].BottomFieldOrderCnt); 352b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("%d-%d-%d-%d; ", p->ReferenceFrames[i].TopFieldOrderCnt, p->ReferenceFrames[i].BottomFieldOrderCnt, p->ReferenceFrames[i].picture_id, p->ReferenceFrames[i].frame_idx); 353b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 354b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 355b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\n"); 356b0fac498ca4863166252f1268fda83394db54153Fei Jiang#endif 357b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("picture_width_in_mbs_minus1: %d\n", p->picture_width_in_mbs_minus1); 358b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("picture_height_in_mbs_minus1: %d\n", p->picture_height_in_mbs_minus1); 359b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("bit_depth_luma_minus8: %d\n", p->bit_depth_luma_minus8); 360b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("bit_depth_chroma_minus8: %d\n", p->bit_depth_chroma_minus8); 361b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("num_ref_frames: %d\n", p->num_ref_frames); 362b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("seq fields: %d\n", p->seq_fields.value); 363b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\t chroma_format_idc: %d\n", p->seq_fields.bits.chroma_format_idc); 364b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\t residual_colour_transform_flag: %d\n", p->seq_fields.bits.residual_colour_transform_flag); 365b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\t frame_mbs_only_flag: %d\n", p->seq_fields.bits.frame_mbs_only_flag); 366b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\t mb_adaptive_frame_field_flag: %d\n", p->seq_fields.bits.mb_adaptive_frame_field_flag); 367b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\t direct_8x8_inference_flag: %d\n", p->seq_fields.bits.direct_8x8_inference_flag); 368b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\t MinLumaBiPredSize8x8: %d\n", p->seq_fields.bits.MinLumaBiPredSize8x8); 369b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("num_slice_groups_minus1: %d\n", p->num_slice_groups_minus1); 370b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("slice_group_map_type: %d\n", p->slice_group_map_type); 371b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("slice_group_change_rate_minus1: %d\n", p->slice_group_change_rate_minus1); 372b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("pic_init_qp_minus26: %d\n", p->pic_init_qp_minus26); 373b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("pic_init_qs_minus26: %d\n", p->pic_init_qs_minus26); 374b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("chroma_qp_index_offset: %d\n", p->chroma_qp_index_offset); 375b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("second_chroma_qp_index_offset: %d\n", p->second_chroma_qp_index_offset); 376b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("pic_fields: %d\n", p->pic_fields.value); 377b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\t entropy_coding_mode_flag: %d\n", p->pic_fields.bits.entropy_coding_mode_flag); 378b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\t weighted_pred_flag: %d\n", p->pic_fields.bits.weighted_pred_flag); 379b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\t weighted_bipred_idc: %d\n", p->pic_fields.bits.weighted_bipred_idc); 380b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\t transform_8x8_mode_flag: %d\n", p->pic_fields.bits.transform_8x8_mode_flag); 381b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\t field_pic_flag: %d\n", p->pic_fields.bits.field_pic_flag); 382b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\t constrained_intra_pred_flag: %d\n", p->pic_fields.bits.constrained_intra_pred_flag); 383b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("frame_num: %d\n", p->frame_num); 384b0fac498ca4863166252f1268fda83394db54153Fei Jiang 385b0fac498ca4863166252f1268fda83394db54153Fei Jiang return; 386b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 387b0fac498ca4863166252f1268fda83394db54153Fei Jiang 388b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic void va_TraceVASliceParameterBufferH264( 389b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 390b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 391b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID buffer, 392b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType type, 393b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int size, 394b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int num_elements, 395b0fac498ca4863166252f1268fda83394db54153Fei Jiang void *data) 396b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 397b0fac498ca4863166252f1268fda83394db54153Fei Jiang int i; 398b0fac498ca4863166252f1268fda83394db54153Fei Jiang VASliceParameterBufferH264* p = (VASliceParameterBufferH264*)data; 399b0fac498ca4863166252f1268fda83394db54153Fei Jiang 400b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg ("========== SLICE HEADER ============.\n"); 401b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("slice_data_size: %d\n", p->slice_data_size); 402b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("slice_data_offset: %d\n", p->slice_data_offset); 403b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("slice_data_flag: %d\n", p->slice_data_flag); 404b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("slice_data_bit_offset: %d\n", p->slice_data_bit_offset); 405b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("first_mb_in_slice: %d\n", p->first_mb_in_slice); 406b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("slice_type: %d\n", p->slice_type); 407b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("direct_spatial_mv_pred_flag: %d\n", p->direct_spatial_mv_pred_flag); 408b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("num_ref_idx_l0_active_minus1: %d\n", p->num_ref_idx_l0_active_minus1); 409b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("num_ref_idx_l1_active_minus1: %d\n", p->num_ref_idx_l1_active_minus1); 410b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("cabac_init_idc: %d\n", p->cabac_init_idc); 411b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("slice_qp_delta: %d\n", p->slice_qp_delta); 412b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("disable_deblocking_filter_idc: %d\n", p->disable_deblocking_filter_idc); 413b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("slice_alpha_c0_offset_div2: %d\n", p->slice_alpha_c0_offset_div2); 414b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("slice_beta_offset_div2: %d\n", p->slice_beta_offset_div2); 415b0fac498ca4863166252f1268fda83394db54153Fei Jiang 416b0fac498ca4863166252f1268fda83394db54153Fei Jiang#if 1 417b0fac498ca4863166252f1268fda83394db54153Fei Jiang if (p->slice_type == 0 || p->slice_type == 1) 418b0fac498ca4863166252f1268fda83394db54153Fei Jiang { 419b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("RefPicList0:\n"); 420b0fac498ca4863166252f1268fda83394db54153Fei Jiang for (i = 0; i < p->num_ref_idx_l0_active_minus1 + 1; i++) 421b0fac498ca4863166252f1268fda83394db54153Fei Jiang { 422b0fac498ca4863166252f1268fda83394db54153Fei Jiang //va_TraceMsg("%d-%d; ", p->RefPicList0[i].TopFieldOrderCnt, p->RefPicList0[i].BottomFieldOrderCnt); 423b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("%d-%d-%d-%d; ", p->RefPicList0[i].TopFieldOrderCnt, p->RefPicList0[i].BottomFieldOrderCnt, p->RefPicList0[i].picture_id, p->RefPicList0[i].frame_idx); 424b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 425b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\n"); 426b0fac498ca4863166252f1268fda83394db54153Fei Jiang if (p->slice_type == 1) 427b0fac498ca4863166252f1268fda83394db54153Fei Jiang { 428b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("RefPicList1:\n"); 429b0fac498ca4863166252f1268fda83394db54153Fei Jiang for (i = 0; i < p->num_ref_idx_l1_active_minus1 + 1; i++) 430b0fac498ca4863166252f1268fda83394db54153Fei Jiang { 431b0fac498ca4863166252f1268fda83394db54153Fei Jiang //va_TraceMsg("%d-%d; ", p->RefPicList1[i].TopFieldOrderCnt, p->RefPicList1[i].BottomFieldOrderCnt); 432b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("%d-%d-%d-%d; ", p->RefPicList1[i].TopFieldOrderCnt, p->RefPicList1[i].BottomFieldOrderCnt, p->RefPicList1[i].picture_id, p->RefPicList1[i].frame_idx); 433b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 434b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 435b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\n"); 436b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 437b0fac498ca4863166252f1268fda83394db54153Fei Jiang#endif 438b0fac498ca4863166252f1268fda83394db54153Fei Jiang 439b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("luma_log2_weight_denom: %d\n", p->luma_log2_weight_denom); 440b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("chroma_log2_weight_denom: %d\n", p->chroma_log2_weight_denom); 441b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("luma_weight_l0_flag: %d\n", p->luma_weight_l0_flag); 442b0fac498ca4863166252f1268fda83394db54153Fei Jiang if (p->luma_weight_l0_flag) 443b0fac498ca4863166252f1268fda83394db54153Fei Jiang { 444b0fac498ca4863166252f1268fda83394db54153Fei Jiang for (i = 0; i <= p->num_ref_idx_l0_active_minus1; i++) 445b0fac498ca4863166252f1268fda83394db54153Fei Jiang { 446b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("%d ", p->luma_weight_l0[i]); 447b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("%d ", p->luma_offset_l0[i]); 448b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 449b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\n"); 450b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 451b0fac498ca4863166252f1268fda83394db54153Fei Jiang 452b0fac498ca4863166252f1268fda83394db54153Fei Jiang 453b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("chroma_weight_l0_flag: %d\n", p->chroma_weight_l0_flag); 454b0fac498ca4863166252f1268fda83394db54153Fei Jiang if (p->chroma_weight_l0_flag) 455b0fac498ca4863166252f1268fda83394db54153Fei Jiang { 456b0fac498ca4863166252f1268fda83394db54153Fei Jiang for (i = 0; i <= p->num_ref_idx_l0_active_minus1; i++) 457b0fac498ca4863166252f1268fda83394db54153Fei Jiang { 458b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("%d ", p->chroma_weight_l0[i][0]); 459b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("%d ", p->chroma_offset_l0[i][0]); 460b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("%d ", p->chroma_weight_l0[i][1]); 461b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("%d ", p->chroma_offset_l0[i][1]); 462b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 463b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\n"); 464b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 465b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("luma_weight_l1_flag: %d\n", p->luma_weight_l1_flag); 466b0fac498ca4863166252f1268fda83394db54153Fei Jiang if (p->luma_weight_l1_flag) 467b0fac498ca4863166252f1268fda83394db54153Fei Jiang { 468b0fac498ca4863166252f1268fda83394db54153Fei Jiang for (i = 0; i <= p->num_ref_idx_l1_active_minus1; i++) 469b0fac498ca4863166252f1268fda83394db54153Fei Jiang { 470b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("%d ", p->luma_weight_l1[i]); 471b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("%d ", p->luma_offset_l1[i]); 472b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 473b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\n"); 474b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 475b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("chroma_weight_l1_flag: %d\n", p->chroma_weight_l1_flag); 476b0fac498ca4863166252f1268fda83394db54153Fei Jiang if (p->chroma_weight_l1_flag) 477b0fac498ca4863166252f1268fda83394db54153Fei Jiang { 478b0fac498ca4863166252f1268fda83394db54153Fei Jiang for (i = 0; i <= p->num_ref_idx_l1_active_minus1; i++) 479b0fac498ca4863166252f1268fda83394db54153Fei Jiang { 480b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("%d ", p->chroma_weight_l1[i][0]); 481b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("%d ", p->chroma_offset_l1[i][0]); 482b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("%d ", p->chroma_weight_l1[i][1]); 483b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("%d ", p->chroma_offset_l1[i][1]); 484b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 485b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\n"); 486b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 487b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 488b0fac498ca4863166252f1268fda83394db54153Fei Jiang 489b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic void va_TraceVAIQMatrixBufferH264( 490b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 491b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 492b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID buffer, 493b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType type, 494b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int size, 495b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int num_elements, 496b0fac498ca4863166252f1268fda83394db54153Fei Jiang void *data 497b0fac498ca4863166252f1268fda83394db54153Fei Jiang) 498b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 499b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("========== IQMatrix ============.\n"); 500b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAIQMatrixBufferH264* p = (VAIQMatrixBufferH264* )data; 501b0fac498ca4863166252f1268fda83394db54153Fei Jiang int i, j; 502b0fac498ca4863166252f1268fda83394db54153Fei Jiang for (i = 0; i < 6; i++) 503b0fac498ca4863166252f1268fda83394db54153Fei Jiang { 504b0fac498ca4863166252f1268fda83394db54153Fei Jiang for (j = 0; j < 16; j++) 505b0fac498ca4863166252f1268fda83394db54153Fei Jiang { 506b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("%d\t", p->ScalingList4x4[i][j]); 507b0fac498ca4863166252f1268fda83394db54153Fei Jiang if ((j + 1) % 8 == 0) 508b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\n"); 509b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 510b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 511b0fac498ca4863166252f1268fda83394db54153Fei Jiang 512b0fac498ca4863166252f1268fda83394db54153Fei Jiang for (i = 0; i < 2; i++) 513b0fac498ca4863166252f1268fda83394db54153Fei Jiang { 514b0fac498ca4863166252f1268fda83394db54153Fei Jiang for (j = 0; j < 64; j++) 515b0fac498ca4863166252f1268fda83394db54153Fei Jiang { 516b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("%d\t", p->ScalingList8x8[i][j]); 517b0fac498ca4863166252f1268fda83394db54153Fei Jiang if ((j + 1) % 8 == 0) 518b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\n"); 519b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 520b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 521b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 522b0fac498ca4863166252f1268fda83394db54153Fei Jiang 523b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic void va_TraceVAPictureParameterBufferVC1( 524b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 525b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 526b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID buffer, 527b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType type, 528b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int size, 529b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int num_elements, 530b0fac498ca4863166252f1268fda83394db54153Fei Jiang void *data 531b0fac498ca4863166252f1268fda83394db54153Fei Jiang) 532b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 533b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAPictureParameterBufferVC1* p = (VAPictureParameterBufferVC1*)data; 534b0fac498ca4863166252f1268fda83394db54153Fei Jiang 535b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tforward_reference_picture = 0x%08x\n", p->forward_reference_picture); 536b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tbackward_reference_picture = 0x%08x\n", p->backward_reference_picture); 537b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tinloop_decoded_picture = 0x%08x\n", p->inloop_decoded_picture); 538b0fac498ca4863166252f1268fda83394db54153Fei Jiang 539b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tpulldown = %d\n", p->sequence_fields.bits.pulldown); 540b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tinterlace = %d\n", p->sequence_fields.bits.interlace); 541b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\ttfcntrflag = %d\n", p->sequence_fields.bits.tfcntrflag); 542b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tfinterpflag = %d\n", p->sequence_fields.bits.finterpflag); 543b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tpsf = %d.\n", 544b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->sequence_fields.bits.psf); 545b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tmultires = %d.\n", 546b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->sequence_fields.bits.multires); 547b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\toverlap = %d.\n", 548b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->sequence_fields.bits.overlap); 549b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tsyncmarker = %d.\n", 550b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->sequence_fields.bits.syncmarker); 551b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\trangered = %d.\n", 552b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->sequence_fields.bits.rangered); 553b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tmax_b_frames = %d.\n", 554b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->sequence_fields.bits.max_b_frames); 555b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tcoded_width = %d.\n", 556b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->coded_width); 557b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tcoded_height = %d.\n", 558b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->coded_height); 559b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tclosed_entry = %d.\n", 560b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->entrypoint_fields.bits.closed_entry); 561b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tbroken_link = %d.\n", 562b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->entrypoint_fields.bits.broken_link); 563b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tclosed_entry = %d.\n", 564b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->entrypoint_fields.bits.closed_entry); 565b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tpanscan_flag = %d.\n", 566b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->entrypoint_fields.bits.panscan_flag); 567b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tloopfilter = %d.\n", 568b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->entrypoint_fields.bits.loopfilter); 569b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tconditional_overlap_flag = %d.\n", 570b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->conditional_overlap_flag); 571b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tfast_uvmc_flag = %d.\n", 572b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->fast_uvmc_flag); 573b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\trange_mapping_luma_flag = %d.\n", 574b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->range_mapping_fields.bits.luma_flag); 575b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\trange_mapping_luma = %d.\n", 576b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->range_mapping_fields.bits.luma); 577b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\trange_mapping_chroma_flag = %d.\n", 578b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->range_mapping_fields.bits.chroma_flag); 579b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\trange_mapping_chroma = %d.\n", 580b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->range_mapping_fields.bits.chroma); 581b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tb_picture_fraction = %d.\n", 582b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->b_picture_fraction); 583b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tcbp_table = %d.\n", 584b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->cbp_table); 585b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tmb_mode_table = %d.\n", 586b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->mb_mode_table); 587b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\trange_reduction_frame = %d.\n", 588b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->range_reduction_frame); 589b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\trounding_control = %d.\n", 590b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->rounding_control); 591b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tpost_processing = %d.\n", 592b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->post_processing); 593b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tpicture_resolution_index = %d.\n", 594b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->picture_resolution_index); 595b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tluma_scale = %d.\n", 596b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->luma_scale); 597b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tluma_shift = %d.\n", 598b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->luma_shift); 599b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tpicture_type = %d.\n", 600b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->picture_fields.bits.picture_type); 601b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tframe_coding_mode = %d.\n", 602b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->picture_fields.bits.frame_coding_mode); 603b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\ttop_field_first = %d.\n", 604b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->picture_fields.bits.top_field_first); 605b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tis_first_field = %d.\n", 606b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->picture_fields.bits.is_first_field); 607b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tintensity_compensation = %d.\n", 608b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->picture_fields.bits.intensity_compensation); 609b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg(" ---------------------------------\n"); 610b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tmv_type_mb = %d.\n", 611b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->raw_coding.flags.mv_type_mb); 612b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tdirect_mb = %d.\n", 613b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->raw_coding.flags.direct_mb); 614b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tskip_mb = %d.\n", 615b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->raw_coding.flags.skip_mb); 616b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tfield_tx = %d.\n", 617b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->raw_coding.flags.field_tx); 618b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tforward_mb = %d.\n", 619b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->raw_coding.flags.forward_mb); 620b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tac_pred = %d.\n", 621b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->raw_coding.flags.ac_pred); 622b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\toverflags = %d.\n", 623b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->raw_coding.flags.overflags); 624b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg(" ---------------------------------\n"); 625b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tbp_mv_type_mb = %d.\n", 626b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->bitplane_present.flags.bp_mv_type_mb); 627b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tbp_direct_mb = %d.\n", 628b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->bitplane_present.flags.bp_direct_mb); 629b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tbp_skip_mb = %d.\n", 630b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->bitplane_present.flags.bp_skip_mb); 631b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tbp_field_tx = %d.\n", 632b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->bitplane_present.flags.bp_field_tx); 633b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tbp_forward_mb = %d.\n", 634b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->bitplane_present.flags.bp_forward_mb); 635b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tbp_ac_pred = %d.\n", 636b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->bitplane_present.flags.bp_ac_pred); 637b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tbp_overflags = %d.\n", 638b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->bitplane_present.flags.bp_overflags); 639b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg(" ---------------------------------\n"); 640b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\treference_distance_flag = %d.\n", 641b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->reference_fields.bits.reference_distance_flag); 642b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\treference_distance = %d.\n", 643b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->reference_fields.bits.reference_distance); 644b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tnum_reference_pictures = %d.\n", 645b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->reference_fields.bits.num_reference_pictures); 646b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\treference_field_pic_indicator = %d.\n", 647b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->reference_fields.bits.reference_field_pic_indicator); 648b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tmv_mode = %d.\n", 649b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->mv_fields.bits.mv_mode); 650b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tmv_mode2 = %d.\n", 651b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->mv_fields.bits.mv_mode2); 652b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tmv_table = %d.\n", 653b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->mv_fields.bits.mv_table); 654b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\ttwo_mv_block_pattern_table = %d.\n", 655b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->mv_fields.bits.two_mv_block_pattern_table); 656b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tfour_mv_switch = %d.\n", 657b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->mv_fields.bits.four_mv_switch); 658b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tfour_mv_block_pattern_table = %d.\n", 659b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->mv_fields.bits.four_mv_block_pattern_table); 660b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\textended_mv_flag = %d.\n", 661b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->mv_fields.bits.extended_mv_flag); 662b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\textended_mv_range = %d.\n", 663b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->mv_fields.bits.extended_mv_range); 664b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\textended_dmv_flag = %d.\n", 665b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->mv_fields.bits.extended_dmv_flag); 666b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\textended_dmv_range = %d.\n", 667b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->mv_fields.bits.extended_dmv_range); 668b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tdquant = %d.\n", 669b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->pic_quantizer_fields.bits.dquant); 670b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tquantizer = %d.\n", 671b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->pic_quantizer_fields.bits.quantizer); 672b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\thalf_qp = %d.\n", 673b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->pic_quantizer_fields.bits.half_qp); 674b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tpic_quantizer_scale = %d.\n", 675b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->pic_quantizer_fields.bits.pic_quantizer_scale); 676b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tpic_quantizer_type = %d.\n", 677b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->pic_quantizer_fields.bits.pic_quantizer_type); 678b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tdq_frame = %d.\n", 679b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->pic_quantizer_fields.bits.dq_frame); 680b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tdq_profile = %d.\n", 681b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->pic_quantizer_fields.bits.dq_profile); 682b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tdq_sb_edge = %d.\n", 683b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->pic_quantizer_fields.bits.dq_sb_edge); 684b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tdq_db_edge = %d.\n", 685b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->pic_quantizer_fields.bits.dq_db_edge); 686b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tdq_binary_level = %d.\n", 687b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->pic_quantizer_fields.bits.dq_binary_level); 688b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\talt_pic_quantizer = %d.\n", 689b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->pic_quantizer_fields.bits.alt_pic_quantizer); 690b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tvariable_sized_transform_flag = %d.\n", 691b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->transform_fields.bits.variable_sized_transform_flag); 692b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tmb_level_transform_type_flag = %d.\n", 693b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->transform_fields.bits.mb_level_transform_type_flag); 694b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tframe_level_transform_type = %d.\n", 695b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->transform_fields.bits.frame_level_transform_type); 696b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\ttransform_ac_codingset_idx1 = %d.\n", 697b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->transform_fields.bits.transform_ac_codingset_idx1); 698b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\ttransform_ac_codingset_idx2 = %d.\n", 699b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->transform_fields.bits.transform_ac_codingset_idx2); 700b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tintra_transform_dc_table = %d.\n", 701b0fac498ca4863166252f1268fda83394db54153Fei Jiang p->transform_fields.bits.intra_transform_dc_table); 702b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 703b0fac498ca4863166252f1268fda83394db54153Fei Jiang 704b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic void va_TraceVASliceParameterBufferVC1( 705b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 706b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 707b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID buffer, 708b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType type, 709b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int size, 710b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int num_elements, 711b0fac498ca4863166252f1268fda83394db54153Fei Jiang void* data 712b0fac498ca4863166252f1268fda83394db54153Fei Jiang) 713b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 714b0fac498ca4863166252f1268fda83394db54153Fei Jiang VASliceParameterBufferVC1 *p = (VASliceParameterBufferVC1*)data; 715b0fac498ca4863166252f1268fda83394db54153Fei Jiang 716b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg ("========== SLICE NUMBER ==========\n"); 717b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg (" slice_data_size = %d\n", p->slice_data_size); 718b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg (" slice_data_offset = %d\n", p->slice_data_offset); 719b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg (" slice_data_flag = %d\n", p->slice_data_flag); 720b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg (" macroblock_offset = %d\n", p->macroblock_offset); 721b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg (" slice_vertical_position = %d\n", p->slice_vertical_position); 722b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 723b0fac498ca4863166252f1268fda83394db54153Fei Jiang 724b0fac498ca4863166252f1268fda83394db54153Fei Jiangint va_TraceBeginPicture( 725b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 726b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 727b0fac498ca4863166252f1268fda83394db54153Fei Jiang VASurfaceID render_target 728b0fac498ca4863166252f1268fda83394db54153Fei Jiang) 729b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 730b0fac498ca4863166252f1268fda83394db54153Fei Jiang int i; 731b0fac498ca4863166252f1268fda83394db54153Fei Jiang 732b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tcontext = 0x%08x\n", context); 733b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\t\trender_targets = 0x%08x\n", render_target); 734b0fac498ca4863166252f1268fda83394db54153Fei Jiang 735b0fac498ca4863166252f1268fda83394db54153Fei Jiang trace_rendertarget = render_target; /* for surface data dump after vaEndPicture */ 736b0fac498ca4863166252f1268fda83394db54153Fei Jiang 737b0fac498ca4863166252f1268fda83394db54153Fei Jiang trace_frame++; 738b0fac498ca4863166252f1268fda83394db54153Fei Jiang trace_slice = 0; 739b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 740b0fac498ca4863166252f1268fda83394db54153Fei Jiang 741b0fac498ca4863166252f1268fda83394db54153Fei JiangVAStatus vaBufferInfo ( 742b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 743b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, /* in */ 744b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID buf_id, /* in */ 745b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType *type, /* out */ 746b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int *size, /* out */ 747b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int *num_elements /* out */ 748b0fac498ca4863166252f1268fda83394db54153Fei Jiang); 749b0fac498ca4863166252f1268fda83394db54153Fei Jiang 750b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic int va_TraceMPEG2Buf( 751b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 752b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 753b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID buffer, 754b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType type, 755b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int size, 756b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int num_elements, 757b0fac498ca4863166252f1268fda83394db54153Fei Jiang void *pbuf 758b0fac498ca4863166252f1268fda83394db54153Fei Jiang) 759b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 760b0fac498ca4863166252f1268fda83394db54153Fei Jiang switch (type) { 761b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAPictureParameterBufferType: 762b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVAPictureParameterBufferMPEG2(dpy, context, buffer, type, size, num_elements, pbuf); 763b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 764b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAIQMatrixBufferType: 765b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVAIQMatrixBufferMPEG2(dpy, context, buffer, type, size, num_elements, pbuf); 766b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 767b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VABitPlaneBufferType: 768b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 769b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VASliceGroupMapBufferType: 770b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 771b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VASliceParameterBufferType: 772b0fac498ca4863166252f1268fda83394db54153Fei Jiang trace_slice++; 773b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVASliceParameterBufferMPEG2(dpy, context, buffer, type, size, num_elements, pbuf); 774b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 775b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VASliceDataBufferType: 776b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 777b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 778b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAMacroblockParameterBufferType: 779b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 780b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAResidualDataBufferType: 781b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 782b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VADeblockingParameterBufferType: 783b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 784b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAImageBufferType: 785b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 786b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAProtectedSliceDataBufferType: 787b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 788b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncCodedBufferType: 789b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 790b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncSequenceParameterBufferType: 791b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 792b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncPictureParameterBufferType: 793b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 794b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncSliceParameterBufferType: 795b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 796b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncH264VUIBufferType: 797b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 798b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncH264SEIBufferType: 799b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 800b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 801b0fac498ca4863166252f1268fda83394db54153Fei Jiang 802b0fac498ca4863166252f1268fda83394db54153Fei Jiang return 0; 803b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 804b0fac498ca4863166252f1268fda83394db54153Fei Jiang 805b0fac498ca4863166252f1268fda83394db54153Fei Jiang 806b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic int va_TraceMPEG4Buf( 807b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 808b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 809b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID buffer, 810b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType type, 811b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int size, 812b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int num_elements, 813b0fac498ca4863166252f1268fda83394db54153Fei Jiang void *pbuf 814b0fac498ca4863166252f1268fda83394db54153Fei Jiang) 815b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 816b0fac498ca4863166252f1268fda83394db54153Fei Jiang switch (type) { 817b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAPictureParameterBufferType: 818b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVAPictureParameterBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf); 819b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 820b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAIQMatrixBufferType: 821b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVAIQMatrixBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf); 822b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 823b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VABitPlaneBufferType: 824b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 825b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VASliceGroupMapBufferType: 826b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 827b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VASliceParameterBufferType: 828b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVASliceParameterBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf); 829b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 830b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VASliceDataBufferType: 831b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 832b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 833b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAMacroblockParameterBufferType: 834b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 835b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAResidualDataBufferType: 836b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 837b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VADeblockingParameterBufferType: 838b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 839b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAImageBufferType: 840b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 841b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAProtectedSliceDataBufferType: 842b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 843b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 844b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncCodedBufferType: 845b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 846b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncSequenceParameterBufferType: 847b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 848b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncPictureParameterBufferType: 849b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 850b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncSliceParameterBufferType: 851b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 852b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncH264VUIBufferType: 853b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 854b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncH264SEIBufferType: 855b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 856b0fac498ca4863166252f1268fda83394db54153Fei Jiang default: 857b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 858b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 859b0fac498ca4863166252f1268fda83394db54153Fei Jiang 860b0fac498ca4863166252f1268fda83394db54153Fei Jiang 861b0fac498ca4863166252f1268fda83394db54153Fei Jiang return 0; 862b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 863b0fac498ca4863166252f1268fda83394db54153Fei Jiang 864b0fac498ca4863166252f1268fda83394db54153Fei Jiang 865b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic int va_TraceH264Buf( 866b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 867b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 868b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID buffer, 869b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType type, 870b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int size, 871b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int num_elements, 872b0fac498ca4863166252f1268fda83394db54153Fei Jiang void *pbuf 873b0fac498ca4863166252f1268fda83394db54153Fei Jiang) 874b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 875b0fac498ca4863166252f1268fda83394db54153Fei Jiang switch (type) { 876b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAPictureParameterBufferType: 877b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVAPictureParameterBufferMPEG2(dpy, context, buffer, type, size, num_elements, pbuf); 878b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 879b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAIQMatrixBufferType: 880b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVAIQMatrixBufferH264(dpy, context, buffer, type, size, num_elements, pbuf); 881b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 882b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VABitPlaneBufferType: 883b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 884b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VASliceGroupMapBufferType: 885b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 886b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VASliceParameterBufferType: 887b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVASliceParameterBufferH264(dpy, context, buffer, type, size, num_elements, pbuf); 888b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 889b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VASliceDataBufferType: 890b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 891b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 892b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAMacroblockParameterBufferType: 893b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 894b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAResidualDataBufferType: 895b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 896b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VADeblockingParameterBufferType: 897b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 898b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAImageBufferType: 899b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 900b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAProtectedSliceDataBufferType: 901b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 902b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 903b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncCodedBufferType: 904b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 905b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncSequenceParameterBufferType: 906b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 907b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncPictureParameterBufferType: 908b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 909b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncSliceParameterBufferType: 910b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 911b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncH264VUIBufferType: 912b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 913b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncH264SEIBufferType: 914b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 915b0fac498ca4863166252f1268fda83394db54153Fei Jiang default: 916b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 917b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 918b0fac498ca4863166252f1268fda83394db54153Fei Jiang 919b0fac498ca4863166252f1268fda83394db54153Fei Jiang 920b0fac498ca4863166252f1268fda83394db54153Fei Jiang return 0; 921b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 922b0fac498ca4863166252f1268fda83394db54153Fei Jiang 923b0fac498ca4863166252f1268fda83394db54153Fei Jiang 924b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic int va_TraceVC1Buf( 925b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 926b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 927b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID buffer, 928b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType type, 929b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int size, 930b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int num_elements, 931b0fac498ca4863166252f1268fda83394db54153Fei Jiang void *pbuf 932b0fac498ca4863166252f1268fda83394db54153Fei Jiang) 933b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 934b0fac498ca4863166252f1268fda83394db54153Fei Jiang switch (type) { 935b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAPictureParameterBufferType: 936b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVAPictureParameterBufferVC1(dpy, context, buffer, type, size, num_elements, pbuf); 937b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 938b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAIQMatrixBufferType: 939b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 940b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VABitPlaneBufferType: 941b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 942b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 943b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VASliceGroupMapBufferType: 944b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 945b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VASliceParameterBufferType: 946b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVASliceParameterBufferVC1(dpy, context, buffer, type, size, num_elements, pbuf); 947b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 948b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VASliceDataBufferType: 949b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 950b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 951b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAMacroblockParameterBufferType: 952b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 953b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAResidualDataBufferType: 954b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 955b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VADeblockingParameterBufferType: 956b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 957b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAImageBufferType: 958b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 959b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAProtectedSliceDataBufferType: 960b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 961b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 962b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncCodedBufferType: 963b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 964b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncSequenceParameterBufferType: 965b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 966b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncPictureParameterBufferType: 967b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 968b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncSliceParameterBufferType: 969b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 970b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncH264VUIBufferType: 971b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 972b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncH264SEIBufferType: 973b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 974b0fac498ca4863166252f1268fda83394db54153Fei Jiang default: 975b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 976b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 977b0fac498ca4863166252f1268fda83394db54153Fei Jiang 978b0fac498ca4863166252f1268fda83394db54153Fei Jiang return 0; 979b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 980b0fac498ca4863166252f1268fda83394db54153Fei Jiang 981b0fac498ca4863166252f1268fda83394db54153Fei Jiangint va_TraceRenderPicture( 982b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 983b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 984b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID *buffers, 985b0fac498ca4863166252f1268fda83394db54153Fei Jiang int num_buffers 986b0fac498ca4863166252f1268fda83394db54153Fei Jiang) 987b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 988b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType type; 989b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int size; 990b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int num_elements; 991b0fac498ca4863166252f1268fda83394db54153Fei Jiang int i; 992b0fac498ca4863166252f1268fda83394db54153Fei Jiang 993b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tcontext = 0x%08x\n", context); 994b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tnum_buffers = %d\n", num_buffers); 995b0fac498ca4863166252f1268fda83394db54153Fei Jiang for (i = 0; i < num_buffers; i++) { 996b0fac498ca4863166252f1268fda83394db54153Fei Jiang void *pbuf; 997b0fac498ca4863166252f1268fda83394db54153Fei Jiang 998b0fac498ca4863166252f1268fda83394db54153Fei Jiang /* get buffer type information */ 999b0fac498ca4863166252f1268fda83394db54153Fei Jiang vaBufferInfo(dpy, context, buffers[i], &type, &size, &num_elements); 1000b0fac498ca4863166252f1268fda83394db54153Fei Jiang 1001b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\t\tbuffers[%d] = 0x%08x\n", i, buffers[i]); 1002b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\t\t\ttype = %s\n", buffer_type_to_string(type)); 1003b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\t\t\tsize = %d\n", size); 1004b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\t\t\tnum_elements = %d\n", num_elements); 1005b0fac498ca4863166252f1268fda83394db54153Fei Jiang 1006b0fac498ca4863166252f1268fda83394db54153Fei Jiang 1007b0fac498ca4863166252f1268fda83394db54153Fei Jiang vaMapBuffer(dpy, buffers[i], &pbuf); 1008b0fac498ca4863166252f1268fda83394db54153Fei Jiang 1009b0fac498ca4863166252f1268fda83394db54153Fei Jiang switch (trace_profile) { 1010b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAProfileMPEG2Simple: 1011b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAProfileMPEG2Main: 1012b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMPEG2Buf(dpy, context, buffers[i], type, size, num_elements, pbuf); 1013b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1014b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAProfileMPEG4Simple: 1015b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAProfileMPEG4AdvancedSimple: 1016b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAProfileMPEG4Main: 1017b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMPEG4Buf(dpy, context, buffers[i], type, size, num_elements, pbuf); 1018b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1019b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAProfileH264Baseline: 1020b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAProfileH264Main: 1021b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAProfileH264High: 1022b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceH264Buf(dpy, context, buffers[i], type, size, num_elements, pbuf); 1023b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1024b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAProfileVC1Simple: 1025b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAProfileVC1Main: 1026b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAProfileVC1Advanced: 1027b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVC1Buf(dpy, context, buffers[i], type, size, num_elements, pbuf); 1028b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1029b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAProfileH263Baseline: 1030b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1031b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 1032b0fac498ca4863166252f1268fda83394db54153Fei Jiang 1033b0fac498ca4863166252f1268fda83394db54153Fei Jiang vaUnmapBuffer(dpy, buffers[i]); 1034b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 1035b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 1036b0fac498ca4863166252f1268fda83394db54153Fei Jiang 1037b0fac498ca4863166252f1268fda83394db54153Fei Jiang 1038b0fac498ca4863166252f1268fda83394db54153Fei Jiangint va_TraceEndPicture( 1039b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 1040b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context 1041b0fac498ca4863166252f1268fda83394db54153Fei Jiang) 1042b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 1043b0fac498ca4863166252f1268fda83394db54153Fei Jiang int i, j; 1044b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int fourcc; /* following are output argument */ 1045b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int luma_stride; 1046b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int chroma_u_stride; 1047b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int chroma_v_stride; 1048b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int luma_offset; 1049b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int chroma_u_offset; 1050b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int chroma_v_offset; 1051b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int buffer_name; 1052b0fac498ca4863166252f1268fda83394db54153Fei Jiang void *buffer; 1053b0fac498ca4863166252f1268fda83394db54153Fei Jiang char *Y_data, *UV_data, *tmp; 1054b0fac498ca4863166252f1268fda83394db54153Fei Jiang 1055b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAStatus va_status; 1056b0fac498ca4863166252f1268fda83394db54153Fei Jiang 1057b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tcontext = 0x%08x\n", context); 1058b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\t\trender_targets = 0x%08x\n", trace_rendertarget); 1059b0fac498ca4863166252f1268fda83394db54153Fei Jiang 1060b0fac498ca4863166252f1268fda83394db54153Fei Jiang /* force the pipleline finish rendering */ 1061b0fac498ca4863166252f1268fda83394db54153Fei Jiang vaSyncSurface(dpy, trace_rendertarget); 1062b0fac498ca4863166252f1268fda83394db54153Fei Jiang 1063b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("***dump surface data***\n", trace_rendertarget); 1064b0fac498ca4863166252f1268fda83394db54153Fei Jiang 1065b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_status = vaLockSurface(dpy, trace_rendertarget, &fourcc, &luma_stride, &chroma_u_stride, &chroma_v_stride, 1066b0fac498ca4863166252f1268fda83394db54153Fei Jiang &luma_offset, &chroma_u_offset, &chroma_v_offset, &buffer_name, &buffer); 1067b0fac498ca4863166252f1268fda83394db54153Fei Jiang 1068b0fac498ca4863166252f1268fda83394db54153Fei Jiang if (va_status != VA_STATUS_SUCCESS) 1069b0fac498ca4863166252f1268fda83394db54153Fei Jiang return va_status; 1070b0fac498ca4863166252f1268fda83394db54153Fei Jiang 1071b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tfourcc=0x%08x\n", fourcc); 1072b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\twidth=%d\n", trace_width); 1073b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\theight=%d\n", trace_height); 1074b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tluma_stride=%d\n", luma_stride); 1075b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tchroma_u_stride=%d\n", chroma_u_stride); 1076b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tchroma_v_stride=%d\n", chroma_v_stride); 1077b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tluma_offset=%d\n", luma_offset); 1078b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tchroma_u_offset=%d\n", chroma_u_offset); 1079b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\tchroma_v_offset=%d\n", chroma_v_offset); 1080b0fac498ca4863166252f1268fda83394db54153Fei Jiang 1081b0fac498ca4863166252f1268fda83394db54153Fei Jiang if (!buffer) 1082b0fac498ca4863166252f1268fda83394db54153Fei Jiang return; 1083b0fac498ca4863166252f1268fda83394db54153Fei Jiang 1084b0fac498ca4863166252f1268fda83394db54153Fei Jiang Y_data = buffer; 1085b0fac498ca4863166252f1268fda83394db54153Fei Jiang UV_data = buffer + luma_offset; 1086b0fac498ca4863166252f1268fda83394db54153Fei Jiang 1087b0fac498ca4863166252f1268fda83394db54153Fei Jiang tmp = Y_data; 1088b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("**Y data**\n"); 1089b0fac498ca4863166252f1268fda83394db54153Fei Jiang for (i=0; i<trace_height; i++) { 1090b0fac498ca4863166252f1268fda83394db54153Fei Jiang for (j=0; j<trace_width; j++) { 1091b0fac498ca4863166252f1268fda83394db54153Fei Jiang if ((j%16) == 0) 1092b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\n0x%08x:", j + i*trace_width); 1093b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg(" %02x", tmp[j]); 1094b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 1095b0fac498ca4863166252f1268fda83394db54153Fei Jiang 1096b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\n"); 1097b0fac498ca4863166252f1268fda83394db54153Fei Jiang tmp = Y_data + i * luma_stride; 1098b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 1099b0fac498ca4863166252f1268fda83394db54153Fei Jiang 1100b0fac498ca4863166252f1268fda83394db54153Fei Jiang tmp = UV_data; 1101b0fac498ca4863166252f1268fda83394db54153Fei Jiang if (fourcc == VA_FOURCC_NV12) { 1102b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("**UV data**\n"); 1103b0fac498ca4863166252f1268fda83394db54153Fei Jiang 1104b0fac498ca4863166252f1268fda83394db54153Fei Jiang for (i=0; i<trace_height/2; i++) { 1105b0fac498ca4863166252f1268fda83394db54153Fei Jiang for (j=0; j<trace_width; j++) { 1106b0fac498ca4863166252f1268fda83394db54153Fei Jiang if ((j%16) == 0) 1107b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\n0x%08x:", j + i*trace_width); 1108b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg(" %02x", tmp[j]); 1109b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 1110b0fac498ca4863166252f1268fda83394db54153Fei Jiang 1111b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceMsg("\n"); 1112b0fac498ca4863166252f1268fda83394db54153Fei Jiang tmp = UV_data + i * chroma_u_stride; 1113b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 1114b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 1115b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 1116