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