xref: /aosp_15_r20/external/libva/va/va_trace.c (revision 54e60f844a168e9a219354de272cd517ee8cd4b7)
1*54e60f84SAndroid Build Coastguard Worker 
2*54e60f84SAndroid Build Coastguard Worker /*
3*54e60f84SAndroid Build Coastguard Worker  * Copyright (c) 2009-2024 Intel Corporation. All Rights Reserved.
4*54e60f84SAndroid Build Coastguard Worker  *
5*54e60f84SAndroid Build Coastguard Worker  * Permission is hereby granted, free of charge, to any person obtaining a
6*54e60f84SAndroid Build Coastguard Worker  * copy of this software and associated documentation files (the
7*54e60f84SAndroid Build Coastguard Worker  * "Software"), to deal in the Software without restriction, including
8*54e60f84SAndroid Build Coastguard Worker  * without limitation the rights to use, copy, modify, merge, publish,
9*54e60f84SAndroid Build Coastguard Worker  * distribute, sub license, and/or sell copies of the Software, and to
10*54e60f84SAndroid Build Coastguard Worker  * permit persons to whom the Software is furnished to do so, subject to
11*54e60f84SAndroid Build Coastguard Worker  * the following conditions:
12*54e60f84SAndroid Build Coastguard Worker  *
13*54e60f84SAndroid Build Coastguard Worker  * The above copyright notice and this permission notice (including the
14*54e60f84SAndroid Build Coastguard Worker  * next paragraph) shall be included in all copies or substantial portions
15*54e60f84SAndroid Build Coastguard Worker  * of the Software.
16*54e60f84SAndroid Build Coastguard Worker  *
17*54e60f84SAndroid Build Coastguard Worker  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
18*54e60f84SAndroid Build Coastguard Worker  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19*54e60f84SAndroid Build Coastguard Worker  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
20*54e60f84SAndroid Build Coastguard Worker  * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
21*54e60f84SAndroid Build Coastguard Worker  * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
22*54e60f84SAndroid Build Coastguard Worker  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
23*54e60f84SAndroid Build Coastguard Worker  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24*54e60f84SAndroid Build Coastguard Worker  */
25*54e60f84SAndroid Build Coastguard Worker 
26*54e60f84SAndroid Build Coastguard Worker #define _GNU_SOURCE 1
27*54e60f84SAndroid Build Coastguard Worker #include "sysdeps.h"
28*54e60f84SAndroid Build Coastguard Worker #include "va.h"
29*54e60f84SAndroid Build Coastguard Worker #include "va_enc_h264.h"
30*54e60f84SAndroid Build Coastguard Worker #include "va_backend.h"
31*54e60f84SAndroid Build Coastguard Worker #include "va_internal.h"
32*54e60f84SAndroid Build Coastguard Worker #include "va_trace.h"
33*54e60f84SAndroid Build Coastguard Worker #include "va_enc_h264.h"
34*54e60f84SAndroid Build Coastguard Worker #include "va_enc_jpeg.h"
35*54e60f84SAndroid Build Coastguard Worker #include "va_enc_vp8.h"
36*54e60f84SAndroid Build Coastguard Worker #include "va_dec_jpeg.h"
37*54e60f84SAndroid Build Coastguard Worker #include "va_dec_vp8.h"
38*54e60f84SAndroid Build Coastguard Worker #include "va_dec_vp9.h"
39*54e60f84SAndroid Build Coastguard Worker #include "va_dec_hevc.h"
40*54e60f84SAndroid Build Coastguard Worker #include "va_dec_vvc.h"
41*54e60f84SAndroid Build Coastguard Worker #include "va_str.h"
42*54e60f84SAndroid Build Coastguard Worker #include "va_vpp.h"
43*54e60f84SAndroid Build Coastguard Worker #include <assert.h>
44*54e60f84SAndroid Build Coastguard Worker #include <stdarg.h>
45*54e60f84SAndroid Build Coastguard Worker #include <stdlib.h>
46*54e60f84SAndroid Build Coastguard Worker #include <stdio.h>
47*54e60f84SAndroid Build Coastguard Worker #include <string.h>
48*54e60f84SAndroid Build Coastguard Worker #include <fcntl.h>
49*54e60f84SAndroid Build Coastguard Worker #include "va_drmcommon.h"
50*54e60f84SAndroid Build Coastguard Worker #if defined(_WIN32)
51*54e60f84SAndroid Build Coastguard Worker #include "win32/va_win32.h"
52*54e60f84SAndroid Build Coastguard Worker #include "compat_win32.h"
53*54e60f84SAndroid Build Coastguard Worker #else
54*54e60f84SAndroid Build Coastguard Worker #include <dlfcn.h>
55*54e60f84SAndroid Build Coastguard Worker #include <unistd.h>
56*54e60f84SAndroid Build Coastguard Worker #include <sys/types.h>
57*54e60f84SAndroid Build Coastguard Worker #include <sys/stat.h>
58*54e60f84SAndroid Build Coastguard Worker #include <pthread.h>
59*54e60f84SAndroid Build Coastguard Worker #include <sys/time.h>
60*54e60f84SAndroid Build Coastguard Worker #include <errno.h>
61*54e60f84SAndroid Build Coastguard Worker #endif
62*54e60f84SAndroid Build Coastguard Worker 
63*54e60f84SAndroid Build Coastguard Worker #if defined(__linux__)
64*54e60f84SAndroid Build Coastguard Worker #include <sys/syscall.h>
65*54e60f84SAndroid Build Coastguard Worker #elif defined(__DragonFly__) || defined(__FreeBSD__)
66*54e60f84SAndroid Build Coastguard Worker #include <pthread_np.h>
67*54e60f84SAndroid Build Coastguard Worker #elif defined(__NetBSD__)
68*54e60f84SAndroid Build Coastguard Worker #include <lwp.h>
69*54e60f84SAndroid Build Coastguard Worker #elif defined(__sun)
70*54e60f84SAndroid Build Coastguard Worker #include <thread.h>
71*54e60f84SAndroid Build Coastguard Worker #endif
72*54e60f84SAndroid Build Coastguard Worker 
73*54e60f84SAndroid Build Coastguard Worker /* bionic, glibc >= 2.30, musl >= 1.3 have gettid(), so add va_ prefix */
va_gettid()74*54e60f84SAndroid Build Coastguard Worker static pid_t va_gettid()
75*54e60f84SAndroid Build Coastguard Worker {
76*54e60f84SAndroid Build Coastguard Worker #if defined(_WIN32)
77*54e60f84SAndroid Build Coastguard Worker     return GetCurrentThreadId();
78*54e60f84SAndroid Build Coastguard Worker #elif defined(__linux__)
79*54e60f84SAndroid Build Coastguard Worker     return syscall(__NR_gettid);
80*54e60f84SAndroid Build Coastguard Worker #elif defined(__DragonFly__) || defined(__FreeBSD__)
81*54e60f84SAndroid Build Coastguard Worker     return pthread_getthreadid_np();
82*54e60f84SAndroid Build Coastguard Worker #elif defined(__NetBSD__)
83*54e60f84SAndroid Build Coastguard Worker     return _lwp_self();
84*54e60f84SAndroid Build Coastguard Worker #elif defined(__OpenBSD__)
85*54e60f84SAndroid Build Coastguard Worker     return getthrid();
86*54e60f84SAndroid Build Coastguard Worker #elif defined(__sun)
87*54e60f84SAndroid Build Coastguard Worker     return thr_self();
88*54e60f84SAndroid Build Coastguard Worker #else
89*54e60f84SAndroid Build Coastguard Worker #warning "Cannot get kernel thread identifier on this platform."
90*54e60f84SAndroid Build Coastguard Worker     return (intptr_t)pthread_self();
91*54e60f84SAndroid Build Coastguard Worker #endif
92*54e60f84SAndroid Build Coastguard Worker }
93*54e60f84SAndroid Build Coastguard Worker 
94*54e60f84SAndroid Build Coastguard Worker /*
95*54e60f84SAndroid Build Coastguard Worker  * Env. to debug some issue, e.g. the decode/encode issue in a video conference scenerio:
96*54e60f84SAndroid Build Coastguard Worker  * .LIBVA_TRACE=log_file: general VA parameters saved into log_file
97*54e60f84SAndroid Build Coastguard Worker  * .LIBVA_TRACE=FTRACE: trace general VA parameters into linux ftrace framework, use trace-cmd to capture and parse by tracetool in libva-utils
98*54e60f84SAndroid Build Coastguard Worker  * .LIBVA_TRACE_BUFDATA: dump all VA data buffer into log_file
99*54e60f84SAndroid Build Coastguard Worker  *                       when LIBVA_TRACE in FTRACE mode, all data are redirected to linux ftrace, finally parsed by tracetool
100*54e60f84SAndroid Build Coastguard Worker  * .LIBVA_TRACE_CODEDBUF=coded_clip_file: save the coded clip into file coded_clip_file
101*54e60f84SAndroid Build Coastguard Worker  * .LIBVA_TRACE_SURFACE=yuv_file: save surface YUV into file yuv_file. Use file name to determine
102*54e60f84SAndroid Build Coastguard Worker  *                                decode/encode or jpeg surfaces
103*54e60f84SAndroid Build Coastguard Worker  * .LIBVA_TRACE_SURFACE_GEOMETRY=WIDTHxHEIGHT+XOFF+YOFF: only save part of surface context into file
104*54e60f84SAndroid Build Coastguard Worker  *                                due to storage bandwidth limitation
105*54e60f84SAndroid Build Coastguard Worker  */
106*54e60f84SAndroid Build Coastguard Worker 
107*54e60f84SAndroid Build Coastguard Worker /* global settings */
108*54e60f84SAndroid Build Coastguard Worker 
109*54e60f84SAndroid Build Coastguard Worker /* LIBVA_TRACE */
110*54e60f84SAndroid Build Coastguard Worker int va_trace_flag = 0;
111*54e60f84SAndroid Build Coastguard Worker 
112*54e60f84SAndroid Build Coastguard Worker #define MAX_TRACE_CTX_NUM   64
113*54e60f84SAndroid Build Coastguard Worker #define TRACE_CTX_ID_MASK      (MAX_TRACE_CTX_NUM - 1)
114*54e60f84SAndroid Build Coastguard Worker 
115*54e60f84SAndroid Build Coastguard Worker #define MAX_TRACE_THREAD_NUM   64
116*54e60f84SAndroid Build Coastguard Worker 
117*54e60f84SAndroid Build Coastguard Worker #define MAX_TRACE_BUF_INFO_HASH_SIZE     1024 // 1<<10
118*54e60f84SAndroid Build Coastguard Worker #define MAX_TRACE_BUF_INFO_HASH_LEVEL    3
119*54e60f84SAndroid Build Coastguard Worker #define TRACE_BUF_INFO_HASH_ID_MASK         (MAX_TRACE_BUF_INFO_HASH_SIZE - 1)
120*54e60f84SAndroid Build Coastguard Worker 
121*54e60f84SAndroid Build Coastguard Worker struct trace_buf_info {
122*54e60f84SAndroid Build Coastguard Worker     int valid;
123*54e60f84SAndroid Build Coastguard Worker 
124*54e60f84SAndroid Build Coastguard Worker     VABufferID buf_id;
125*54e60f84SAndroid Build Coastguard Worker     VAContextID ctx_id;
126*54e60f84SAndroid Build Coastguard Worker };
127*54e60f84SAndroid Build Coastguard Worker 
128*54e60f84SAndroid Build Coastguard Worker struct trace_buf_manager {
129*54e60f84SAndroid Build Coastguard Worker     struct trace_buf_info *pbuf_info[MAX_TRACE_BUF_INFO_HASH_LEVEL];
130*54e60f84SAndroid Build Coastguard Worker };
131*54e60f84SAndroid Build Coastguard Worker 
132*54e60f84SAndroid Build Coastguard Worker struct trace_log_file {
133*54e60f84SAndroid Build Coastguard Worker     pid_t thread_id;
134*54e60f84SAndroid Build Coastguard Worker     int used;
135*54e60f84SAndroid Build Coastguard Worker 
136*54e60f84SAndroid Build Coastguard Worker     char *fn_log;
137*54e60f84SAndroid Build Coastguard Worker     FILE *fp_log;
138*54e60f84SAndroid Build Coastguard Worker };
139*54e60f84SAndroid Build Coastguard Worker 
140*54e60f84SAndroid Build Coastguard Worker struct trace_log_files_manager {
141*54e60f84SAndroid Build Coastguard Worker     struct trace_log_file log_file[MAX_TRACE_THREAD_NUM];
142*54e60f84SAndroid Build Coastguard Worker };
143*54e60f84SAndroid Build Coastguard Worker 
144*54e60f84SAndroid Build Coastguard Worker /* per context settings */
145*54e60f84SAndroid Build Coastguard Worker struct trace_context {
146*54e60f84SAndroid Build Coastguard Worker     struct trace_log_file *plog_file;
147*54e60f84SAndroid Build Coastguard Worker     struct trace_log_file *plog_file_list[MAX_TRACE_THREAD_NUM];
148*54e60f84SAndroid Build Coastguard Worker 
149*54e60f84SAndroid Build Coastguard Worker     /* LIBVA_TRACE_CODEDBUF */
150*54e60f84SAndroid Build Coastguard Worker     FILE *trace_fp_codedbuf; /* save the encode result into a file */
151*54e60f84SAndroid Build Coastguard Worker     char *trace_codedbuf_fn; /* file name */
152*54e60f84SAndroid Build Coastguard Worker 
153*54e60f84SAndroid Build Coastguard Worker     /* LIBVA_TRACE_SURFACE */
154*54e60f84SAndroid Build Coastguard Worker     FILE *trace_fp_surface; /* save the surface YUV into a file */
155*54e60f84SAndroid Build Coastguard Worker     char *trace_surface_fn; /* file name */
156*54e60f84SAndroid Build Coastguard Worker 
157*54e60f84SAndroid Build Coastguard Worker     VAContextID  trace_context; /* current context */
158*54e60f84SAndroid Build Coastguard Worker 
159*54e60f84SAndroid Build Coastguard Worker     VASurfaceID  trace_rendertarget; /* current render target */
160*54e60f84SAndroid Build Coastguard Worker     VAProfile trace_profile; /* current profile for buffers */
161*54e60f84SAndroid Build Coastguard Worker     VAEntrypoint trace_entrypoint; /* current entrypoint */
162*54e60f84SAndroid Build Coastguard Worker 
163*54e60f84SAndroid Build Coastguard Worker     unsigned int trace_frame_no; /* current frame NO */
164*54e60f84SAndroid Build Coastguard Worker     unsigned int trace_slice_no; /* current slice NO */
165*54e60f84SAndroid Build Coastguard Worker     unsigned int trace_slice_size; /* current slice buffer size */
166*54e60f84SAndroid Build Coastguard Worker 
167*54e60f84SAndroid Build Coastguard Worker     unsigned int trace_surface_width; /* surface dumping geometry */
168*54e60f84SAndroid Build Coastguard Worker     unsigned int trace_surface_height;
169*54e60f84SAndroid Build Coastguard Worker     unsigned int trace_surface_xoff;
170*54e60f84SAndroid Build Coastguard Worker     unsigned int trace_surface_yoff;
171*54e60f84SAndroid Build Coastguard Worker 
172*54e60f84SAndroid Build Coastguard Worker     unsigned int trace_frame_width; /* current frame width */
173*54e60f84SAndroid Build Coastguard Worker     unsigned int trace_frame_height; /* current frame height */
174*54e60f84SAndroid Build Coastguard Worker 
175*54e60f84SAndroid Build Coastguard Worker     unsigned int pts; /* IVF header information */
176*54e60f84SAndroid Build Coastguard Worker 
177*54e60f84SAndroid Build Coastguard Worker     pid_t created_thd_id;
178*54e60f84SAndroid Build Coastguard Worker };
179*54e60f84SAndroid Build Coastguard Worker 
180*54e60f84SAndroid Build Coastguard Worker struct trace_config_info {
181*54e60f84SAndroid Build Coastguard Worker     int valid;
182*54e60f84SAndroid Build Coastguard Worker     VAConfigID config_id;
183*54e60f84SAndroid Build Coastguard Worker 
184*54e60f84SAndroid Build Coastguard Worker     VAProfile trace_profile;
185*54e60f84SAndroid Build Coastguard Worker     VAEntrypoint trace_entrypoint;
186*54e60f84SAndroid Build Coastguard Worker 
187*54e60f84SAndroid Build Coastguard Worker     pid_t created_thd_id;
188*54e60f84SAndroid Build Coastguard Worker };
189*54e60f84SAndroid Build Coastguard Worker 
190*54e60f84SAndroid Build Coastguard Worker struct va_trace {
191*54e60f84SAndroid Build Coastguard Worker     struct trace_context *ptra_ctx[MAX_TRACE_CTX_NUM + 1];
192*54e60f84SAndroid Build Coastguard Worker     int context_num;
193*54e60f84SAndroid Build Coastguard Worker     struct trace_buf_manager buf_manager;
194*54e60f84SAndroid Build Coastguard Worker     struct trace_log_files_manager log_files_manager;
195*54e60f84SAndroid Build Coastguard Worker     struct trace_config_info config_info[MAX_TRACE_CTX_NUM];
196*54e60f84SAndroid Build Coastguard Worker 
197*54e60f84SAndroid Build Coastguard Worker     char *fn_log_env;
198*54e60f84SAndroid Build Coastguard Worker     char *fn_codedbuf_env;
199*54e60f84SAndroid Build Coastguard Worker     char *fn_surface_env;
200*54e60f84SAndroid Build Coastguard Worker     pthread_mutex_t resource_mutex;
201*54e60f84SAndroid Build Coastguard Worker     pthread_mutex_t context_mutex;
202*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy;
203*54e60f84SAndroid Build Coastguard Worker     int ftrace_fd;
204*54e60f84SAndroid Build Coastguard Worker };
205*54e60f84SAndroid Build Coastguard Worker 
206*54e60f84SAndroid Build Coastguard Worker #define LOCK_RESOURCE(pva_trace)                                    \
207*54e60f84SAndroid Build Coastguard Worker     if(pva_trace)                                                   \
208*54e60f84SAndroid Build Coastguard Worker         pthread_mutex_lock(&pva_trace->resource_mutex)
209*54e60f84SAndroid Build Coastguard Worker 
210*54e60f84SAndroid Build Coastguard Worker #define UNLOCK_RESOURCE(pva_trace)                                  \
211*54e60f84SAndroid Build Coastguard Worker     if(pva_trace)                                                   \
212*54e60f84SAndroid Build Coastguard Worker         pthread_mutex_unlock(&pva_trace->resource_mutex)
213*54e60f84SAndroid Build Coastguard Worker 
214*54e60f84SAndroid Build Coastguard Worker #define LOCK_CONTEXT(pva_trace)                                     \
215*54e60f84SAndroid Build Coastguard Worker         if(pva_trace)                                               \
216*54e60f84SAndroid Build Coastguard Worker             pthread_mutex_lock(&pva_trace->context_mutex)
217*54e60f84SAndroid Build Coastguard Worker 
218*54e60f84SAndroid Build Coastguard Worker #define UNLOCK_CONTEXT(pva_trace)                                   \
219*54e60f84SAndroid Build Coastguard Worker         if(pva_trace)                                               \
220*54e60f84SAndroid Build Coastguard Worker             pthread_mutex_unlock(&pva_trace->context_mutex)
221*54e60f84SAndroid Build Coastguard Worker 
222*54e60f84SAndroid Build Coastguard Worker #define DPY2TRACECTX(dpy, context, buf_id)                                  \
223*54e60f84SAndroid Build Coastguard Worker     struct va_trace *pva_trace = NULL;                                      \
224*54e60f84SAndroid Build Coastguard Worker     struct trace_context *trace_ctx = NULL;                                 \
225*54e60f84SAndroid Build Coastguard Worker     VAContextID ctx_id = context;                                           \
226*54e60f84SAndroid Build Coastguard Worker                                                                             \
227*54e60f84SAndroid Build Coastguard Worker     pva_trace = (struct va_trace *)(((VADisplayContextP)dpy)->vatrace);     \
228*54e60f84SAndroid Build Coastguard Worker     if(!pva_trace)                                                          \
229*54e60f84SAndroid Build Coastguard Worker         return;                                                             \
230*54e60f84SAndroid Build Coastguard Worker                                                                             \
231*54e60f84SAndroid Build Coastguard Worker     if(ctx_id == VA_INVALID_ID) {                                           \
232*54e60f84SAndroid Build Coastguard Worker         if(buf_id != VA_INVALID_ID)                                         \
233*54e60f84SAndroid Build Coastguard Worker             ctx_id = get_ctx_by_buf(pva_trace, buf_id);                     \
234*54e60f84SAndroid Build Coastguard Worker         else                                                                \
235*54e60f84SAndroid Build Coastguard Worker             return;                                                         \
236*54e60f84SAndroid Build Coastguard Worker     }                                                                       \
237*54e60f84SAndroid Build Coastguard Worker                                                                             \
238*54e60f84SAndroid Build Coastguard Worker     if (ctx_id != VA_INVALID_ID) {                                          \
239*54e60f84SAndroid Build Coastguard Worker         int temp_idx = get_valid_ctx_idx(pva_trace, ctx_id);                \
240*54e60f84SAndroid Build Coastguard Worker         if(temp_idx < MAX_TRACE_CTX_NUM)                                    \
241*54e60f84SAndroid Build Coastguard Worker             trace_ctx = pva_trace->ptra_ctx[temp_idx];                      \
242*54e60f84SAndroid Build Coastguard Worker     }                                                                       \
243*54e60f84SAndroid Build Coastguard Worker                                                                             \
244*54e60f84SAndroid Build Coastguard Worker     if(!trace_ctx                                                           \
245*54e60f84SAndroid Build Coastguard Worker         || trace_ctx->trace_context != context) {                           \
246*54e60f84SAndroid Build Coastguard Worker         return;                                                             \
247*54e60f84SAndroid Build Coastguard Worker     }                                                                       \
248*54e60f84SAndroid Build Coastguard Worker     refresh_log_file(pva_trace, trace_ctx)
249*54e60f84SAndroid Build Coastguard Worker 
250*54e60f84SAndroid Build Coastguard Worker #define DPY2TRACE_VIRCTX(dpy)                                               \
251*54e60f84SAndroid Build Coastguard Worker     struct va_trace *pva_trace = NULL;                                      \
252*54e60f84SAndroid Build Coastguard Worker     struct trace_context *trace_ctx = NULL;                                 \
253*54e60f84SAndroid Build Coastguard Worker                                                                             \
254*54e60f84SAndroid Build Coastguard Worker     pva_trace = (struct va_trace *)(((VADisplayContextP)dpy)->vatrace);     \
255*54e60f84SAndroid Build Coastguard Worker     if(!pva_trace)                                                          \
256*54e60f84SAndroid Build Coastguard Worker         return;                                                             \
257*54e60f84SAndroid Build Coastguard Worker                                                                             \
258*54e60f84SAndroid Build Coastguard Worker     LOCK_CONTEXT(pva_trace);                                                \
259*54e60f84SAndroid Build Coastguard Worker     trace_ctx = pva_trace->ptra_ctx[MAX_TRACE_CTX_NUM];                     \
260*54e60f84SAndroid Build Coastguard Worker     if(!trace_ctx) {                                                        \
261*54e60f84SAndroid Build Coastguard Worker         UNLOCK_CONTEXT(pva_trace);                                          \
262*54e60f84SAndroid Build Coastguard Worker         return;                                                             \
263*54e60f84SAndroid Build Coastguard Worker     }                                                                       \
264*54e60f84SAndroid Build Coastguard Worker     refresh_log_file(pva_trace, trace_ctx)
265*54e60f84SAndroid Build Coastguard Worker 
266*54e60f84SAndroid Build Coastguard Worker #define DPY2TRACE_VIRCTX_EXIT(pva_trace)                                \
267*54e60f84SAndroid Build Coastguard Worker     UNLOCK_CONTEXT(pva_trace)
268*54e60f84SAndroid Build Coastguard Worker 
269*54e60f84SAndroid Build Coastguard Worker #define TRACE_FUNCNAME(idx)    va_TraceMsg(trace_ctx, "==========%s\n", __func__);
270*54e60f84SAndroid Build Coastguard Worker 
271*54e60f84SAndroid Build Coastguard Worker #define TRACE_NEWLINE() do { \
272*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n"); \
273*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "") ; \
274*54e60f84SAndroid Build Coastguard Worker } while (0)
275*54e60f84SAndroid Build Coastguard Worker 
276*54e60f84SAndroid Build Coastguard Worker 
277*54e60f84SAndroid Build Coastguard Worker #define VA_TRACE_MAX_SIZE          (1024)
278*54e60f84SAndroid Build Coastguard Worker #define VA_TRACE_HEADER_SIZE       (sizeof(uint32_t)*3)
279*54e60f84SAndroid Build Coastguard Worker #define VA_TRACE_ID                (0x45544156)   // VATraceEvent in little endian
280*54e60f84SAndroid Build Coastguard Worker #define FTRACE_ENTRY               "/sys/kernel/debug/tracing/trace_marker_raw"
281*54e60f84SAndroid Build Coastguard Worker 
282*54e60f84SAndroid Build Coastguard Worker VAStatus vaBufferInfo(
283*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
284*54e60f84SAndroid Build Coastguard Worker     VAContextID context,        /* in */
285*54e60f84SAndroid Build Coastguard Worker     VABufferID buf_id,          /* in */
286*54e60f84SAndroid Build Coastguard Worker     VABufferType *type,         /* out */
287*54e60f84SAndroid Build Coastguard Worker     unsigned int *size,         /* out */
288*54e60f84SAndroid Build Coastguard Worker     unsigned int *num_elements  /* out */
289*54e60f84SAndroid Build Coastguard Worker );
290*54e60f84SAndroid Build Coastguard Worker 
291*54e60f84SAndroid Build Coastguard Worker VAStatus vaLockSurface(VADisplay dpy,
292*54e60f84SAndroid Build Coastguard Worker                        VASurfaceID surface,
293*54e60f84SAndroid Build Coastguard Worker                        unsigned int *fourcc, /* following are output argument */
294*54e60f84SAndroid Build Coastguard Worker                        unsigned int *luma_stride,
295*54e60f84SAndroid Build Coastguard Worker                        unsigned int *chroma_u_stride,
296*54e60f84SAndroid Build Coastguard Worker                        unsigned int *chroma_v_stride,
297*54e60f84SAndroid Build Coastguard Worker                        unsigned int *luma_offset,
298*54e60f84SAndroid Build Coastguard Worker                        unsigned int *chroma_u_offset,
299*54e60f84SAndroid Build Coastguard Worker                        unsigned int *chroma_v_offset,
300*54e60f84SAndroid Build Coastguard Worker                        unsigned int *buffer_name,
301*54e60f84SAndroid Build Coastguard Worker                        void **buffer
302*54e60f84SAndroid Build Coastguard Worker                       );
303*54e60f84SAndroid Build Coastguard Worker 
304*54e60f84SAndroid Build Coastguard Worker VAStatus vaUnlockSurface(VADisplay dpy,
305*54e60f84SAndroid Build Coastguard Worker                          VASurfaceID surface
306*54e60f84SAndroid Build Coastguard Worker                         );
307*54e60f84SAndroid Build Coastguard Worker 
get_valid_config_idx(struct va_trace * pva_trace,VAConfigID config_id)308*54e60f84SAndroid Build Coastguard Worker static int get_valid_config_idx(
309*54e60f84SAndroid Build Coastguard Worker     struct va_trace *pva_trace,
310*54e60f84SAndroid Build Coastguard Worker     VAConfigID config_id)
311*54e60f84SAndroid Build Coastguard Worker {
312*54e60f84SAndroid Build Coastguard Worker     int idx = MAX_TRACE_CTX_NUM;
313*54e60f84SAndroid Build Coastguard Worker 
314*54e60f84SAndroid Build Coastguard Worker     LOCK_RESOURCE(pva_trace);
315*54e60f84SAndroid Build Coastguard Worker 
316*54e60f84SAndroid Build Coastguard Worker     for (idx = 0; idx < MAX_TRACE_CTX_NUM; idx++) {
317*54e60f84SAndroid Build Coastguard Worker         if (pva_trace->config_info[idx].valid &&
318*54e60f84SAndroid Build Coastguard Worker             pva_trace->config_info[idx].config_id == config_id)
319*54e60f84SAndroid Build Coastguard Worker             break;
320*54e60f84SAndroid Build Coastguard Worker     }
321*54e60f84SAndroid Build Coastguard Worker 
322*54e60f84SAndroid Build Coastguard Worker     UNLOCK_RESOURCE(pva_trace);
323*54e60f84SAndroid Build Coastguard Worker 
324*54e60f84SAndroid Build Coastguard Worker     return idx;
325*54e60f84SAndroid Build Coastguard Worker }
326*54e60f84SAndroid Build Coastguard Worker 
add_trace_config_info(struct va_trace * pva_trace,VAConfigID config_id,VAProfile profile,VAEntrypoint entrypoint)327*54e60f84SAndroid Build Coastguard Worker static void add_trace_config_info(
328*54e60f84SAndroid Build Coastguard Worker     struct va_trace *pva_trace,
329*54e60f84SAndroid Build Coastguard Worker     VAConfigID config_id,
330*54e60f84SAndroid Build Coastguard Worker     VAProfile profile,
331*54e60f84SAndroid Build Coastguard Worker     VAEntrypoint entrypoint)
332*54e60f84SAndroid Build Coastguard Worker {
333*54e60f84SAndroid Build Coastguard Worker     struct trace_config_info *pconfig_info;
334*54e60f84SAndroid Build Coastguard Worker     int idx = 0;
335*54e60f84SAndroid Build Coastguard Worker     pid_t thd_id = va_gettid();
336*54e60f84SAndroid Build Coastguard Worker 
337*54e60f84SAndroid Build Coastguard Worker     LOCK_RESOURCE(pva_trace);
338*54e60f84SAndroid Build Coastguard Worker 
339*54e60f84SAndroid Build Coastguard Worker     for (idx = 0; idx < MAX_TRACE_CTX_NUM; idx++) {
340*54e60f84SAndroid Build Coastguard Worker         if (!pva_trace->config_info[idx].valid ||
341*54e60f84SAndroid Build Coastguard Worker             pva_trace->config_info[idx].config_id == config_id)
342*54e60f84SAndroid Build Coastguard Worker             break;
343*54e60f84SAndroid Build Coastguard Worker     }
344*54e60f84SAndroid Build Coastguard Worker 
345*54e60f84SAndroid Build Coastguard Worker     if (idx < MAX_TRACE_CTX_NUM) {
346*54e60f84SAndroid Build Coastguard Worker         pconfig_info = &pva_trace->config_info[idx];
347*54e60f84SAndroid Build Coastguard Worker 
348*54e60f84SAndroid Build Coastguard Worker         pconfig_info->valid = 1;
349*54e60f84SAndroid Build Coastguard Worker         pconfig_info->config_id = config_id;
350*54e60f84SAndroid Build Coastguard Worker         pconfig_info->trace_profile = profile;
351*54e60f84SAndroid Build Coastguard Worker         pconfig_info->trace_entrypoint = entrypoint;
352*54e60f84SAndroid Build Coastguard Worker         pconfig_info->created_thd_id = thd_id;
353*54e60f84SAndroid Build Coastguard Worker     }
354*54e60f84SAndroid Build Coastguard Worker 
355*54e60f84SAndroid Build Coastguard Worker     UNLOCK_RESOURCE(pva_trace);
356*54e60f84SAndroid Build Coastguard Worker }
357*54e60f84SAndroid Build Coastguard Worker 
delete_trace_config_info(struct va_trace * pva_trace,VAConfigID config_id)358*54e60f84SAndroid Build Coastguard Worker static void delete_trace_config_info(
359*54e60f84SAndroid Build Coastguard Worker     struct va_trace *pva_trace,
360*54e60f84SAndroid Build Coastguard Worker     VAConfigID config_id)
361*54e60f84SAndroid Build Coastguard Worker {
362*54e60f84SAndroid Build Coastguard Worker     struct trace_config_info *pconfig_info;
363*54e60f84SAndroid Build Coastguard Worker     int idx = 0;
364*54e60f84SAndroid Build Coastguard Worker 
365*54e60f84SAndroid Build Coastguard Worker     LOCK_RESOURCE(pva_trace);
366*54e60f84SAndroid Build Coastguard Worker 
367*54e60f84SAndroid Build Coastguard Worker     for (idx = 0; idx < MAX_TRACE_CTX_NUM; idx++) {
368*54e60f84SAndroid Build Coastguard Worker         if (pva_trace->config_info[idx].valid &&
369*54e60f84SAndroid Build Coastguard Worker             pva_trace->config_info[idx].config_id == config_id)
370*54e60f84SAndroid Build Coastguard Worker             break;
371*54e60f84SAndroid Build Coastguard Worker     }
372*54e60f84SAndroid Build Coastguard Worker 
373*54e60f84SAndroid Build Coastguard Worker     if (idx < MAX_TRACE_CTX_NUM) {
374*54e60f84SAndroid Build Coastguard Worker         pconfig_info = &pva_trace->config_info[idx];
375*54e60f84SAndroid Build Coastguard Worker 
376*54e60f84SAndroid Build Coastguard Worker         pconfig_info->valid = 0;
377*54e60f84SAndroid Build Coastguard Worker         pconfig_info->config_id = -1;
378*54e60f84SAndroid Build Coastguard Worker     }
379*54e60f84SAndroid Build Coastguard Worker 
380*54e60f84SAndroid Build Coastguard Worker     UNLOCK_RESOURCE(pva_trace);
381*54e60f84SAndroid Build Coastguard Worker }
382*54e60f84SAndroid Build Coastguard Worker 
get_ctx_by_buf(struct va_trace * pva_trace,VABufferID buf_id)383*54e60f84SAndroid Build Coastguard Worker static VAContextID get_ctx_by_buf(
384*54e60f84SAndroid Build Coastguard Worker     struct va_trace *pva_trace,
385*54e60f84SAndroid Build Coastguard Worker     VABufferID buf_id)
386*54e60f84SAndroid Build Coastguard Worker {
387*54e60f84SAndroid Build Coastguard Worker     struct trace_buf_manager *pbuf_mgr = &pva_trace->buf_manager;
388*54e60f84SAndroid Build Coastguard Worker     struct trace_buf_info *pbuf_info = pbuf_mgr->pbuf_info[0];
389*54e60f84SAndroid Build Coastguard Worker     VAContextID context = VA_INVALID_ID;
390*54e60f84SAndroid Build Coastguard Worker     int i = 0, idx = 0;
391*54e60f84SAndroid Build Coastguard Worker 
392*54e60f84SAndroid Build Coastguard Worker     LOCK_RESOURCE(pva_trace);
393*54e60f84SAndroid Build Coastguard Worker 
394*54e60f84SAndroid Build Coastguard Worker     idx = buf_id & TRACE_BUF_INFO_HASH_ID_MASK;
395*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < MAX_TRACE_BUF_INFO_HASH_LEVEL; i++) {
396*54e60f84SAndroid Build Coastguard Worker         pbuf_info = pbuf_mgr->pbuf_info[i];
397*54e60f84SAndroid Build Coastguard Worker         if (!pbuf_info)
398*54e60f84SAndroid Build Coastguard Worker             break;
399*54e60f84SAndroid Build Coastguard Worker 
400*54e60f84SAndroid Build Coastguard Worker         if (pbuf_info[idx].valid
401*54e60f84SAndroid Build Coastguard Worker             && pbuf_info[idx].buf_id == buf_id) {
402*54e60f84SAndroid Build Coastguard Worker             context = pbuf_info[idx].ctx_id;
403*54e60f84SAndroid Build Coastguard Worker             break;
404*54e60f84SAndroid Build Coastguard Worker         }
405*54e60f84SAndroid Build Coastguard Worker     }
406*54e60f84SAndroid Build Coastguard Worker 
407*54e60f84SAndroid Build Coastguard Worker     UNLOCK_RESOURCE(pva_trace);
408*54e60f84SAndroid Build Coastguard Worker 
409*54e60f84SAndroid Build Coastguard Worker     return context;
410*54e60f84SAndroid Build Coastguard Worker }
411*54e60f84SAndroid Build Coastguard Worker 
add_trace_buf_info(struct va_trace * pva_trace,VAContextID context,VABufferID buf_id)412*54e60f84SAndroid Build Coastguard Worker static void add_trace_buf_info(
413*54e60f84SAndroid Build Coastguard Worker     struct va_trace *pva_trace,
414*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
415*54e60f84SAndroid Build Coastguard Worker     VABufferID buf_id)
416*54e60f84SAndroid Build Coastguard Worker {
417*54e60f84SAndroid Build Coastguard Worker     struct trace_buf_manager *pbuf_mgr = &pva_trace->buf_manager;
418*54e60f84SAndroid Build Coastguard Worker     struct trace_buf_info *pbuf_info = NULL;
419*54e60f84SAndroid Build Coastguard Worker     int i = 0, idx = 0;
420*54e60f84SAndroid Build Coastguard Worker 
421*54e60f84SAndroid Build Coastguard Worker     LOCK_RESOURCE(pva_trace);
422*54e60f84SAndroid Build Coastguard Worker 
423*54e60f84SAndroid Build Coastguard Worker     idx = buf_id & TRACE_BUF_INFO_HASH_ID_MASK;
424*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < MAX_TRACE_BUF_INFO_HASH_LEVEL; i++) {
425*54e60f84SAndroid Build Coastguard Worker         pbuf_info = pbuf_mgr->pbuf_info[i];
426*54e60f84SAndroid Build Coastguard Worker         if (!pbuf_info) {
427*54e60f84SAndroid Build Coastguard Worker             pbuf_info = (struct trace_buf_info *)calloc(
428*54e60f84SAndroid Build Coastguard Worker                             sizeof(struct trace_buf_info) * MAX_TRACE_BUF_INFO_HASH_SIZE,
429*54e60f84SAndroid Build Coastguard Worker                             1);
430*54e60f84SAndroid Build Coastguard Worker             if (!pbuf_info)
431*54e60f84SAndroid Build Coastguard Worker                 break;
432*54e60f84SAndroid Build Coastguard Worker 
433*54e60f84SAndroid Build Coastguard Worker             pbuf_mgr->pbuf_info[i] = pbuf_info;
434*54e60f84SAndroid Build Coastguard Worker         }
435*54e60f84SAndroid Build Coastguard Worker 
436*54e60f84SAndroid Build Coastguard Worker         if (pbuf_info[idx].valid
437*54e60f84SAndroid Build Coastguard Worker             && pbuf_info[idx].buf_id != buf_id)
438*54e60f84SAndroid Build Coastguard Worker             continue;
439*54e60f84SAndroid Build Coastguard Worker 
440*54e60f84SAndroid Build Coastguard Worker         pbuf_info[idx].buf_id = buf_id;
441*54e60f84SAndroid Build Coastguard Worker         pbuf_info[idx].ctx_id = context;
442*54e60f84SAndroid Build Coastguard Worker         pbuf_info[idx].valid = 1;
443*54e60f84SAndroid Build Coastguard Worker         break;
444*54e60f84SAndroid Build Coastguard Worker     }
445*54e60f84SAndroid Build Coastguard Worker 
446*54e60f84SAndroid Build Coastguard Worker     if (i >= MAX_TRACE_BUF_INFO_HASH_LEVEL)
447*54e60f84SAndroid Build Coastguard Worker         va_errorMessage(pva_trace->dpy, "Add buf info failed\n");
448*54e60f84SAndroid Build Coastguard Worker 
449*54e60f84SAndroid Build Coastguard Worker     UNLOCK_RESOURCE(pva_trace);
450*54e60f84SAndroid Build Coastguard Worker }
451*54e60f84SAndroid Build Coastguard Worker 
delete_trace_buf_info(struct va_trace * pva_trace,VABufferID buf_id)452*54e60f84SAndroid Build Coastguard Worker static void delete_trace_buf_info(
453*54e60f84SAndroid Build Coastguard Worker     struct va_trace *pva_trace,
454*54e60f84SAndroid Build Coastguard Worker     VABufferID buf_id)
455*54e60f84SAndroid Build Coastguard Worker {
456*54e60f84SAndroid Build Coastguard Worker     struct trace_buf_manager *pbuf_mgr = &pva_trace->buf_manager;
457*54e60f84SAndroid Build Coastguard Worker     struct trace_buf_info *pbuf_info = NULL;
458*54e60f84SAndroid Build Coastguard Worker     int i = 0, idx = 0;
459*54e60f84SAndroid Build Coastguard Worker 
460*54e60f84SAndroid Build Coastguard Worker     LOCK_RESOURCE(pva_trace);
461*54e60f84SAndroid Build Coastguard Worker 
462*54e60f84SAndroid Build Coastguard Worker     idx = buf_id & TRACE_BUF_INFO_HASH_ID_MASK;
463*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < MAX_TRACE_BUF_INFO_HASH_LEVEL; i++) {
464*54e60f84SAndroid Build Coastguard Worker         pbuf_info = pbuf_mgr->pbuf_info[i];
465*54e60f84SAndroid Build Coastguard Worker         if (!pbuf_info)
466*54e60f84SAndroid Build Coastguard Worker             break;
467*54e60f84SAndroid Build Coastguard Worker 
468*54e60f84SAndroid Build Coastguard Worker         if (pbuf_info[idx].valid
469*54e60f84SAndroid Build Coastguard Worker             && pbuf_info[idx].buf_id == buf_id) {
470*54e60f84SAndroid Build Coastguard Worker             pbuf_info[idx].valid = 0;
471*54e60f84SAndroid Build Coastguard Worker             break;
472*54e60f84SAndroid Build Coastguard Worker         }
473*54e60f84SAndroid Build Coastguard Worker     }
474*54e60f84SAndroid Build Coastguard Worker 
475*54e60f84SAndroid Build Coastguard Worker     UNLOCK_RESOURCE(pva_trace);
476*54e60f84SAndroid Build Coastguard Worker }
477*54e60f84SAndroid Build Coastguard Worker 
478*54e60f84SAndroid Build Coastguard Worker /*
479*54e60f84SAndroid Build Coastguard Worker static void delete_trace_all_context_buf(
480*54e60f84SAndroid Build Coastguard Worker     struct va_trace *pva_trace,
481*54e60f84SAndroid Build Coastguard Worker     VAContextID context)
482*54e60f84SAndroid Build Coastguard Worker {
483*54e60f84SAndroid Build Coastguard Worker     struct trace_buf_manager *pbuf_mgr = &pva_trace->buf_manager;
484*54e60f84SAndroid Build Coastguard Worker     struct trace_buf_info *pbuf_info = NULL;
485*54e60f84SAndroid Build Coastguard Worker     int i = 0, j = 0;
486*54e60f84SAndroid Build Coastguard Worker 
487*54e60f84SAndroid Build Coastguard Worker     LOCK_RESOURCE(pva_trace);
488*54e60f84SAndroid Build Coastguard Worker 
489*54e60f84SAndroid Build Coastguard Worker     for(i = 0;i < MAX_TRACE_BUF_INFO_HASH_LEVEL;i++) {
490*54e60f84SAndroid Build Coastguard Worker         pbuf_info = pbuf_mgr->pbuf_info[i];
491*54e60f84SAndroid Build Coastguard Worker         if(!pbuf_info)
492*54e60f84SAndroid Build Coastguard Worker             break;
493*54e60f84SAndroid Build Coastguard Worker 
494*54e60f84SAndroid Build Coastguard Worker         for(j = 0;j < MAX_TRACE_BUF_INFO_HASH_SIZE;j++)
495*54e60f84SAndroid Build Coastguard Worker             if(pbuf_info[j].valid
496*54e60f84SAndroid Build Coastguard Worker                 && pbuf_info[j].ctx_id == context)
497*54e60f84SAndroid Build Coastguard Worker                 pbuf_info[j].valid = 0;
498*54e60f84SAndroid Build Coastguard Worker     }
499*54e60f84SAndroid Build Coastguard Worker 
500*54e60f84SAndroid Build Coastguard Worker     UNLOCK_RESOURCE(pva_trace);
501*54e60f84SAndroid Build Coastguard Worker }
502*54e60f84SAndroid Build Coastguard Worker */
503*54e60f84SAndroid Build Coastguard Worker 
get_free_ctx_idx(struct va_trace * pva_trace,VAContextID context)504*54e60f84SAndroid Build Coastguard Worker static int get_free_ctx_idx(
505*54e60f84SAndroid Build Coastguard Worker     struct va_trace *pva_trace,
506*54e60f84SAndroid Build Coastguard Worker     VAContextID context)
507*54e60f84SAndroid Build Coastguard Worker {
508*54e60f84SAndroid Build Coastguard Worker     int idx;
509*54e60f84SAndroid Build Coastguard Worker 
510*54e60f84SAndroid Build Coastguard Worker     LOCK_RESOURCE(pva_trace);
511*54e60f84SAndroid Build Coastguard Worker 
512*54e60f84SAndroid Build Coastguard Worker     for (idx = 0; idx < MAX_TRACE_CTX_NUM; idx++)
513*54e60f84SAndroid Build Coastguard Worker         if (!pva_trace->ptra_ctx[idx] ||
514*54e60f84SAndroid Build Coastguard Worker             pva_trace->ptra_ctx[idx]->trace_context == context)
515*54e60f84SAndroid Build Coastguard Worker             break;
516*54e60f84SAndroid Build Coastguard Worker 
517*54e60f84SAndroid Build Coastguard Worker     UNLOCK_RESOURCE(pva_trace);
518*54e60f84SAndroid Build Coastguard Worker 
519*54e60f84SAndroid Build Coastguard Worker     return idx;
520*54e60f84SAndroid Build Coastguard Worker }
521*54e60f84SAndroid Build Coastguard Worker 
get_valid_ctx_idx(struct va_trace * pva_trace,VAContextID context)522*54e60f84SAndroid Build Coastguard Worker static int get_valid_ctx_idx(
523*54e60f84SAndroid Build Coastguard Worker     struct va_trace *pva_trace,
524*54e60f84SAndroid Build Coastguard Worker     VAContextID context)
525*54e60f84SAndroid Build Coastguard Worker {
526*54e60f84SAndroid Build Coastguard Worker     int idx;
527*54e60f84SAndroid Build Coastguard Worker 
528*54e60f84SAndroid Build Coastguard Worker     LOCK_RESOURCE(pva_trace);
529*54e60f84SAndroid Build Coastguard Worker 
530*54e60f84SAndroid Build Coastguard Worker     for (idx = 0; idx < MAX_TRACE_CTX_NUM; idx++)
531*54e60f84SAndroid Build Coastguard Worker         if (pva_trace->ptra_ctx[idx] &&
532*54e60f84SAndroid Build Coastguard Worker             pva_trace->ptra_ctx[idx]->trace_context == context)
533*54e60f84SAndroid Build Coastguard Worker             break;
534*54e60f84SAndroid Build Coastguard Worker 
535*54e60f84SAndroid Build Coastguard Worker     UNLOCK_RESOURCE(pva_trace);
536*54e60f84SAndroid Build Coastguard Worker 
537*54e60f84SAndroid Build Coastguard Worker     return idx;
538*54e60f84SAndroid Build Coastguard Worker }
539*54e60f84SAndroid Build Coastguard Worker 
FILE_NAME_SUFFIX(char * env_value,int max_size,char * suffix_str,unsigned int suffix_handle)540*54e60f84SAndroid Build Coastguard Worker static void FILE_NAME_SUFFIX(
541*54e60f84SAndroid Build Coastguard Worker     char *env_value,
542*54e60f84SAndroid Build Coastguard Worker     int max_size,
543*54e60f84SAndroid Build Coastguard Worker     char *suffix_str,
544*54e60f84SAndroid Build Coastguard Worker     unsigned int suffix_handle)
545*54e60f84SAndroid Build Coastguard Worker {
546*54e60f84SAndroid Build Coastguard Worker     int tmp = strnlen(env_value, max_size);
547*54e60f84SAndroid Build Coastguard Worker     int left = max_size - tmp;
548*54e60f84SAndroid Build Coastguard Worker     struct timeval tv;
549*54e60f84SAndroid Build Coastguard Worker     int size = 0;
550*54e60f84SAndroid Build Coastguard Worker 
551*54e60f84SAndroid Build Coastguard Worker     if (suffix_str)
552*54e60f84SAndroid Build Coastguard Worker         size = strlen(suffix_str);
553*54e60f84SAndroid Build Coastguard Worker 
554*54e60f84SAndroid Build Coastguard Worker     if (left < (size + 8 + 10))
555*54e60f84SAndroid Build Coastguard Worker         return;
556*54e60f84SAndroid Build Coastguard Worker 
557*54e60f84SAndroid Build Coastguard Worker     if (gettimeofday(&tv, NULL) == 0) {
558*54e60f84SAndroid Build Coastguard Worker         sprintf(env_value + tmp,
559*54e60f84SAndroid Build Coastguard Worker                 ".%02d%02d%02d.",
560*54e60f84SAndroid Build Coastguard Worker                 (unsigned int)(tv.tv_sec / 3600) % 24,
561*54e60f84SAndroid Build Coastguard Worker                 (unsigned int)(tv.tv_sec / 60) % 60,
562*54e60f84SAndroid Build Coastguard Worker                 (unsigned int)tv.tv_sec % 60);
563*54e60f84SAndroid Build Coastguard Worker 
564*54e60f84SAndroid Build Coastguard Worker         tmp += 8;
565*54e60f84SAndroid Build Coastguard Worker         left -= 8;
566*54e60f84SAndroid Build Coastguard Worker     }
567*54e60f84SAndroid Build Coastguard Worker 
568*54e60f84SAndroid Build Coastguard Worker     if (suffix_str) {
569*54e60f84SAndroid Build Coastguard Worker         strcat(env_value + tmp,
570*54e60f84SAndroid Build Coastguard Worker                suffix_str);
571*54e60f84SAndroid Build Coastguard Worker 
572*54e60f84SAndroid Build Coastguard Worker         tmp += size;
573*54e60f84SAndroid Build Coastguard Worker         left -= size;
574*54e60f84SAndroid Build Coastguard Worker     }
575*54e60f84SAndroid Build Coastguard Worker 
576*54e60f84SAndroid Build Coastguard Worker     if (suffix_handle) {
577*54e60f84SAndroid Build Coastguard Worker         sprintf(env_value + tmp,
578*54e60f84SAndroid Build Coastguard Worker                 "0x%08x",
579*54e60f84SAndroid Build Coastguard Worker                 suffix_handle);
580*54e60f84SAndroid Build Coastguard Worker     }
581*54e60f84SAndroid Build Coastguard Worker }
582*54e60f84SAndroid Build Coastguard Worker 
open_tracing_specil_file(struct va_trace * pva_trace,struct trace_context * ptra_ctx,int type)583*54e60f84SAndroid Build Coastguard Worker static int open_tracing_specil_file(
584*54e60f84SAndroid Build Coastguard Worker     struct va_trace *pva_trace,
585*54e60f84SAndroid Build Coastguard Worker     struct trace_context *ptra_ctx,
586*54e60f84SAndroid Build Coastguard Worker     int type) // 0: codedbuf, 1: surface
587*54e60f84SAndroid Build Coastguard Worker {
588*54e60f84SAndroid Build Coastguard Worker     char *fn_env = type == 0 ?
589*54e60f84SAndroid Build Coastguard Worker                    pva_trace->fn_codedbuf_env : pva_trace->fn_surface_env;
590*54e60f84SAndroid Build Coastguard Worker     char env_value[1024];
591*54e60f84SAndroid Build Coastguard Worker     FILE *fp = NULL;
592*54e60f84SAndroid Build Coastguard Worker 
593*54e60f84SAndroid Build Coastguard Worker     strncpy(env_value, fn_env, 1024);
594*54e60f84SAndroid Build Coastguard Worker     env_value[1023] = '\0';
595*54e60f84SAndroid Build Coastguard Worker     FILE_NAME_SUFFIX(env_value, 1024,
596*54e60f84SAndroid Build Coastguard Worker                      "ctx-", (unsigned int)ptra_ctx->trace_context);
597*54e60f84SAndroid Build Coastguard Worker 
598*54e60f84SAndroid Build Coastguard Worker     fn_env = strdup(env_value);
599*54e60f84SAndroid Build Coastguard Worker     if (!fn_env)
600*54e60f84SAndroid Build Coastguard Worker         return -1;
601*54e60f84SAndroid Build Coastguard Worker 
602*54e60f84SAndroid Build Coastguard Worker     fp = fopen(fn_env, "w");
603*54e60f84SAndroid Build Coastguard Worker     if (!fp) {
604*54e60f84SAndroid Build Coastguard Worker         free(fn_env);
605*54e60f84SAndroid Build Coastguard Worker 
606*54e60f84SAndroid Build Coastguard Worker         return -1;
607*54e60f84SAndroid Build Coastguard Worker     }
608*54e60f84SAndroid Build Coastguard Worker 
609*54e60f84SAndroid Build Coastguard Worker     if (type == 0) {
610*54e60f84SAndroid Build Coastguard Worker         ptra_ctx->trace_codedbuf_fn = fn_env;
611*54e60f84SAndroid Build Coastguard Worker         ptra_ctx->trace_fp_codedbuf = fp;
612*54e60f84SAndroid Build Coastguard Worker         va_infoMessage(pva_trace->dpy, "LIBVA_TRACE_CODEDBUF is on, save codedbuf into %s\n",
613*54e60f84SAndroid Build Coastguard Worker                        fn_env);
614*54e60f84SAndroid Build Coastguard Worker     } else {
615*54e60f84SAndroid Build Coastguard Worker         ptra_ctx->trace_surface_fn = fn_env;
616*54e60f84SAndroid Build Coastguard Worker         ptra_ctx->trace_fp_surface = fp;
617*54e60f84SAndroid Build Coastguard Worker         va_infoMessage(pva_trace->dpy, "LIBVA_TRACE_SURFACE is on, save surface into %s\n",
618*54e60f84SAndroid Build Coastguard Worker                        fn_env);
619*54e60f84SAndroid Build Coastguard Worker     }
620*54e60f84SAndroid Build Coastguard Worker 
621*54e60f84SAndroid Build Coastguard Worker     return 0;
622*54e60f84SAndroid Build Coastguard Worker }
623*54e60f84SAndroid Build Coastguard Worker 
open_tracing_log_file(struct va_trace * pva_trace,struct trace_log_file * plog_file,pid_t thd_id)624*54e60f84SAndroid Build Coastguard Worker static int open_tracing_log_file(
625*54e60f84SAndroid Build Coastguard Worker     struct va_trace *pva_trace,
626*54e60f84SAndroid Build Coastguard Worker     struct trace_log_file *plog_file,
627*54e60f84SAndroid Build Coastguard Worker     pid_t thd_id)
628*54e60f84SAndroid Build Coastguard Worker {
629*54e60f84SAndroid Build Coastguard Worker     FILE *pfp = NULL;
630*54e60f84SAndroid Build Coastguard Worker     int new_fn_flag = 0;
631*54e60f84SAndroid Build Coastguard Worker 
632*54e60f84SAndroid Build Coastguard Worker     if (plog_file->used && plog_file->thread_id != thd_id) {
633*54e60f84SAndroid Build Coastguard Worker         va_errorMessage(pva_trace->dpy, "Try to open a busy log file occupied by other thread\n");
634*54e60f84SAndroid Build Coastguard Worker 
635*54e60f84SAndroid Build Coastguard Worker         return -1;
636*54e60f84SAndroid Build Coastguard Worker     }
637*54e60f84SAndroid Build Coastguard Worker 
638*54e60f84SAndroid Build Coastguard Worker     if (plog_file->thread_id != thd_id) {
639*54e60f84SAndroid Build Coastguard Worker         char env_value[1024];
640*54e60f84SAndroid Build Coastguard Worker 
641*54e60f84SAndroid Build Coastguard Worker         strncpy(env_value, pva_trace->fn_log_env, 1024);
642*54e60f84SAndroid Build Coastguard Worker         env_value[1023] = '\0';
643*54e60f84SAndroid Build Coastguard Worker         FILE_NAME_SUFFIX(env_value, 1024,
644*54e60f84SAndroid Build Coastguard Worker                          "thd-", (unsigned int)thd_id);
645*54e60f84SAndroid Build Coastguard Worker 
646*54e60f84SAndroid Build Coastguard Worker         if (plog_file->fn_log)
647*54e60f84SAndroid Build Coastguard Worker             free(plog_file->fn_log);
648*54e60f84SAndroid Build Coastguard Worker 
649*54e60f84SAndroid Build Coastguard Worker         plog_file->fn_log = strdup(env_value);
650*54e60f84SAndroid Build Coastguard Worker         if (!plog_file->fn_log)
651*54e60f84SAndroid Build Coastguard Worker             goto FAIL;
652*54e60f84SAndroid Build Coastguard Worker 
653*54e60f84SAndroid Build Coastguard Worker         new_fn_flag = 1;
654*54e60f84SAndroid Build Coastguard Worker     }
655*54e60f84SAndroid Build Coastguard Worker 
656*54e60f84SAndroid Build Coastguard Worker     if (!plog_file->used) {
657*54e60f84SAndroid Build Coastguard Worker         if (new_fn_flag)
658*54e60f84SAndroid Build Coastguard Worker             pfp = fopen(plog_file->fn_log, "w");
659*54e60f84SAndroid Build Coastguard Worker         else
660*54e60f84SAndroid Build Coastguard Worker             pfp = fopen(plog_file->fn_log, "a");
661*54e60f84SAndroid Build Coastguard Worker 
662*54e60f84SAndroid Build Coastguard Worker         if (!pfp)
663*54e60f84SAndroid Build Coastguard Worker             goto FAIL;
664*54e60f84SAndroid Build Coastguard Worker 
665*54e60f84SAndroid Build Coastguard Worker         va_infoMessage(pva_trace->dpy, "%s %s for the thread 0x%08x\n",
666*54e60f84SAndroid Build Coastguard Worker                        new_fn_flag ? "Open new log file" : "Append to log file",
667*54e60f84SAndroid Build Coastguard Worker                        plog_file->fn_log, thd_id);
668*54e60f84SAndroid Build Coastguard Worker 
669*54e60f84SAndroid Build Coastguard Worker         plog_file->fp_log = pfp;
670*54e60f84SAndroid Build Coastguard Worker         plog_file->thread_id = thd_id;
671*54e60f84SAndroid Build Coastguard Worker     }
672*54e60f84SAndroid Build Coastguard Worker 
673*54e60f84SAndroid Build Coastguard Worker     plog_file->used++;
674*54e60f84SAndroid Build Coastguard Worker     return 0;
675*54e60f84SAndroid Build Coastguard Worker 
676*54e60f84SAndroid Build Coastguard Worker FAIL:
677*54e60f84SAndroid Build Coastguard Worker     if (plog_file->fn_log) {
678*54e60f84SAndroid Build Coastguard Worker         free(plog_file->fn_log);
679*54e60f84SAndroid Build Coastguard Worker         plog_file->fn_log = NULL;
680*54e60f84SAndroid Build Coastguard Worker     }
681*54e60f84SAndroid Build Coastguard Worker 
682*54e60f84SAndroid Build Coastguard Worker     return -1;
683*54e60f84SAndroid Build Coastguard Worker }
684*54e60f84SAndroid Build Coastguard Worker 
get_log_file_idx_by_thd(struct trace_log_files_manager * plog_files_mgr,pid_t thd_id)685*54e60f84SAndroid Build Coastguard Worker static int get_log_file_idx_by_thd(
686*54e60f84SAndroid Build Coastguard Worker     struct trace_log_files_manager *plog_files_mgr,
687*54e60f84SAndroid Build Coastguard Worker     pid_t thd_id)
688*54e60f84SAndroid Build Coastguard Worker {
689*54e60f84SAndroid Build Coastguard Worker     struct trace_log_file *plog_file = plog_files_mgr->log_file;
690*54e60f84SAndroid Build Coastguard Worker     int first_free_idx = MAX_TRACE_THREAD_NUM;
691*54e60f84SAndroid Build Coastguard Worker     int i = 0;
692*54e60f84SAndroid Build Coastguard Worker 
693*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < MAX_TRACE_THREAD_NUM; i++) {
694*54e60f84SAndroid Build Coastguard Worker         if (plog_file[i].thread_id == thd_id)
695*54e60f84SAndroid Build Coastguard Worker             break;
696*54e60f84SAndroid Build Coastguard Worker         else if (!plog_file[i].used &&
697*54e60f84SAndroid Build Coastguard Worker                  first_free_idx >= MAX_TRACE_THREAD_NUM)
698*54e60f84SAndroid Build Coastguard Worker             first_free_idx = i;
699*54e60f84SAndroid Build Coastguard Worker     }
700*54e60f84SAndroid Build Coastguard Worker 
701*54e60f84SAndroid Build Coastguard Worker     if (i >= MAX_TRACE_THREAD_NUM)
702*54e60f84SAndroid Build Coastguard Worker         i = first_free_idx;
703*54e60f84SAndroid Build Coastguard Worker 
704*54e60f84SAndroid Build Coastguard Worker     return i;
705*54e60f84SAndroid Build Coastguard Worker }
706*54e60f84SAndroid Build Coastguard Worker 
start_tracing2log_file(struct va_trace * pva_trace)707*54e60f84SAndroid Build Coastguard Worker static struct trace_log_file *start_tracing2log_file(
708*54e60f84SAndroid Build Coastguard Worker     struct va_trace *pva_trace)
709*54e60f84SAndroid Build Coastguard Worker {
710*54e60f84SAndroid Build Coastguard Worker     struct trace_log_files_manager *plog_files_mgr = NULL;
711*54e60f84SAndroid Build Coastguard Worker     struct trace_log_file *plog_file = NULL;
712*54e60f84SAndroid Build Coastguard Worker     pid_t thd_id = va_gettid();
713*54e60f84SAndroid Build Coastguard Worker     int i = 0;
714*54e60f84SAndroid Build Coastguard Worker 
715*54e60f84SAndroid Build Coastguard Worker     LOCK_RESOURCE(pva_trace);
716*54e60f84SAndroid Build Coastguard Worker 
717*54e60f84SAndroid Build Coastguard Worker     plog_files_mgr = &pva_trace->log_files_manager;
718*54e60f84SAndroid Build Coastguard Worker     i = get_log_file_idx_by_thd(plog_files_mgr, thd_id);
719*54e60f84SAndroid Build Coastguard Worker     if (i < MAX_TRACE_THREAD_NUM) {
720*54e60f84SAndroid Build Coastguard Worker         plog_file = &plog_files_mgr->log_file[i];
721*54e60f84SAndroid Build Coastguard Worker         if (open_tracing_log_file(pva_trace, plog_file, thd_id) < 0) {
722*54e60f84SAndroid Build Coastguard Worker             plog_file = NULL;
723*54e60f84SAndroid Build Coastguard Worker         }
724*54e60f84SAndroid Build Coastguard Worker     }
725*54e60f84SAndroid Build Coastguard Worker 
726*54e60f84SAndroid Build Coastguard Worker     UNLOCK_RESOURCE(pva_trace);
727*54e60f84SAndroid Build Coastguard Worker     return plog_file;
728*54e60f84SAndroid Build Coastguard Worker }
729*54e60f84SAndroid Build Coastguard Worker 
stop_tracing2log_file(struct va_trace * pva_trace,struct trace_log_file * plog_file)730*54e60f84SAndroid Build Coastguard Worker static void stop_tracing2log_file(
731*54e60f84SAndroid Build Coastguard Worker     struct va_trace *pva_trace,
732*54e60f84SAndroid Build Coastguard Worker     struct trace_log_file *plog_file)
733*54e60f84SAndroid Build Coastguard Worker {
734*54e60f84SAndroid Build Coastguard Worker     LOCK_RESOURCE(pva_trace);
735*54e60f84SAndroid Build Coastguard Worker 
736*54e60f84SAndroid Build Coastguard Worker     if (--plog_file->used <= 0) {
737*54e60f84SAndroid Build Coastguard Worker         if (plog_file->fp_log) {
738*54e60f84SAndroid Build Coastguard Worker             fclose(plog_file->fp_log);
739*54e60f84SAndroid Build Coastguard Worker             plog_file->fp_log = NULL;
740*54e60f84SAndroid Build Coastguard Worker         }
741*54e60f84SAndroid Build Coastguard Worker     }
742*54e60f84SAndroid Build Coastguard Worker 
743*54e60f84SAndroid Build Coastguard Worker     UNLOCK_RESOURCE(pva_trace);
744*54e60f84SAndroid Build Coastguard Worker }
745*54e60f84SAndroid Build Coastguard Worker 
refresh_log_file(struct va_trace * pva_trace,struct trace_context * ptra_ctx)746*54e60f84SAndroid Build Coastguard Worker static void refresh_log_file(
747*54e60f84SAndroid Build Coastguard Worker     struct va_trace *pva_trace,
748*54e60f84SAndroid Build Coastguard Worker     struct trace_context *ptra_ctx)
749*54e60f84SAndroid Build Coastguard Worker {
750*54e60f84SAndroid Build Coastguard Worker     struct trace_log_file *plog_file = NULL;
751*54e60f84SAndroid Build Coastguard Worker     pid_t thd_id = va_gettid();
752*54e60f84SAndroid Build Coastguard Worker     int i = 0;
753*54e60f84SAndroid Build Coastguard Worker 
754*54e60f84SAndroid Build Coastguard Worker     plog_file = ptra_ctx->plog_file;
755*54e60f84SAndroid Build Coastguard Worker     if (plog_file && plog_file->thread_id != thd_id) {
756*54e60f84SAndroid Build Coastguard Worker         plog_file = start_tracing2log_file(pva_trace);
757*54e60f84SAndroid Build Coastguard Worker         if (plog_file) {
758*54e60f84SAndroid Build Coastguard Worker             int first_free_idx = -1;
759*54e60f84SAndroid Build Coastguard Worker 
760*54e60f84SAndroid Build Coastguard Worker             ptra_ctx->plog_file = plog_file;
761*54e60f84SAndroid Build Coastguard Worker 
762*54e60f84SAndroid Build Coastguard Worker             for (i = 0; i < MAX_TRACE_THREAD_NUM; i++) {
763*54e60f84SAndroid Build Coastguard Worker                 if (!ptra_ctx->plog_file_list[i]) {
764*54e60f84SAndroid Build Coastguard Worker                     if (first_free_idx < 0)
765*54e60f84SAndroid Build Coastguard Worker                         first_free_idx = i;
766*54e60f84SAndroid Build Coastguard Worker                 } else if (ptra_ctx->plog_file_list[i]->thread_id == thd_id)
767*54e60f84SAndroid Build Coastguard Worker                     break;
768*54e60f84SAndroid Build Coastguard Worker             }
769*54e60f84SAndroid Build Coastguard Worker 
770*54e60f84SAndroid Build Coastguard Worker             if (i > MAX_TRACE_THREAD_NUM
771*54e60f84SAndroid Build Coastguard Worker                 && first_free_idx >= 0)
772*54e60f84SAndroid Build Coastguard Worker                 ptra_ctx->plog_file_list[first_free_idx] = plog_file;
773*54e60f84SAndroid Build Coastguard Worker         }
774*54e60f84SAndroid Build Coastguard Worker     }
775*54e60f84SAndroid Build Coastguard Worker }
776*54e60f84SAndroid Build Coastguard Worker 
va_TraceInit(VADisplay dpy)777*54e60f84SAndroid Build Coastguard Worker void va_TraceInit(VADisplay dpy)
778*54e60f84SAndroid Build Coastguard Worker {
779*54e60f84SAndroid Build Coastguard Worker     char env_value[1024];
780*54e60f84SAndroid Build Coastguard Worker     struct va_trace *pva_trace = calloc(sizeof(struct va_trace), 1);
781*54e60f84SAndroid Build Coastguard Worker     struct trace_context *trace_ctx = calloc(sizeof(struct trace_context), 1);
782*54e60f84SAndroid Build Coastguard Worker 
783*54e60f84SAndroid Build Coastguard Worker     if (pva_trace == NULL || trace_ctx == NULL) {
784*54e60f84SAndroid Build Coastguard Worker         free(pva_trace);
785*54e60f84SAndroid Build Coastguard Worker         free(trace_ctx);
786*54e60f84SAndroid Build Coastguard Worker 
787*54e60f84SAndroid Build Coastguard Worker         return;
788*54e60f84SAndroid Build Coastguard Worker     }
789*54e60f84SAndroid Build Coastguard Worker 
790*54e60f84SAndroid Build Coastguard Worker     pva_trace->dpy = dpy;
791*54e60f84SAndroid Build Coastguard Worker     pva_trace->ftrace_fd = -1;
792*54e60f84SAndroid Build Coastguard Worker 
793*54e60f84SAndroid Build Coastguard Worker     pthread_mutex_init(&pva_trace->resource_mutex, NULL);
794*54e60f84SAndroid Build Coastguard Worker     pthread_mutex_init(&pva_trace->context_mutex, NULL);
795*54e60f84SAndroid Build Coastguard Worker 
796*54e60f84SAndroid Build Coastguard Worker 
797*54e60f84SAndroid Build Coastguard Worker     if (va_parseConfig("LIBVA_TRACE", &env_value[0]) == 0) {
798*54e60f84SAndroid Build Coastguard Worker         pva_trace->fn_log_env = strdup(env_value);
799*54e60f84SAndroid Build Coastguard Worker         if (strcmp(env_value, "FTRACE") == 0) {
800*54e60f84SAndroid Build Coastguard Worker             pva_trace->ftrace_fd = open(FTRACE_ENTRY, O_WRONLY);
801*54e60f84SAndroid Build Coastguard Worker             if (pva_trace->ftrace_fd >= 0) {
802*54e60f84SAndroid Build Coastguard Worker                 va_trace_flag = VA_TRACE_FLAG_FTRACE;
803*54e60f84SAndroid Build Coastguard Worker                 va_infoMessage(dpy, "LIBVA_TRACE is active in ftrace mode, use trace-cmd to capture\n");
804*54e60f84SAndroid Build Coastguard Worker             } else {
805*54e60f84SAndroid Build Coastguard Worker                 va_errorMessage(dpy, "Open ftrace entry failed (%s)\n", strerror(errno));
806*54e60f84SAndroid Build Coastguard Worker             }
807*54e60f84SAndroid Build Coastguard Worker         } else {
808*54e60f84SAndroid Build Coastguard Worker             trace_ctx->plog_file = start_tracing2log_file(pva_trace);
809*54e60f84SAndroid Build Coastguard Worker             if (trace_ctx->plog_file) {
810*54e60f84SAndroid Build Coastguard Worker                 trace_ctx->plog_file_list[0] = trace_ctx->plog_file;
811*54e60f84SAndroid Build Coastguard Worker                 va_trace_flag = VA_TRACE_FLAG_LOG;
812*54e60f84SAndroid Build Coastguard Worker 
813*54e60f84SAndroid Build Coastguard Worker                 va_infoMessage(dpy, "LIBVA_TRACE is on, save log into %s\n",
814*54e60f84SAndroid Build Coastguard Worker                                trace_ctx->plog_file->fn_log);
815*54e60f84SAndroid Build Coastguard Worker             } else {
816*54e60f84SAndroid Build Coastguard Worker                 va_errorMessage(dpy, "Open file %s failed (%s)\n", env_value, strerror(errno));
817*54e60f84SAndroid Build Coastguard Worker             }
818*54e60f84SAndroid Build Coastguard Worker         }
819*54e60f84SAndroid Build Coastguard Worker     }
820*54e60f84SAndroid Build Coastguard Worker 
821*54e60f84SAndroid Build Coastguard Worker     /* may re-get the global settings for multiple context */
822*54e60f84SAndroid Build Coastguard Worker     if ((va_trace_flag & (VA_TRACE_FLAG_LOG | VA_TRACE_FLAG_FTRACE)) && (va_parseConfig("LIBVA_TRACE_BUFDATA", NULL) == 0)) {
823*54e60f84SAndroid Build Coastguard Worker         va_trace_flag |= VA_TRACE_FLAG_BUFDATA;
824*54e60f84SAndroid Build Coastguard Worker 
825*54e60f84SAndroid Build Coastguard Worker         va_infoMessage(dpy, "LIBVA_TRACE_BUFDATA is on, dump buffer into log file\n");
826*54e60f84SAndroid Build Coastguard Worker     }
827*54e60f84SAndroid Build Coastguard Worker 
828*54e60f84SAndroid Build Coastguard Worker     /* per-context setting */
829*54e60f84SAndroid Build Coastguard Worker     if (va_parseConfig("LIBVA_TRACE_CODEDBUF", &env_value[0]) == 0) {
830*54e60f84SAndroid Build Coastguard Worker         pva_trace->fn_codedbuf_env = strdup(env_value);
831*54e60f84SAndroid Build Coastguard Worker         va_trace_flag |= VA_TRACE_FLAG_CODEDBUF;
832*54e60f84SAndroid Build Coastguard Worker     }
833*54e60f84SAndroid Build Coastguard Worker 
834*54e60f84SAndroid Build Coastguard Worker     if (va_parseConfig("LIBVA_TRACE_SURFACE", &env_value[0]) == 0) {
835*54e60f84SAndroid Build Coastguard Worker         pva_trace->fn_surface_env = strdup(env_value);
836*54e60f84SAndroid Build Coastguard Worker 
837*54e60f84SAndroid Build Coastguard Worker         /* for surface data dump, it is time-consume, and may
838*54e60f84SAndroid Build Coastguard Worker          * cause some side-effect, so only trace the needed surfaces
839*54e60f84SAndroid Build Coastguard Worker          * to trace encode surface, set the trace file name to sth like *enc*
840*54e60f84SAndroid Build Coastguard Worker          * to trace decode surface, set the trace file name to sth like *dec*
841*54e60f84SAndroid Build Coastguard Worker          * if no dec/enc in file name, set both
842*54e60f84SAndroid Build Coastguard Worker          */
843*54e60f84SAndroid Build Coastguard Worker         if (strstr(env_value, "dec"))
844*54e60f84SAndroid Build Coastguard Worker             va_trace_flag |= VA_TRACE_FLAG_SURFACE_DECODE;
845*54e60f84SAndroid Build Coastguard Worker         if (strstr(env_value, "enc"))
846*54e60f84SAndroid Build Coastguard Worker             va_trace_flag |= VA_TRACE_FLAG_SURFACE_ENCODE;
847*54e60f84SAndroid Build Coastguard Worker         if (strstr(env_value, "jpeg") || strstr(env_value, "jpg"))
848*54e60f84SAndroid Build Coastguard Worker             va_trace_flag |= VA_TRACE_FLAG_SURFACE_JPEG;
849*54e60f84SAndroid Build Coastguard Worker 
850*54e60f84SAndroid Build Coastguard Worker         if (va_parseConfig("LIBVA_TRACE_SURFACE_GEOMETRY", &env_value[0]) == 0) {
851*54e60f84SAndroid Build Coastguard Worker             char *p = env_value, *q;
852*54e60f84SAndroid Build Coastguard Worker 
853*54e60f84SAndroid Build Coastguard Worker             trace_ctx->trace_surface_width = (unsigned int) strtod(p, &q);
854*54e60f84SAndroid Build Coastguard Worker             p = q + 1; /* skip "x" */
855*54e60f84SAndroid Build Coastguard Worker             trace_ctx->trace_surface_height = (unsigned int) strtod(p, &q);
856*54e60f84SAndroid Build Coastguard Worker             p = q + 1; /* skip "+" */
857*54e60f84SAndroid Build Coastguard Worker             trace_ctx->trace_surface_xoff = (unsigned int) strtod(p, &q);
858*54e60f84SAndroid Build Coastguard Worker             p = q + 1; /* skip "+" */
859*54e60f84SAndroid Build Coastguard Worker             trace_ctx->trace_surface_yoff = (unsigned int) strtod(p, &q);
860*54e60f84SAndroid Build Coastguard Worker 
861*54e60f84SAndroid Build Coastguard Worker             va_infoMessage(dpy, "LIBVA_TRACE_SURFACE_GEOMETRY is on, only dump surface %dx%d+%d+%d content\n",
862*54e60f84SAndroid Build Coastguard Worker                            trace_ctx->trace_surface_width,
863*54e60f84SAndroid Build Coastguard Worker                            trace_ctx->trace_surface_height,
864*54e60f84SAndroid Build Coastguard Worker                            trace_ctx->trace_surface_xoff,
865*54e60f84SAndroid Build Coastguard Worker                            trace_ctx->trace_surface_yoff);
866*54e60f84SAndroid Build Coastguard Worker         }
867*54e60f84SAndroid Build Coastguard Worker     }
868*54e60f84SAndroid Build Coastguard Worker 
869*54e60f84SAndroid Build Coastguard Worker     trace_ctx->trace_context = VA_INVALID_ID;
870*54e60f84SAndroid Build Coastguard Worker     pva_trace->ptra_ctx[MAX_TRACE_CTX_NUM] = trace_ctx;
871*54e60f84SAndroid Build Coastguard Worker 
872*54e60f84SAndroid Build Coastguard Worker     ((VADisplayContextP)dpy)->vatrace = (void *)pva_trace;
873*54e60f84SAndroid Build Coastguard Worker 
874*54e60f84SAndroid Build Coastguard Worker     if (!va_trace_flag)
875*54e60f84SAndroid Build Coastguard Worker         va_TraceEnd(dpy);
876*54e60f84SAndroid Build Coastguard Worker }
877*54e60f84SAndroid Build Coastguard Worker 
va_TraceEnd(VADisplay dpy)878*54e60f84SAndroid Build Coastguard Worker void va_TraceEnd(VADisplay dpy)
879*54e60f84SAndroid Build Coastguard Worker {
880*54e60f84SAndroid Build Coastguard Worker     struct va_trace *pva_trace = NULL;
881*54e60f84SAndroid Build Coastguard Worker     int i = 0;
882*54e60f84SAndroid Build Coastguard Worker 
883*54e60f84SAndroid Build Coastguard Worker     pva_trace = (struct va_trace *)(((VADisplayContextP)dpy)->vatrace);
884*54e60f84SAndroid Build Coastguard Worker     if (!pva_trace)
885*54e60f84SAndroid Build Coastguard Worker         return;
886*54e60f84SAndroid Build Coastguard Worker 
887*54e60f84SAndroid Build Coastguard Worker     if (pva_trace->fn_log_env)
888*54e60f84SAndroid Build Coastguard Worker         free(pva_trace->fn_log_env);
889*54e60f84SAndroid Build Coastguard Worker 
890*54e60f84SAndroid Build Coastguard Worker     if (pva_trace->fn_codedbuf_env)
891*54e60f84SAndroid Build Coastguard Worker         free(pva_trace->fn_codedbuf_env);
892*54e60f84SAndroid Build Coastguard Worker 
893*54e60f84SAndroid Build Coastguard Worker     if (pva_trace->fn_surface_env)
894*54e60f84SAndroid Build Coastguard Worker         free(pva_trace->fn_surface_env);
895*54e60f84SAndroid Build Coastguard Worker 
896*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < MAX_TRACE_BUF_INFO_HASH_LEVEL; i++)
897*54e60f84SAndroid Build Coastguard Worker         if (pva_trace->buf_manager.pbuf_info[i])
898*54e60f84SAndroid Build Coastguard Worker             free(pva_trace->buf_manager.pbuf_info[i]);
899*54e60f84SAndroid Build Coastguard Worker 
900*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < MAX_TRACE_THREAD_NUM; i++) {
901*54e60f84SAndroid Build Coastguard Worker         struct trace_log_file *plog_file = NULL;
902*54e60f84SAndroid Build Coastguard Worker 
903*54e60f84SAndroid Build Coastguard Worker         plog_file = &pva_trace->log_files_manager.log_file[i];
904*54e60f84SAndroid Build Coastguard Worker         if (plog_file) {
905*54e60f84SAndroid Build Coastguard Worker             if (plog_file->fn_log)
906*54e60f84SAndroid Build Coastguard Worker                 free(plog_file->fn_log);
907*54e60f84SAndroid Build Coastguard Worker 
908*54e60f84SAndroid Build Coastguard Worker             if (plog_file->fp_log)
909*54e60f84SAndroid Build Coastguard Worker                 fclose(plog_file->fp_log);
910*54e60f84SAndroid Build Coastguard Worker         }
911*54e60f84SAndroid Build Coastguard Worker     }
912*54e60f84SAndroid Build Coastguard Worker 
913*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < MAX_TRACE_CTX_NUM; i++) {
914*54e60f84SAndroid Build Coastguard Worker         struct trace_context *trace_ctx = NULL;
915*54e60f84SAndroid Build Coastguard Worker 
916*54e60f84SAndroid Build Coastguard Worker         if (pva_trace->context_num <= 0)
917*54e60f84SAndroid Build Coastguard Worker             break;
918*54e60f84SAndroid Build Coastguard Worker 
919*54e60f84SAndroid Build Coastguard Worker         trace_ctx = pva_trace->ptra_ctx[i];
920*54e60f84SAndroid Build Coastguard Worker         if (trace_ctx) {
921*54e60f84SAndroid Build Coastguard Worker             if (trace_ctx->trace_codedbuf_fn)
922*54e60f84SAndroid Build Coastguard Worker                 free(trace_ctx->trace_codedbuf_fn);
923*54e60f84SAndroid Build Coastguard Worker 
924*54e60f84SAndroid Build Coastguard Worker             if (trace_ctx->trace_fp_codedbuf)
925*54e60f84SAndroid Build Coastguard Worker                 fclose(trace_ctx->trace_fp_codedbuf);
926*54e60f84SAndroid Build Coastguard Worker 
927*54e60f84SAndroid Build Coastguard Worker             if (trace_ctx->trace_surface_fn)
928*54e60f84SAndroid Build Coastguard Worker                 free(trace_ctx->trace_surface_fn);
929*54e60f84SAndroid Build Coastguard Worker 
930*54e60f84SAndroid Build Coastguard Worker             if (trace_ctx->trace_fp_surface)
931*54e60f84SAndroid Build Coastguard Worker                 fclose(trace_ctx->trace_fp_surface);
932*54e60f84SAndroid Build Coastguard Worker 
933*54e60f84SAndroid Build Coastguard Worker             free(pva_trace->ptra_ctx[i]);
934*54e60f84SAndroid Build Coastguard Worker             pva_trace->context_num--;
935*54e60f84SAndroid Build Coastguard Worker         }
936*54e60f84SAndroid Build Coastguard Worker     }
937*54e60f84SAndroid Build Coastguard Worker     free(pva_trace->ptra_ctx[MAX_TRACE_CTX_NUM]);
938*54e60f84SAndroid Build Coastguard Worker     // close ftrace file if have
939*54e60f84SAndroid Build Coastguard Worker     if (pva_trace->ftrace_fd >= 0) {
940*54e60f84SAndroid Build Coastguard Worker         close(pva_trace->ftrace_fd);
941*54e60f84SAndroid Build Coastguard Worker     }
942*54e60f84SAndroid Build Coastguard Worker 
943*54e60f84SAndroid Build Coastguard Worker     pva_trace->dpy = NULL;
944*54e60f84SAndroid Build Coastguard Worker     pthread_mutex_destroy(&pva_trace->resource_mutex);
945*54e60f84SAndroid Build Coastguard Worker     pthread_mutex_destroy(&pva_trace->context_mutex);
946*54e60f84SAndroid Build Coastguard Worker     free(pva_trace);
947*54e60f84SAndroid Build Coastguard Worker     ((VADisplayContextP)dpy)->vatrace = NULL;
948*54e60f84SAndroid Build Coastguard Worker }
949*54e60f84SAndroid Build Coastguard Worker 
va_TraceVPrint(struct trace_context * trace_ctx,const char * msg,va_list args)950*54e60f84SAndroid Build Coastguard Worker static void va_TraceVPrint(struct trace_context *trace_ctx, const char *msg, va_list args)
951*54e60f84SAndroid Build Coastguard Worker {
952*54e60f84SAndroid Build Coastguard Worker     FILE *fp = NULL;
953*54e60f84SAndroid Build Coastguard Worker 
954*54e60f84SAndroid Build Coastguard Worker     if (!(va_trace_flag & VA_TRACE_FLAG_LOG)
955*54e60f84SAndroid Build Coastguard Worker         || !trace_ctx->plog_file)
956*54e60f84SAndroid Build Coastguard Worker         return;
957*54e60f84SAndroid Build Coastguard Worker 
958*54e60f84SAndroid Build Coastguard Worker     fp = trace_ctx->plog_file->fp_log;
959*54e60f84SAndroid Build Coastguard Worker     if (msg)  {
960*54e60f84SAndroid Build Coastguard Worker         vfprintf(fp, msg, args);
961*54e60f84SAndroid Build Coastguard Worker     } else
962*54e60f84SAndroid Build Coastguard Worker         fflush(fp);
963*54e60f84SAndroid Build Coastguard Worker }
964*54e60f84SAndroid Build Coastguard Worker 
va_TracePrint(struct trace_context * trace_ctx,const char * msg,...)965*54e60f84SAndroid Build Coastguard Worker static void va_TracePrint(struct trace_context *trace_ctx, const char *msg, ...)
966*54e60f84SAndroid Build Coastguard Worker {
967*54e60f84SAndroid Build Coastguard Worker     va_list args;
968*54e60f84SAndroid Build Coastguard Worker     va_start(args, msg);
969*54e60f84SAndroid Build Coastguard Worker     va_TraceVPrint(trace_ctx, msg, args);
970*54e60f84SAndroid Build Coastguard Worker     va_end(args);
971*54e60f84SAndroid Build Coastguard Worker }
972*54e60f84SAndroid Build Coastguard Worker 
va_TraceMsg(struct trace_context * trace_ctx,const char * msg,...)973*54e60f84SAndroid Build Coastguard Worker static void va_TraceMsg(struct trace_context *trace_ctx, const char *msg, ...)
974*54e60f84SAndroid Build Coastguard Worker {
975*54e60f84SAndroid Build Coastguard Worker     va_list args;
976*54e60f84SAndroid Build Coastguard Worker     struct timeval tv;
977*54e60f84SAndroid Build Coastguard Worker 
978*54e60f84SAndroid Build Coastguard Worker     if (!msg) {
979*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, msg);
980*54e60f84SAndroid Build Coastguard Worker         return;
981*54e60f84SAndroid Build Coastguard Worker     }
982*54e60f84SAndroid Build Coastguard Worker 
983*54e60f84SAndroid Build Coastguard Worker     if (gettimeofday(&tv, NULL) == 0)
984*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "[%04d.%06d]",
985*54e60f84SAndroid Build Coastguard Worker                       (unsigned int)tv.tv_sec & 0xffff, (unsigned int)tv.tv_usec);
986*54e60f84SAndroid Build Coastguard Worker 
987*54e60f84SAndroid Build Coastguard Worker     if (trace_ctx->trace_context != VA_INVALID_ID)
988*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx,
989*54e60f84SAndroid Build Coastguard Worker                       "[ctx 0x%08x]", trace_ctx->trace_context);
990*54e60f84SAndroid Build Coastguard Worker     else
991*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "[ctx       none]");
992*54e60f84SAndroid Build Coastguard Worker 
993*54e60f84SAndroid Build Coastguard Worker     va_start(args, msg);
994*54e60f84SAndroid Build Coastguard Worker     va_TraceVPrint(trace_ctx, msg, args);
995*54e60f84SAndroid Build Coastguard Worker     va_end(args);
996*54e60f84SAndroid Build Coastguard Worker }
997*54e60f84SAndroid Build Coastguard Worker 
va_TraceSurface(VADisplay dpy,VAContextID context)998*54e60f84SAndroid Build Coastguard Worker static void va_TraceSurface(VADisplay dpy, VAContextID context)
999*54e60f84SAndroid Build Coastguard Worker {
1000*54e60f84SAndroid Build Coastguard Worker     unsigned int i;
1001*54e60f84SAndroid Build Coastguard Worker     unsigned int fourcc; /* following are output argument */
1002*54e60f84SAndroid Build Coastguard Worker     unsigned int luma_stride;
1003*54e60f84SAndroid Build Coastguard Worker     unsigned int chroma_u_stride;
1004*54e60f84SAndroid Build Coastguard Worker     unsigned int chroma_v_stride;
1005*54e60f84SAndroid Build Coastguard Worker     unsigned int luma_offset;
1006*54e60f84SAndroid Build Coastguard Worker     unsigned int chroma_u_offset;
1007*54e60f84SAndroid Build Coastguard Worker     unsigned int chroma_v_offset;
1008*54e60f84SAndroid Build Coastguard Worker     unsigned int buffer_name;
1009*54e60f84SAndroid Build Coastguard Worker     void *buffer = NULL;
1010*54e60f84SAndroid Build Coastguard Worker     unsigned char *Y_data, *UV_data, *tmp;
1011*54e60f84SAndroid Build Coastguard Worker     unsigned int pixel_byte;
1012*54e60f84SAndroid Build Coastguard Worker     VAStatus va_status;
1013*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
1014*54e60f84SAndroid Build Coastguard Worker 
1015*54e60f84SAndroid Build Coastguard Worker     if (!trace_ctx->trace_fp_surface)
1016*54e60f84SAndroid Build Coastguard Worker         return;
1017*54e60f84SAndroid Build Coastguard Worker 
1018*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "==========dump surface data in file %s\n", trace_ctx->trace_surface_fn);
1019*54e60f84SAndroid Build Coastguard Worker 
1020*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
1021*54e60f84SAndroid Build Coastguard Worker 
1022*54e60f84SAndroid Build Coastguard Worker     va_status = vaLockSurface(
1023*54e60f84SAndroid Build Coastguard Worker                     dpy,
1024*54e60f84SAndroid Build Coastguard Worker                     trace_ctx->trace_rendertarget,
1025*54e60f84SAndroid Build Coastguard Worker                     &fourcc,
1026*54e60f84SAndroid Build Coastguard Worker                     &luma_stride, &chroma_u_stride, &chroma_v_stride,
1027*54e60f84SAndroid Build Coastguard Worker                     &luma_offset, &chroma_u_offset, &chroma_v_offset,
1028*54e60f84SAndroid Build Coastguard Worker                     &buffer_name, &buffer);
1029*54e60f84SAndroid Build Coastguard Worker 
1030*54e60f84SAndroid Build Coastguard Worker     if (va_status != VA_STATUS_SUCCESS) {
1031*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "Error:vaLockSurface failed\n");
1032*54e60f84SAndroid Build Coastguard Worker         return;
1033*54e60f84SAndroid Build Coastguard Worker     }
1034*54e60f84SAndroid Build Coastguard Worker 
1035*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tfourcc = 0x%08x\n", fourcc);
1036*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\twidth = %d\n", trace_ctx->trace_frame_width);
1037*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\theight = %d\n", trace_ctx->trace_frame_height);
1038*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tluma_stride = %d\n", luma_stride);
1039*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tchroma_u_stride = %d\n", chroma_u_stride);
1040*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tchroma_v_stride = %d\n", chroma_v_stride);
1041*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tluma_offset = %d\n", luma_offset);
1042*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tchroma_u_offset = %d\n", chroma_u_offset);
1043*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tchroma_v_offset = %d\n", chroma_v_offset);
1044*54e60f84SAndroid Build Coastguard Worker 
1045*54e60f84SAndroid Build Coastguard Worker     if (buffer == NULL) {
1046*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "Error:vaLockSurface return NULL buffer\n");
1047*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, NULL);
1048*54e60f84SAndroid Build Coastguard Worker 
1049*54e60f84SAndroid Build Coastguard Worker         vaUnlockSurface(dpy, trace_ctx->trace_rendertarget);
1050*54e60f84SAndroid Build Coastguard Worker         return;
1051*54e60f84SAndroid Build Coastguard Worker     }
1052*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbuffer location = 0x%p\n", buffer);
1053*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
1054*54e60f84SAndroid Build Coastguard Worker 
1055*54e60f84SAndroid Build Coastguard Worker     Y_data = (unsigned char*)buffer;
1056*54e60f84SAndroid Build Coastguard Worker     UV_data = (unsigned char*)buffer + chroma_u_offset;
1057*54e60f84SAndroid Build Coastguard Worker 
1058*54e60f84SAndroid Build Coastguard Worker     if (fourcc == VA_FOURCC_P010)
1059*54e60f84SAndroid Build Coastguard Worker         pixel_byte = 2;
1060*54e60f84SAndroid Build Coastguard Worker     else
1061*54e60f84SAndroid Build Coastguard Worker         pixel_byte = 1;
1062*54e60f84SAndroid Build Coastguard Worker 
1063*54e60f84SAndroid Build Coastguard Worker     tmp = Y_data + luma_stride * trace_ctx->trace_surface_yoff;
1064*54e60f84SAndroid Build Coastguard Worker 
1065*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < trace_ctx->trace_surface_height; i++) {
1066*54e60f84SAndroid Build Coastguard Worker         fwrite(tmp + trace_ctx->trace_surface_xoff,
1067*54e60f84SAndroid Build Coastguard Worker                trace_ctx->trace_surface_width,
1068*54e60f84SAndroid Build Coastguard Worker                pixel_byte, trace_ctx->trace_fp_surface);
1069*54e60f84SAndroid Build Coastguard Worker 
1070*54e60f84SAndroid Build Coastguard Worker         tmp += luma_stride;
1071*54e60f84SAndroid Build Coastguard Worker     }
1072*54e60f84SAndroid Build Coastguard Worker 
1073*54e60f84SAndroid Build Coastguard Worker     tmp = UV_data + chroma_u_stride * trace_ctx->trace_surface_yoff / 2;
1074*54e60f84SAndroid Build Coastguard Worker     if (fourcc == VA_FOURCC_NV12 || fourcc == VA_FOURCC_P010) {
1075*54e60f84SAndroid Build Coastguard Worker         for (i = 0; i < trace_ctx->trace_surface_height / 2; i++) {
1076*54e60f84SAndroid Build Coastguard Worker             fwrite(tmp + trace_ctx->trace_surface_xoff,
1077*54e60f84SAndroid Build Coastguard Worker                    trace_ctx->trace_surface_width,
1078*54e60f84SAndroid Build Coastguard Worker                    pixel_byte, trace_ctx->trace_fp_surface);
1079*54e60f84SAndroid Build Coastguard Worker 
1080*54e60f84SAndroid Build Coastguard Worker             tmp += chroma_u_stride;
1081*54e60f84SAndroid Build Coastguard Worker         }
1082*54e60f84SAndroid Build Coastguard Worker     }
1083*54e60f84SAndroid Build Coastguard Worker 
1084*54e60f84SAndroid Build Coastguard Worker     fflush(trace_ctx->trace_fp_surface);
1085*54e60f84SAndroid Build Coastguard Worker 
1086*54e60f84SAndroid Build Coastguard Worker     vaUnlockSurface(dpy, trace_ctx->trace_rendertarget);
1087*54e60f84SAndroid Build Coastguard Worker 
1088*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
1089*54e60f84SAndroid Build Coastguard Worker }
1090*54e60f84SAndroid Build Coastguard Worker 
1091*54e60f84SAndroid Build Coastguard Worker 
va_TraceInitialize(VADisplay dpy,int * major_version,int * minor_version)1092*54e60f84SAndroid Build Coastguard Worker void va_TraceInitialize(
1093*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
1094*54e60f84SAndroid Build Coastguard Worker     int *major_version,     /* out */
1095*54e60f84SAndroid Build Coastguard Worker     int *minor_version      /* out */
1096*54e60f84SAndroid Build Coastguard Worker )
1097*54e60f84SAndroid Build Coastguard Worker {
1098*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX(dpy);
1099*54e60f84SAndroid Build Coastguard Worker     TRACE_FUNCNAME(idx);
1100*54e60f84SAndroid Build Coastguard Worker 
1101*54e60f84SAndroid Build Coastguard Worker     const char* vendor_string = vaQueryVendorString(dpy);
1102*54e60f84SAndroid Build Coastguard Worker     if (vendor_string)
1103*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "==========\tVA-API vendor string: %s\n", vendor_string);
1104*54e60f84SAndroid Build Coastguard Worker 
1105*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX_EXIT(pva_trace);
1106*54e60f84SAndroid Build Coastguard Worker }
1107*54e60f84SAndroid Build Coastguard Worker 
va_TraceTerminate(VADisplay dpy)1108*54e60f84SAndroid Build Coastguard Worker void va_TraceTerminate(
1109*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy
1110*54e60f84SAndroid Build Coastguard Worker )
1111*54e60f84SAndroid Build Coastguard Worker {
1112*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX(dpy);
1113*54e60f84SAndroid Build Coastguard Worker     TRACE_FUNCNAME(idx);
1114*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
1115*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX_EXIT(pva_trace);
1116*54e60f84SAndroid Build Coastguard Worker }
1117*54e60f84SAndroid Build Coastguard Worker 
1118*54e60f84SAndroid Build Coastguard Worker 
va_TraceCreateConfig(VADisplay dpy,VAProfile profile,VAEntrypoint entrypoint,VAConfigAttrib * attrib_list,int num_attribs,VAConfigID * config_id)1119*54e60f84SAndroid Build Coastguard Worker void va_TraceCreateConfig(
1120*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
1121*54e60f84SAndroid Build Coastguard Worker     VAProfile profile,
1122*54e60f84SAndroid Build Coastguard Worker     VAEntrypoint entrypoint,
1123*54e60f84SAndroid Build Coastguard Worker     VAConfigAttrib *attrib_list,
1124*54e60f84SAndroid Build Coastguard Worker     int num_attribs,
1125*54e60f84SAndroid Build Coastguard Worker     VAConfigID *config_id /* out */
1126*54e60f84SAndroid Build Coastguard Worker )
1127*54e60f84SAndroid Build Coastguard Worker {
1128*54e60f84SAndroid Build Coastguard Worker     int i;
1129*54e60f84SAndroid Build Coastguard Worker 
1130*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX(dpy);
1131*54e60f84SAndroid Build Coastguard Worker 
1132*54e60f84SAndroid Build Coastguard Worker     TRACE_FUNCNAME(idx);
1133*54e60f84SAndroid Build Coastguard Worker 
1134*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tprofile = %d, %s\n", profile, vaProfileStr(profile));
1135*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tentrypoint = %d, %s\n", entrypoint, vaEntrypointStr(entrypoint));
1136*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_attribs = %d\n", num_attribs);
1137*54e60f84SAndroid Build Coastguard Worker     if (attrib_list) {
1138*54e60f84SAndroid Build Coastguard Worker         for (i = 0; i < num_attribs; i++) {
1139*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t\tattrib_list[%d].type = 0x%08x, %s\n", i, attrib_list[i].type, vaConfigAttribTypeStr(attrib_list[i].type));
1140*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t\tattrib_list[%d].value = 0x%08x\n", i, attrib_list[i].value);
1141*54e60f84SAndroid Build Coastguard Worker         }
1142*54e60f84SAndroid Build Coastguard Worker     }
1143*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
1144*54e60f84SAndroid Build Coastguard Worker 
1145*54e60f84SAndroid Build Coastguard Worker     add_trace_config_info(pva_trace, *config_id, profile, entrypoint);
1146*54e60f84SAndroid Build Coastguard Worker 
1147*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX_EXIT(pva_trace);
1148*54e60f84SAndroid Build Coastguard Worker }
1149*54e60f84SAndroid Build Coastguard Worker 
va_TraceDestroyConfig(VADisplay dpy,VAConfigID config_id)1150*54e60f84SAndroid Build Coastguard Worker void va_TraceDestroyConfig(
1151*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
1152*54e60f84SAndroid Build Coastguard Worker     VAConfigID config_id
1153*54e60f84SAndroid Build Coastguard Worker )
1154*54e60f84SAndroid Build Coastguard Worker {
1155*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX(dpy);
1156*54e60f84SAndroid Build Coastguard Worker 
1157*54e60f84SAndroid Build Coastguard Worker     TRACE_FUNCNAME(idx);
1158*54e60f84SAndroid Build Coastguard Worker 
1159*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tconfig = 0x%08x\n", config_id);
1160*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
1161*54e60f84SAndroid Build Coastguard Worker 
1162*54e60f84SAndroid Build Coastguard Worker     delete_trace_config_info(pva_trace, config_id);
1163*54e60f84SAndroid Build Coastguard Worker 
1164*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX_EXIT(pva_trace);
1165*54e60f84SAndroid Build Coastguard Worker }
1166*54e60f84SAndroid Build Coastguard Worker 
va_TraceSurfaceAttributes(struct trace_context * trace_ctx,VASurfaceAttrib * attrib_list,unsigned int * num_attribs,unsigned int num_surfaces)1167*54e60f84SAndroid Build Coastguard Worker static void va_TraceSurfaceAttributes(
1168*54e60f84SAndroid Build Coastguard Worker     struct trace_context *trace_ctx,
1169*54e60f84SAndroid Build Coastguard Worker     VASurfaceAttrib    *attrib_list,
1170*54e60f84SAndroid Build Coastguard Worker     unsigned int       *num_attribs,
1171*54e60f84SAndroid Build Coastguard Worker     unsigned int       num_surfaces
1172*54e60f84SAndroid Build Coastguard Worker )
1173*54e60f84SAndroid Build Coastguard Worker {
1174*54e60f84SAndroid Build Coastguard Worker     int i, num;
1175*54e60f84SAndroid Build Coastguard Worker     VASurfaceAttrib *p;
1176*54e60f84SAndroid Build Coastguard Worker 
1177*54e60f84SAndroid Build Coastguard Worker     if (!attrib_list || !num_attribs)
1178*54e60f84SAndroid Build Coastguard Worker         return;
1179*54e60f84SAndroid Build Coastguard Worker 
1180*54e60f84SAndroid Build Coastguard Worker     /* Try to detect VASurfaceAttribMemoryType here, so it's available in case it is
1181*54e60f84SAndroid Build Coastguard Worker        sent in attrib_list after the VASurfaceAttribExternalBufferDescriptor */
1182*54e60f84SAndroid Build Coastguard Worker     int32_t memtype = 0;
1183*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < *num_attribs; i++) {
1184*54e60f84SAndroid Build Coastguard Worker         if (attrib_list[i].type == VASurfaceAttribMemoryType) {
1185*54e60f84SAndroid Build Coastguard Worker             memtype = attrib_list[i].value.value.i;
1186*54e60f84SAndroid Build Coastguard Worker             break;
1187*54e60f84SAndroid Build Coastguard Worker         }
1188*54e60f84SAndroid Build Coastguard Worker     }
1189*54e60f84SAndroid Build Coastguard Worker 
1190*54e60f84SAndroid Build Coastguard Worker     p = attrib_list;
1191*54e60f84SAndroid Build Coastguard Worker     num = *num_attribs;
1192*54e60f84SAndroid Build Coastguard Worker     if (num > VASurfaceAttribCount)
1193*54e60f84SAndroid Build Coastguard Worker         num = VASurfaceAttribCount;
1194*54e60f84SAndroid Build Coastguard Worker 
1195*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < num; i++) {
1196*54e60f84SAndroid Build Coastguard Worker         int type = p->value.type;
1197*54e60f84SAndroid Build Coastguard Worker 
1198*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tattrib_list[%i] =\n", i);
1199*54e60f84SAndroid Build Coastguard Worker 
1200*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\ttype = %d\n", p->type);
1201*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\tflags = %d\n", p->flags);
1202*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\tvalue.type = %d\n", type);
1203*54e60f84SAndroid Build Coastguard Worker         switch (type) {
1204*54e60f84SAndroid Build Coastguard Worker         case VAGenericValueTypeInteger:
1205*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t\tvalue.value.i = 0x%08x\n", p->value.value.i);
1206*54e60f84SAndroid Build Coastguard Worker             break;
1207*54e60f84SAndroid Build Coastguard Worker         case VAGenericValueTypeFloat:
1208*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t\tvalue.value.f = %f\n", p->value.value.f);
1209*54e60f84SAndroid Build Coastguard Worker             break;
1210*54e60f84SAndroid Build Coastguard Worker         case VAGenericValueTypePointer:
1211*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t\tvalue.value.p = %p\n", p->value.value.p);
1212*54e60f84SAndroid Build Coastguard Worker             if ((p->type == VASurfaceAttribExternalBufferDescriptor) && p->value.value.p) {
1213*54e60f84SAndroid Build Coastguard Worker                 /* Use memtype to distinguish type as specified in VASurfaceAttribExternalBufferDescriptor docs */
1214*54e60f84SAndroid Build Coastguard Worker                 /* If not otherwise stated, the common VASurfaceAttribExternalBuffers should be used. */
1215*54e60f84SAndroid Build Coastguard Worker                 if (memtype == 0 /* unspecified in attrib_list */ || memtype == VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME) {
1216*54e60f84SAndroid Build Coastguard Worker                     VASurfaceAttribExternalBuffers *tmp = (VASurfaceAttribExternalBuffers *) p->value.value.p;
1217*54e60f84SAndroid Build Coastguard Worker                     uint32_t j;
1218*54e60f84SAndroid Build Coastguard Worker 
1219*54e60f84SAndroid Build Coastguard Worker                     va_TraceMsg(trace_ctx, "\t\t--VASurfaceAttribExternalBufferDescriptor\n");
1220*54e60f84SAndroid Build Coastguard Worker                     va_TraceMsg(trace_ctx, "\t\t  pixel_format=0x%08x\n", tmp->pixel_format);
1221*54e60f84SAndroid Build Coastguard Worker                     va_TraceMsg(trace_ctx, "\t\t  width=%d\n", tmp->width);
1222*54e60f84SAndroid Build Coastguard Worker                     va_TraceMsg(trace_ctx, "\t\t  height=%d\n", tmp->height);
1223*54e60f84SAndroid Build Coastguard Worker                     va_TraceMsg(trace_ctx, "\t\t  data_size=%d\n", tmp->data_size);
1224*54e60f84SAndroid Build Coastguard Worker                     va_TraceMsg(trace_ctx, "\t\t  num_planes=%d\n", tmp->num_planes);
1225*54e60f84SAndroid Build Coastguard Worker                     va_TraceMsg(trace_ctx, "\t\t  pitches[4]=%d %d %d %d\n",
1226*54e60f84SAndroid Build Coastguard Worker                                 tmp->pitches[0], tmp->pitches[1], tmp->pitches[2], tmp->pitches[3]);
1227*54e60f84SAndroid Build Coastguard Worker                     va_TraceMsg(trace_ctx, "\t\t  offsets[4]=%d %d %d %d\n",
1228*54e60f84SAndroid Build Coastguard Worker                                 tmp->offsets[0], tmp->offsets[1], tmp->offsets[2], tmp->offsets[3]);
1229*54e60f84SAndroid Build Coastguard Worker                     va_TraceMsg(trace_ctx, "\t\t  flags=0x%08x\n", tmp->flags);
1230*54e60f84SAndroid Build Coastguard Worker                     va_TraceMsg(trace_ctx, "\t\t  num_buffers=0x%08x\n", tmp->num_buffers);
1231*54e60f84SAndroid Build Coastguard Worker                     va_TraceMsg(trace_ctx, "\t\t  buffers=%p\n", tmp->buffers);
1232*54e60f84SAndroid Build Coastguard Worker                     for (j = 0; j < tmp->num_buffers; j++) {
1233*54e60f84SAndroid Build Coastguard Worker                         va_TraceMsg(trace_ctx, "\t\t\tbuffers[%d]=%p\n", j, tmp->buffers[j]);
1234*54e60f84SAndroid Build Coastguard Worker                     }
1235*54e60f84SAndroid Build Coastguard Worker                 } else if (memtype == VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2) {
1236*54e60f84SAndroid Build Coastguard Worker                     VADRMPRIMESurfaceDescriptor *tmp = (VADRMPRIMESurfaceDescriptor *) p->value.value.p;
1237*54e60f84SAndroid Build Coastguard Worker                     uint32_t j, k;
1238*54e60f84SAndroid Build Coastguard Worker 
1239*54e60f84SAndroid Build Coastguard Worker                     va_TraceMsg(trace_ctx, "\t\t--VADRMPRIMESurfaceDescriptor\n");
1240*54e60f84SAndroid Build Coastguard Worker                     va_TraceMsg(trace_ctx, "\t\t  pixel_format=0x%08x\n", tmp->fourcc);
1241*54e60f84SAndroid Build Coastguard Worker                     va_TraceMsg(trace_ctx, "\t\t  width=%d\n", tmp->width);
1242*54e60f84SAndroid Build Coastguard Worker                     va_TraceMsg(trace_ctx, "\t\t  height=%d\n", tmp->height);
1243*54e60f84SAndroid Build Coastguard Worker                     va_TraceMsg(trace_ctx, "\t\t  num_objects=0x%08x\n", tmp->num_objects);
1244*54e60f84SAndroid Build Coastguard Worker                     for (j = 0; j < tmp->num_objects && tmp->num_objects <= 4; j++) {
1245*54e60f84SAndroid Build Coastguard Worker                         va_TraceMsg(trace_ctx, "\t\t\tobjects[%d].fd=%d\n", j, tmp->objects[j].fd);
1246*54e60f84SAndroid Build Coastguard Worker                         va_TraceMsg(trace_ctx, "\t\t\tobjects[%d].size=%d\n", j, tmp->objects[j].size);
1247*54e60f84SAndroid Build Coastguard Worker                         va_TraceMsg(trace_ctx, "\t\t\tobjects[%d].drm_format_modifier=%llx\n", j, tmp->objects[j].drm_format_modifier);
1248*54e60f84SAndroid Build Coastguard Worker                     }
1249*54e60f84SAndroid Build Coastguard Worker                     va_TraceMsg(trace_ctx, "\t\t  num_layers=%d\n", tmp->num_layers);
1250*54e60f84SAndroid Build Coastguard Worker                     for (j = 0; j < tmp->num_layers && tmp->num_layers <= 4; j++) {
1251*54e60f84SAndroid Build Coastguard Worker                         va_TraceMsg(trace_ctx, "\t\t\tlayers[%d].drm_format=0x%08x\n", j, tmp->layers[j].drm_format);
1252*54e60f84SAndroid Build Coastguard Worker                         va_TraceMsg(trace_ctx, "\t\t\tlayers[%d].num_planes=0x%d\n", j, tmp->layers[j].num_planes);
1253*54e60f84SAndroid Build Coastguard Worker                         for (k = 0; k < 4; k++) {
1254*54e60f84SAndroid Build Coastguard Worker                             va_TraceMsg(trace_ctx, "\t\t\t\tlayers[%d].object_index[%d]=0x%d\n", j, k, tmp->layers[j].object_index[k]);
1255*54e60f84SAndroid Build Coastguard Worker                             va_TraceMsg(trace_ctx, "\t\t\t\tlayers[%d].offset[%d]=0x%d\n", j, k, tmp->layers[j].offset[k]);
1256*54e60f84SAndroid Build Coastguard Worker                             va_TraceMsg(trace_ctx, "\t\t\t\tlayers[%d].pitch[%d]=0x%d\n", j, k, tmp->layers[j].pitch[k]);
1257*54e60f84SAndroid Build Coastguard Worker                         }
1258*54e60f84SAndroid Build Coastguard Worker                     }
1259*54e60f84SAndroid Build Coastguard Worker                 } else if (memtype == VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_3) {
1260*54e60f84SAndroid Build Coastguard Worker                     VADRMPRIME3SurfaceDescriptor *tmp = (VADRMPRIME3SurfaceDescriptor *) p->value.value.p;
1261*54e60f84SAndroid Build Coastguard Worker                     uint32_t j, k;
1262*54e60f84SAndroid Build Coastguard Worker 
1263*54e60f84SAndroid Build Coastguard Worker                     va_TraceMsg(trace_ctx, "\t\t--VADRMPRIME3SurfaceDescriptor\n");
1264*54e60f84SAndroid Build Coastguard Worker                     va_TraceMsg(trace_ctx, "\t\t  pixel_format=0x%08x\n", tmp->fourcc);
1265*54e60f84SAndroid Build Coastguard Worker                     va_TraceMsg(trace_ctx, "\t\t  width=%d\n", tmp->width);
1266*54e60f84SAndroid Build Coastguard Worker                     va_TraceMsg(trace_ctx, "\t\t  height=%d\n", tmp->height);
1267*54e60f84SAndroid Build Coastguard Worker                     va_TraceMsg(trace_ctx, "\t\t  num_objects=0x%08x\n", tmp->num_objects);
1268*54e60f84SAndroid Build Coastguard Worker                     va_TraceMsg(trace_ctx, "\t\t  flags=0x%08x\n", tmp->flags);
1269*54e60f84SAndroid Build Coastguard Worker                     for (j = 0; j < tmp->num_objects && tmp->num_objects <= 4; j++) {
1270*54e60f84SAndroid Build Coastguard Worker                         va_TraceMsg(trace_ctx, "\t\t\tobjects[%d].fd=%d\n", j, tmp->objects[j].fd);
1271*54e60f84SAndroid Build Coastguard Worker                         va_TraceMsg(trace_ctx, "\t\t\tobjects[%d].size=%d\n", j, tmp->objects[j].size);
1272*54e60f84SAndroid Build Coastguard Worker                         va_TraceMsg(trace_ctx, "\t\t\tobjects[%d].drm_format_modifier=%llx\n", j, tmp->objects[j].drm_format_modifier);
1273*54e60f84SAndroid Build Coastguard Worker                     }
1274*54e60f84SAndroid Build Coastguard Worker                     va_TraceMsg(trace_ctx, "\t\t  num_layers=%d\n", tmp->num_layers);
1275*54e60f84SAndroid Build Coastguard Worker                     for (j = 0; j < tmp->num_layers && tmp->num_layers <= 4; j++) {
1276*54e60f84SAndroid Build Coastguard Worker                         va_TraceMsg(trace_ctx, "\t\t\tlayers[%d].drm_format=0x%08x\n", j, tmp->layers[j].drm_format);
1277*54e60f84SAndroid Build Coastguard Worker                         va_TraceMsg(trace_ctx, "\t\t\tlayers[%d].num_planes=0x%d\n", j, tmp->layers[j].num_planes);
1278*54e60f84SAndroid Build Coastguard Worker                         for (k = 0; k < 4; k++) {
1279*54e60f84SAndroid Build Coastguard Worker                             va_TraceMsg(trace_ctx, "\t\t\t\tlayers[%d].object_index[%d]=0x%d\n", j, k, tmp->layers[j].object_index[k]);
1280*54e60f84SAndroid Build Coastguard Worker                             va_TraceMsg(trace_ctx, "\t\t\t\tlayers[%d].offset[%d]=0x%d\n", j, k, tmp->layers[j].offset[k]);
1281*54e60f84SAndroid Build Coastguard Worker                             va_TraceMsg(trace_ctx, "\t\t\t\tlayers[%d].pitch[%d]=0x%d\n", j, k, tmp->layers[j].pitch[k]);
1282*54e60f84SAndroid Build Coastguard Worker                         }
1283*54e60f84SAndroid Build Coastguard Worker                     }
1284*54e60f84SAndroid Build Coastguard Worker #if defined(_WIN32)
1285*54e60f84SAndroid Build Coastguard Worker                 } else if (memtype == VA_SURFACE_ATTRIB_MEM_TYPE_NTHANDLE) {
1286*54e60f84SAndroid Build Coastguard Worker                     va_TraceMsg(trace_ctx, "\t\t--Win32 %d surfaces\n", num_surfaces);
1287*54e60f84SAndroid Build Coastguard Worker                     HANDLE* surfaces = (HANDLE *) p->value.value.p;
1288*54e60f84SAndroid Build Coastguard Worker                     for (uint32_t j = 0; j < num_surfaces; j++) {
1289*54e60f84SAndroid Build Coastguard Worker                         va_TraceMsg(trace_ctx, "\t\t\tSurface[%d]: 0x%p (type: HANDLE)\n", j, surfaces[j]);
1290*54e60f84SAndroid Build Coastguard Worker                     }
1291*54e60f84SAndroid Build Coastguard Worker                 } else if (memtype == VA_SURFACE_ATTRIB_MEM_TYPE_D3D12_RESOURCE) {
1292*54e60f84SAndroid Build Coastguard Worker                     va_TraceMsg(trace_ctx, "\t\t--Win32 %d surfaces\n", num_surfaces);
1293*54e60f84SAndroid Build Coastguard Worker                     void** surfaces = (void**) p->value.value.p;
1294*54e60f84SAndroid Build Coastguard Worker                     for (uint32_t j = 0; j < num_surfaces; j++) {
1295*54e60f84SAndroid Build Coastguard Worker                         va_TraceMsg(trace_ctx, "\t\t\tSurface[%d]: 0x%p (type: ID3D12Resource*)\n", j, surfaces[j]);
1296*54e60f84SAndroid Build Coastguard Worker                     }
1297*54e60f84SAndroid Build Coastguard Worker #endif
1298*54e60f84SAndroid Build Coastguard Worker                 }
1299*54e60f84SAndroid Build Coastguard Worker             }
1300*54e60f84SAndroid Build Coastguard Worker             break;
1301*54e60f84SAndroid Build Coastguard Worker         case VAGenericValueTypeFunc:
1302*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t\tvalue.value.fn = %p\n", p->value.value.fn);
1303*54e60f84SAndroid Build Coastguard Worker             break;
1304*54e60f84SAndroid Build Coastguard Worker         default:
1305*54e60f84SAndroid Build Coastguard Worker             break;
1306*54e60f84SAndroid Build Coastguard Worker         }
1307*54e60f84SAndroid Build Coastguard Worker 
1308*54e60f84SAndroid Build Coastguard Worker         p++;
1309*54e60f84SAndroid Build Coastguard Worker     }
1310*54e60f84SAndroid Build Coastguard Worker }
1311*54e60f84SAndroid Build Coastguard Worker 
va_TraceCreateSurfaces(VADisplay dpy,int width,int height,int format,int num_surfaces,VASurfaceID * surfaces,VASurfaceAttrib * attrib_list,unsigned int num_attribs)1312*54e60f84SAndroid Build Coastguard Worker void va_TraceCreateSurfaces(
1313*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
1314*54e60f84SAndroid Build Coastguard Worker     int width,
1315*54e60f84SAndroid Build Coastguard Worker     int height,
1316*54e60f84SAndroid Build Coastguard Worker     int format,
1317*54e60f84SAndroid Build Coastguard Worker     int num_surfaces,
1318*54e60f84SAndroid Build Coastguard Worker     VASurfaceID *surfaces,    /* out */
1319*54e60f84SAndroid Build Coastguard Worker     VASurfaceAttrib    *attrib_list,
1320*54e60f84SAndroid Build Coastguard Worker     unsigned int        num_attribs
1321*54e60f84SAndroid Build Coastguard Worker )
1322*54e60f84SAndroid Build Coastguard Worker {
1323*54e60f84SAndroid Build Coastguard Worker     int i;
1324*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX(dpy);
1325*54e60f84SAndroid Build Coastguard Worker 
1326*54e60f84SAndroid Build Coastguard Worker     TRACE_FUNCNAME(idx);
1327*54e60f84SAndroid Build Coastguard Worker 
1328*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\twidth = %d\n", width);
1329*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\theight = %d\n", height);
1330*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tformat = %d\n", format);
1331*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_surfaces = %d\n", num_surfaces);
1332*54e60f84SAndroid Build Coastguard Worker 
1333*54e60f84SAndroid Build Coastguard Worker     if (surfaces) {
1334*54e60f84SAndroid Build Coastguard Worker         for (i = 0; i < num_surfaces; i++)
1335*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t\tsurfaces[%d] = 0x%08x\n", i, surfaces[i]);
1336*54e60f84SAndroid Build Coastguard Worker     }
1337*54e60f84SAndroid Build Coastguard Worker 
1338*54e60f84SAndroid Build Coastguard Worker     va_TraceSurfaceAttributes(trace_ctx, attrib_list, &num_attribs, num_surfaces);
1339*54e60f84SAndroid Build Coastguard Worker 
1340*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
1341*54e60f84SAndroid Build Coastguard Worker 
1342*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX_EXIT(pva_trace);
1343*54e60f84SAndroid Build Coastguard Worker }
1344*54e60f84SAndroid Build Coastguard Worker 
va_TraceDestroySurfaces(VADisplay dpy,VASurfaceID * surface_list,int num_surfaces)1345*54e60f84SAndroid Build Coastguard Worker void va_TraceDestroySurfaces(
1346*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
1347*54e60f84SAndroid Build Coastguard Worker     VASurfaceID *surface_list,
1348*54e60f84SAndroid Build Coastguard Worker     int num_surfaces
1349*54e60f84SAndroid Build Coastguard Worker )
1350*54e60f84SAndroid Build Coastguard Worker {
1351*54e60f84SAndroid Build Coastguard Worker     int i;
1352*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX(dpy);
1353*54e60f84SAndroid Build Coastguard Worker 
1354*54e60f84SAndroid Build Coastguard Worker     TRACE_FUNCNAME(idx);
1355*54e60f84SAndroid Build Coastguard Worker 
1356*54e60f84SAndroid Build Coastguard Worker     if (surface_list) {
1357*54e60f84SAndroid Build Coastguard Worker         for (i = 0; i < num_surfaces; i++)
1358*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t\tsurfaces[%d] = 0x%08x\n", i, surface_list[i]);
1359*54e60f84SAndroid Build Coastguard Worker     }
1360*54e60f84SAndroid Build Coastguard Worker 
1361*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
1362*54e60f84SAndroid Build Coastguard Worker 
1363*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX_EXIT(pva_trace);
1364*54e60f84SAndroid Build Coastguard Worker }
1365*54e60f84SAndroid Build Coastguard Worker 
1366*54e60f84SAndroid Build Coastguard Worker 
internal_TraceUpdateContext(struct va_trace * pva_trace,int tra_ctx_idx,struct trace_context * new_trace_ctx,VAContextID context,int destroy_flag)1367*54e60f84SAndroid Build Coastguard Worker static void internal_TraceUpdateContext(
1368*54e60f84SAndroid Build Coastguard Worker     struct va_trace *pva_trace,
1369*54e60f84SAndroid Build Coastguard Worker     int tra_ctx_idx,
1370*54e60f84SAndroid Build Coastguard Worker     struct trace_context *new_trace_ctx,
1371*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
1372*54e60f84SAndroid Build Coastguard Worker     int destroy_flag
1373*54e60f84SAndroid Build Coastguard Worker )
1374*54e60f84SAndroid Build Coastguard Worker {
1375*54e60f84SAndroid Build Coastguard Worker     struct trace_context *trace_ctx = NULL;
1376*54e60f84SAndroid Build Coastguard Worker     int i = 0, delete = 1;
1377*54e60f84SAndroid Build Coastguard Worker     pid_t thd_id = va_gettid();
1378*54e60f84SAndroid Build Coastguard Worker 
1379*54e60f84SAndroid Build Coastguard Worker     if (tra_ctx_idx >= MAX_TRACE_CTX_NUM)
1380*54e60f84SAndroid Build Coastguard Worker         return;
1381*54e60f84SAndroid Build Coastguard Worker 
1382*54e60f84SAndroid Build Coastguard Worker     LOCK_RESOURCE(pva_trace);
1383*54e60f84SAndroid Build Coastguard Worker 
1384*54e60f84SAndroid Build Coastguard Worker     trace_ctx = pva_trace->ptra_ctx[tra_ctx_idx];
1385*54e60f84SAndroid Build Coastguard Worker     if (trace_ctx) {
1386*54e60f84SAndroid Build Coastguard Worker         if (!new_trace_ctx &&
1387*54e60f84SAndroid Build Coastguard Worker             trace_ctx->created_thd_id != thd_id
1388*54e60f84SAndroid Build Coastguard Worker             && !destroy_flag) {
1389*54e60f84SAndroid Build Coastguard Worker             delete = 0;
1390*54e60f84SAndroid Build Coastguard Worker         } else {
1391*54e60f84SAndroid Build Coastguard Worker             pva_trace->context_num--;
1392*54e60f84SAndroid Build Coastguard Worker             pva_trace->ptra_ctx[tra_ctx_idx] = NULL;
1393*54e60f84SAndroid Build Coastguard Worker         }
1394*54e60f84SAndroid Build Coastguard Worker     }
1395*54e60f84SAndroid Build Coastguard Worker 
1396*54e60f84SAndroid Build Coastguard Worker     if (new_trace_ctx) {
1397*54e60f84SAndroid Build Coastguard Worker         new_trace_ctx->created_thd_id = thd_id;
1398*54e60f84SAndroid Build Coastguard Worker         pva_trace->ptra_ctx[tra_ctx_idx] = new_trace_ctx;
1399*54e60f84SAndroid Build Coastguard Worker         pva_trace->context_num++;
1400*54e60f84SAndroid Build Coastguard Worker     }
1401*54e60f84SAndroid Build Coastguard Worker 
1402*54e60f84SAndroid Build Coastguard Worker     UNLOCK_RESOURCE(pva_trace);
1403*54e60f84SAndroid Build Coastguard Worker 
1404*54e60f84SAndroid Build Coastguard Worker     if (trace_ctx && delete) {
1405*54e60f84SAndroid Build Coastguard Worker         for (i = 0; i < MAX_TRACE_THREAD_NUM; i++)
1406*54e60f84SAndroid Build Coastguard Worker             if (trace_ctx->plog_file_list[i])
1407*54e60f84SAndroid Build Coastguard Worker                 stop_tracing2log_file(pva_trace, trace_ctx->plog_file_list[i]);
1408*54e60f84SAndroid Build Coastguard Worker 
1409*54e60f84SAndroid Build Coastguard Worker         if (trace_ctx->trace_codedbuf_fn)
1410*54e60f84SAndroid Build Coastguard Worker             free(trace_ctx->trace_codedbuf_fn);
1411*54e60f84SAndroid Build Coastguard Worker 
1412*54e60f84SAndroid Build Coastguard Worker         if (trace_ctx->trace_fp_codedbuf)
1413*54e60f84SAndroid Build Coastguard Worker             fclose(trace_ctx->trace_fp_codedbuf);
1414*54e60f84SAndroid Build Coastguard Worker 
1415*54e60f84SAndroid Build Coastguard Worker         if (trace_ctx->trace_surface_fn)
1416*54e60f84SAndroid Build Coastguard Worker             free(trace_ctx->trace_surface_fn);
1417*54e60f84SAndroid Build Coastguard Worker 
1418*54e60f84SAndroid Build Coastguard Worker         if (trace_ctx->trace_fp_surface)
1419*54e60f84SAndroid Build Coastguard Worker             fclose(trace_ctx->trace_fp_surface);
1420*54e60f84SAndroid Build Coastguard Worker 
1421*54e60f84SAndroid Build Coastguard Worker         //delete_trace_all_context_buf(pva_trace, context);
1422*54e60f84SAndroid Build Coastguard Worker 
1423*54e60f84SAndroid Build Coastguard Worker         free(trace_ctx);
1424*54e60f84SAndroid Build Coastguard Worker     }
1425*54e60f84SAndroid Build Coastguard Worker }
1426*54e60f84SAndroid Build Coastguard Worker 
va_TraceCreateContext(VADisplay dpy,VAConfigID config_id,int picture_width,int picture_height,int flag,VASurfaceID * render_targets,int num_render_targets,VAContextID * context)1427*54e60f84SAndroid Build Coastguard Worker void va_TraceCreateContext(
1428*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
1429*54e60f84SAndroid Build Coastguard Worker     VAConfigID config_id,
1430*54e60f84SAndroid Build Coastguard Worker     int picture_width,
1431*54e60f84SAndroid Build Coastguard Worker     int picture_height,
1432*54e60f84SAndroid Build Coastguard Worker     int flag,
1433*54e60f84SAndroid Build Coastguard Worker     VASurfaceID *render_targets,
1434*54e60f84SAndroid Build Coastguard Worker     int num_render_targets,
1435*54e60f84SAndroid Build Coastguard Worker     VAContextID *context        /* out */
1436*54e60f84SAndroid Build Coastguard Worker )
1437*54e60f84SAndroid Build Coastguard Worker {
1438*54e60f84SAndroid Build Coastguard Worker     struct va_trace *pva_trace = NULL;
1439*54e60f84SAndroid Build Coastguard Worker     struct trace_context *trace_ctx = NULL;
1440*54e60f84SAndroid Build Coastguard Worker     int tra_ctx_id = 0;
1441*54e60f84SAndroid Build Coastguard Worker     int encode = 0, decode = 0, jpeg = 0;
1442*54e60f84SAndroid Build Coastguard Worker     int i;
1443*54e60f84SAndroid Build Coastguard Worker 
1444*54e60f84SAndroid Build Coastguard Worker     pva_trace = (struct va_trace *)(((VADisplayContextP)dpy)->vatrace);
1445*54e60f84SAndroid Build Coastguard Worker     if (!context
1446*54e60f84SAndroid Build Coastguard Worker         || *context == VA_INVALID_ID
1447*54e60f84SAndroid Build Coastguard Worker         || !pva_trace) {
1448*54e60f84SAndroid Build Coastguard Worker         va_errorMessage(dpy, "Invalid context id 0x%08x\n",
1449*54e60f84SAndroid Build Coastguard Worker                         context == NULL ? 0 : (int)*context);
1450*54e60f84SAndroid Build Coastguard Worker         return;
1451*54e60f84SAndroid Build Coastguard Worker     }
1452*54e60f84SAndroid Build Coastguard Worker 
1453*54e60f84SAndroid Build Coastguard Worker     LOCK_CONTEXT(pva_trace);
1454*54e60f84SAndroid Build Coastguard Worker 
1455*54e60f84SAndroid Build Coastguard Worker     tra_ctx_id = get_free_ctx_idx(pva_trace, *context);
1456*54e60f84SAndroid Build Coastguard Worker     if (tra_ctx_id >= MAX_TRACE_CTX_NUM) {
1457*54e60f84SAndroid Build Coastguard Worker         va_errorMessage(dpy, "Can't get trace context for ctx 0x%08x\n",
1458*54e60f84SAndroid Build Coastguard Worker                         *context);
1459*54e60f84SAndroid Build Coastguard Worker 
1460*54e60f84SAndroid Build Coastguard Worker         goto FAIL;
1461*54e60f84SAndroid Build Coastguard Worker     }
1462*54e60f84SAndroid Build Coastguard Worker 
1463*54e60f84SAndroid Build Coastguard Worker     trace_ctx = calloc(sizeof(struct trace_context), 1);
1464*54e60f84SAndroid Build Coastguard Worker     if (trace_ctx == NULL) {
1465*54e60f84SAndroid Build Coastguard Worker         va_errorMessage(dpy, "Allocate trace context failed for ctx 0x%08x\n",
1466*54e60f84SAndroid Build Coastguard Worker                         *context);
1467*54e60f84SAndroid Build Coastguard Worker 
1468*54e60f84SAndroid Build Coastguard Worker         goto FAIL;
1469*54e60f84SAndroid Build Coastguard Worker     }
1470*54e60f84SAndroid Build Coastguard Worker 
1471*54e60f84SAndroid Build Coastguard Worker     i = get_valid_config_idx(pva_trace, config_id);
1472*54e60f84SAndroid Build Coastguard Worker     if (i >= MAX_TRACE_CTX_NUM) {
1473*54e60f84SAndroid Build Coastguard Worker         va_errorMessage(dpy, "Can't get trace config id for ctx 0x%08x cfg %x\n",
1474*54e60f84SAndroid Build Coastguard Worker                         *context, config_id);
1475*54e60f84SAndroid Build Coastguard Worker 
1476*54e60f84SAndroid Build Coastguard Worker         goto FAIL;
1477*54e60f84SAndroid Build Coastguard Worker     }
1478*54e60f84SAndroid Build Coastguard Worker     trace_ctx->trace_profile = pva_trace->config_info[i].trace_profile;
1479*54e60f84SAndroid Build Coastguard Worker     trace_ctx->trace_entrypoint = pva_trace->config_info[i].trace_entrypoint;
1480*54e60f84SAndroid Build Coastguard Worker 
1481*54e60f84SAndroid Build Coastguard Worker     if (va_trace_flag & VA_TRACE_FLAG_LOG) {
1482*54e60f84SAndroid Build Coastguard Worker         trace_ctx->plog_file = start_tracing2log_file(pva_trace);
1483*54e60f84SAndroid Build Coastguard Worker         if (!trace_ctx->plog_file) {
1484*54e60f84SAndroid Build Coastguard Worker             va_errorMessage(dpy, "Can't get trace log file for ctx 0x%08x\n",
1485*54e60f84SAndroid Build Coastguard Worker                             *context);
1486*54e60f84SAndroid Build Coastguard Worker 
1487*54e60f84SAndroid Build Coastguard Worker             goto FAIL;
1488*54e60f84SAndroid Build Coastguard Worker         } else
1489*54e60f84SAndroid Build Coastguard Worker             va_infoMessage(dpy, "Save context 0x%08x into log file %s\n", *context,
1490*54e60f84SAndroid Build Coastguard Worker                            trace_ctx->plog_file->fn_log);
1491*54e60f84SAndroid Build Coastguard Worker 
1492*54e60f84SAndroid Build Coastguard Worker         trace_ctx->plog_file_list[0] = trace_ctx->plog_file;
1493*54e60f84SAndroid Build Coastguard Worker     }
1494*54e60f84SAndroid Build Coastguard Worker 
1495*54e60f84SAndroid Build Coastguard Worker     trace_ctx->trace_context = *context;
1496*54e60f84SAndroid Build Coastguard Worker     TRACE_FUNCNAME(idx);
1497*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcontext = 0x%08x va_trace_flag 0x%x\n", *context, va_trace_flag);
1498*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tprofile = %d,%s entrypoint = %d,%s\n", trace_ctx->trace_profile,
1499*54e60f84SAndroid Build Coastguard Worker                 vaProfileStr(trace_ctx->trace_profile), trace_ctx->trace_entrypoint,
1500*54e60f84SAndroid Build Coastguard Worker                 vaEntrypointStr(trace_ctx->trace_entrypoint));
1501*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tconfig = 0x%08x\n", config_id);
1502*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\twidth = %d\n", picture_width);
1503*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\theight = %d\n", picture_height);
1504*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tflag = 0x%08x\n", flag);
1505*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_render_targets = %d\n", num_render_targets);
1506*54e60f84SAndroid Build Coastguard Worker     if (render_targets) {
1507*54e60f84SAndroid Build Coastguard Worker         for (i = 0; i < num_render_targets; i++)
1508*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t\trender_targets[%d] = 0x%08x\n", i, render_targets[i]);
1509*54e60f84SAndroid Build Coastguard Worker     }
1510*54e60f84SAndroid Build Coastguard Worker 
1511*54e60f84SAndroid Build Coastguard Worker     trace_ctx->trace_frame_no = 0;
1512*54e60f84SAndroid Build Coastguard Worker     trace_ctx->trace_slice_no = 0;
1513*54e60f84SAndroid Build Coastguard Worker 
1514*54e60f84SAndroid Build Coastguard Worker     trace_ctx->trace_frame_width = picture_width;
1515*54e60f84SAndroid Build Coastguard Worker     trace_ctx->trace_frame_height = picture_height;
1516*54e60f84SAndroid Build Coastguard Worker 
1517*54e60f84SAndroid Build Coastguard Worker     if (trace_ctx->trace_surface_width == 0)
1518*54e60f84SAndroid Build Coastguard Worker         trace_ctx->trace_surface_width = picture_width;
1519*54e60f84SAndroid Build Coastguard Worker     if (trace_ctx->trace_surface_height == 0)
1520*54e60f84SAndroid Build Coastguard Worker         trace_ctx->trace_surface_height = picture_height;
1521*54e60f84SAndroid Build Coastguard Worker 
1522*54e60f84SAndroid Build Coastguard Worker     /* avoid to create so many empty files */
1523*54e60f84SAndroid Build Coastguard Worker     encode = (trace_ctx->trace_entrypoint == VAEntrypointEncSlice);
1524*54e60f84SAndroid Build Coastguard Worker     decode = (trace_ctx->trace_entrypoint == VAEntrypointVLD);
1525*54e60f84SAndroid Build Coastguard Worker     jpeg = (trace_ctx->trace_entrypoint == VAEntrypointEncPicture);
1526*54e60f84SAndroid Build Coastguard Worker     if ((encode && (va_trace_flag & VA_TRACE_FLAG_SURFACE_ENCODE)) ||
1527*54e60f84SAndroid Build Coastguard Worker         (decode && (va_trace_flag & VA_TRACE_FLAG_SURFACE_DECODE)) ||
1528*54e60f84SAndroid Build Coastguard Worker         (jpeg && (va_trace_flag & VA_TRACE_FLAG_SURFACE_JPEG))) {
1529*54e60f84SAndroid Build Coastguard Worker         if (open_tracing_specil_file(pva_trace, trace_ctx, 1) < 0) {
1530*54e60f84SAndroid Build Coastguard Worker             va_errorMessage(dpy, "Open surface fail failed for ctx 0x%08x\n", *context);
1531*54e60f84SAndroid Build Coastguard Worker 
1532*54e60f84SAndroid Build Coastguard Worker             va_trace_flag &= ~(VA_TRACE_FLAG_SURFACE);
1533*54e60f84SAndroid Build Coastguard Worker         }
1534*54e60f84SAndroid Build Coastguard Worker     }
1535*54e60f84SAndroid Build Coastguard Worker 
1536*54e60f84SAndroid Build Coastguard Worker     if (encode && (va_trace_flag & VA_TRACE_FLAG_CODEDBUF)) {
1537*54e60f84SAndroid Build Coastguard Worker         if (open_tracing_specil_file(pva_trace, trace_ctx, 0) < 0) {
1538*54e60f84SAndroid Build Coastguard Worker             va_errorMessage(dpy, "Open codedbuf fail failed for ctx 0x%08x\n", *context);
1539*54e60f84SAndroid Build Coastguard Worker 
1540*54e60f84SAndroid Build Coastguard Worker             va_trace_flag &= ~(VA_TRACE_FLAG_CODEDBUF);
1541*54e60f84SAndroid Build Coastguard Worker         }
1542*54e60f84SAndroid Build Coastguard Worker     }
1543*54e60f84SAndroid Build Coastguard Worker 
1544*54e60f84SAndroid Build Coastguard Worker     internal_TraceUpdateContext(pva_trace, tra_ctx_id, trace_ctx, *context, 0);
1545*54e60f84SAndroid Build Coastguard Worker 
1546*54e60f84SAndroid Build Coastguard Worker     UNLOCK_CONTEXT(pva_trace);
1547*54e60f84SAndroid Build Coastguard Worker     return;
1548*54e60f84SAndroid Build Coastguard Worker 
1549*54e60f84SAndroid Build Coastguard Worker FAIL:
1550*54e60f84SAndroid Build Coastguard Worker     internal_TraceUpdateContext(pva_trace, tra_ctx_id, NULL, *context, 1);
1551*54e60f84SAndroid Build Coastguard Worker 
1552*54e60f84SAndroid Build Coastguard Worker     UNLOCK_CONTEXT(pva_trace);
1553*54e60f84SAndroid Build Coastguard Worker 
1554*54e60f84SAndroid Build Coastguard Worker     if (trace_ctx)
1555*54e60f84SAndroid Build Coastguard Worker         free(trace_ctx);
1556*54e60f84SAndroid Build Coastguard Worker }
1557*54e60f84SAndroid Build Coastguard Worker 
va_TraceDestroyContext(VADisplay dpy,VAContextID context)1558*54e60f84SAndroid Build Coastguard Worker void va_TraceDestroyContext(
1559*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
1560*54e60f84SAndroid Build Coastguard Worker     VAContextID context
1561*54e60f84SAndroid Build Coastguard Worker )
1562*54e60f84SAndroid Build Coastguard Worker {
1563*54e60f84SAndroid Build Coastguard Worker     struct va_trace *pva_trace = NULL;
1564*54e60f84SAndroid Build Coastguard Worker     struct trace_context *trace_ctx = NULL;
1565*54e60f84SAndroid Build Coastguard Worker     int ctx_id = 0;
1566*54e60f84SAndroid Build Coastguard Worker 
1567*54e60f84SAndroid Build Coastguard Worker     pva_trace = (struct va_trace *)(((VADisplayContextP)dpy)->vatrace);
1568*54e60f84SAndroid Build Coastguard Worker 
1569*54e60f84SAndroid Build Coastguard Worker     if (!pva_trace)
1570*54e60f84SAndroid Build Coastguard Worker         return;
1571*54e60f84SAndroid Build Coastguard Worker 
1572*54e60f84SAndroid Build Coastguard Worker     LOCK_CONTEXT(pva_trace);
1573*54e60f84SAndroid Build Coastguard Worker 
1574*54e60f84SAndroid Build Coastguard Worker     ctx_id = get_valid_ctx_idx(pva_trace, context);
1575*54e60f84SAndroid Build Coastguard Worker     if (ctx_id < MAX_TRACE_CTX_NUM) {
1576*54e60f84SAndroid Build Coastguard Worker         trace_ctx = pva_trace->ptra_ctx[ctx_id];
1577*54e60f84SAndroid Build Coastguard Worker 
1578*54e60f84SAndroid Build Coastguard Worker         if (trace_ctx) {
1579*54e60f84SAndroid Build Coastguard Worker             refresh_log_file(pva_trace, trace_ctx);
1580*54e60f84SAndroid Build Coastguard Worker 
1581*54e60f84SAndroid Build Coastguard Worker             internal_TraceUpdateContext(pva_trace,
1582*54e60f84SAndroid Build Coastguard Worker                                         get_valid_ctx_idx(pva_trace, context),
1583*54e60f84SAndroid Build Coastguard Worker                                         NULL, context, 0);
1584*54e60f84SAndroid Build Coastguard Worker         }
1585*54e60f84SAndroid Build Coastguard Worker     }
1586*54e60f84SAndroid Build Coastguard Worker 
1587*54e60f84SAndroid Build Coastguard Worker     UNLOCK_CONTEXT(pva_trace);
1588*54e60f84SAndroid Build Coastguard Worker }
1589*54e60f84SAndroid Build Coastguard Worker 
va_TraceCreateMFContext(VADisplay dpy,VAMFContextID * mf_context)1590*54e60f84SAndroid Build Coastguard Worker void va_TraceCreateMFContext(
1591*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
1592*54e60f84SAndroid Build Coastguard Worker     VAMFContextID *mf_context    /* out */
1593*54e60f84SAndroid Build Coastguard Worker )
1594*54e60f84SAndroid Build Coastguard Worker {
1595*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, VA_INVALID_ID, VA_INVALID_ID);
1596*54e60f84SAndroid Build Coastguard Worker     TRACE_FUNCNAME(idx);
1597*54e60f84SAndroid Build Coastguard Worker     if (mf_context) {
1598*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tmf_context = 0x%08x\n", *mf_context);
1599*54e60f84SAndroid Build Coastguard Worker         trace_ctx->trace_context = *mf_context;
1600*54e60f84SAndroid Build Coastguard Worker     } else
1601*54e60f84SAndroid Build Coastguard Worker         trace_ctx->trace_context = VA_INVALID_ID;
1602*54e60f84SAndroid Build Coastguard Worker }
1603*54e60f84SAndroid Build Coastguard Worker 
va_TraceMFAddContext(VADisplay dpy,VAMFContextID mf_context,VAContextID context)1604*54e60f84SAndroid Build Coastguard Worker void va_TraceMFAddContext(
1605*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
1606*54e60f84SAndroid Build Coastguard Worker     VAMFContextID mf_context,
1607*54e60f84SAndroid Build Coastguard Worker     VAContextID context
1608*54e60f84SAndroid Build Coastguard Worker )
1609*54e60f84SAndroid Build Coastguard Worker {
1610*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, mf_context, VA_INVALID_ID);
1611*54e60f84SAndroid Build Coastguard Worker 
1612*54e60f84SAndroid Build Coastguard Worker     TRACE_FUNCNAME(idx);
1613*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmf_context = 0x%08x\n", mf_context);
1614*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcontext = 0x%08x\n", context);
1615*54e60f84SAndroid Build Coastguard Worker }
1616*54e60f84SAndroid Build Coastguard Worker 
va_TraceMFReleaseContext(VADisplay dpy,VAMFContextID mf_context,VAContextID context)1617*54e60f84SAndroid Build Coastguard Worker void va_TraceMFReleaseContext(
1618*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
1619*54e60f84SAndroid Build Coastguard Worker     VAMFContextID mf_context,
1620*54e60f84SAndroid Build Coastguard Worker     VAContextID context
1621*54e60f84SAndroid Build Coastguard Worker )
1622*54e60f84SAndroid Build Coastguard Worker {
1623*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, mf_context, VA_INVALID_ID);
1624*54e60f84SAndroid Build Coastguard Worker 
1625*54e60f84SAndroid Build Coastguard Worker     TRACE_FUNCNAME(idx);
1626*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmf_context = 0x%08x\n", mf_context);
1627*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcontext = 0x%08x\n", context);
1628*54e60f84SAndroid Build Coastguard Worker }
1629*54e60f84SAndroid Build Coastguard Worker 
va_TraceMFSubmit(VADisplay dpy,VAMFContextID mf_context,VAContextID * contexts,int num_contexts)1630*54e60f84SAndroid Build Coastguard Worker void va_TraceMFSubmit(
1631*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
1632*54e60f84SAndroid Build Coastguard Worker     VAMFContextID mf_context,
1633*54e60f84SAndroid Build Coastguard Worker     VAContextID *contexts,
1634*54e60f84SAndroid Build Coastguard Worker     int num_contexts
1635*54e60f84SAndroid Build Coastguard Worker )
1636*54e60f84SAndroid Build Coastguard Worker {
1637*54e60f84SAndroid Build Coastguard Worker     int i;
1638*54e60f84SAndroid Build Coastguard Worker 
1639*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, mf_context, VA_INVALID_ID);
1640*54e60f84SAndroid Build Coastguard Worker 
1641*54e60f84SAndroid Build Coastguard Worker     TRACE_FUNCNAME(idx);
1642*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmf_context = 0x%08x\n", mf_context);
1643*54e60f84SAndroid Build Coastguard Worker 
1644*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < num_contexts; i++) {
1645*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\tcontext[%d] = 0x%08x\n", i, contexts[i]);
1646*54e60f84SAndroid Build Coastguard Worker     }
1647*54e60f84SAndroid Build Coastguard Worker }
1648*54e60f84SAndroid Build Coastguard Worker 
va_TraceCreateBuffer(VADisplay dpy,VAContextID context,VABufferType type,unsigned int size,unsigned int num_elements,void * data,VABufferID * buf_id)1649*54e60f84SAndroid Build Coastguard Worker void va_TraceCreateBuffer(
1650*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
1651*54e60f84SAndroid Build Coastguard Worker     VAContextID context,    /* in */
1652*54e60f84SAndroid Build Coastguard Worker     VABufferType type,      /* in */
1653*54e60f84SAndroid Build Coastguard Worker     unsigned int size,      /* in */
1654*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,  /* in */
1655*54e60f84SAndroid Build Coastguard Worker     void *data,         /* in */
1656*54e60f84SAndroid Build Coastguard Worker     VABufferID *buf_id      /* out */
1657*54e60f84SAndroid Build Coastguard Worker )
1658*54e60f84SAndroid Build Coastguard Worker {
1659*54e60f84SAndroid Build Coastguard Worker     if (!buf_id || *buf_id == VA_INVALID_ID)
1660*54e60f84SAndroid Build Coastguard Worker         return;
1661*54e60f84SAndroid Build Coastguard Worker 
1662*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
1663*54e60f84SAndroid Build Coastguard Worker 
1664*54e60f84SAndroid Build Coastguard Worker     add_trace_buf_info(pva_trace, context, *buf_id);
1665*54e60f84SAndroid Build Coastguard Worker 
1666*54e60f84SAndroid Build Coastguard Worker     /* only trace CodedBuffer */
1667*54e60f84SAndroid Build Coastguard Worker     if (type != VAEncCodedBufferType)
1668*54e60f84SAndroid Build Coastguard Worker         return;
1669*54e60f84SAndroid Build Coastguard Worker 
1670*54e60f84SAndroid Build Coastguard Worker     TRACE_FUNCNAME(idx);
1671*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbuf_type=%s\n", vaBufferTypeStr(type));
1672*54e60f84SAndroid Build Coastguard Worker     if (buf_id)
1673*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tbuf_id=0x%x\n", *buf_id);
1674*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsize=%u\n", size);
1675*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_elements=%u\n", num_elements);
1676*54e60f84SAndroid Build Coastguard Worker 
1677*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
1678*54e60f84SAndroid Build Coastguard Worker }
1679*54e60f84SAndroid Build Coastguard Worker 
va_TraceDestroyBuffer(VADisplay dpy,VABufferID buf_id)1680*54e60f84SAndroid Build Coastguard Worker void va_TraceDestroyBuffer(
1681*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
1682*54e60f84SAndroid Build Coastguard Worker     VABufferID buf_id    /* in */
1683*54e60f84SAndroid Build Coastguard Worker )
1684*54e60f84SAndroid Build Coastguard Worker {
1685*54e60f84SAndroid Build Coastguard Worker     VABufferType type;
1686*54e60f84SAndroid Build Coastguard Worker     unsigned int size;
1687*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements;
1688*54e60f84SAndroid Build Coastguard Worker 
1689*54e60f84SAndroid Build Coastguard Worker     if (buf_id == VA_INVALID_ID)
1690*54e60f84SAndroid Build Coastguard Worker         return;
1691*54e60f84SAndroid Build Coastguard Worker 
1692*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, VA_INVALID_ID, buf_id);
1693*54e60f84SAndroid Build Coastguard Worker 
1694*54e60f84SAndroid Build Coastguard Worker     vaBufferInfo(dpy, trace_ctx->trace_context, buf_id, &type, &size, &num_elements);
1695*54e60f84SAndroid Build Coastguard Worker 
1696*54e60f84SAndroid Build Coastguard Worker     delete_trace_buf_info(pva_trace, buf_id);
1697*54e60f84SAndroid Build Coastguard Worker 
1698*54e60f84SAndroid Build Coastguard Worker     /* only trace CodedBuffer */
1699*54e60f84SAndroid Build Coastguard Worker     if (type != VAEncCodedBufferType)
1700*54e60f84SAndroid Build Coastguard Worker         return;
1701*54e60f84SAndroid Build Coastguard Worker 
1702*54e60f84SAndroid Build Coastguard Worker     TRACE_FUNCNAME(idx);
1703*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbuf_type=%s\n", vaBufferTypeStr(type));
1704*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbuf_id=0x%x\n", buf_id);
1705*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsize=%u\n", size);
1706*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_elements=%u\n", num_elements);
1707*54e60f84SAndroid Build Coastguard Worker 
1708*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
1709*54e60f84SAndroid Build Coastguard Worker }
1710*54e60f84SAndroid Build Coastguard Worker 
1711*54e60f84SAndroid Build Coastguard Worker 
mem_put_le16(char * mem,unsigned int val)1712*54e60f84SAndroid Build Coastguard Worker static void mem_put_le16(char *mem, unsigned int val)
1713*54e60f84SAndroid Build Coastguard Worker {
1714*54e60f84SAndroid Build Coastguard Worker     mem[0] = val;
1715*54e60f84SAndroid Build Coastguard Worker     mem[1] = val >> 8;
1716*54e60f84SAndroid Build Coastguard Worker }
1717*54e60f84SAndroid Build Coastguard Worker 
mem_put_le32(char * mem,unsigned int val)1718*54e60f84SAndroid Build Coastguard Worker static void mem_put_le32(char *mem, unsigned int val)
1719*54e60f84SAndroid Build Coastguard Worker {
1720*54e60f84SAndroid Build Coastguard Worker     mem[0] = val;
1721*54e60f84SAndroid Build Coastguard Worker     mem[1] = val >> 8;
1722*54e60f84SAndroid Build Coastguard Worker     mem[2] = val >> 16;
1723*54e60f84SAndroid Build Coastguard Worker     mem[3] = val >> 24;
1724*54e60f84SAndroid Build Coastguard Worker }
1725*54e60f84SAndroid Build Coastguard Worker 
va_TraceCodedBufferIVFHeader(struct trace_context * trace_ctx,void ** pbuf)1726*54e60f84SAndroid Build Coastguard Worker static void va_TraceCodedBufferIVFHeader(struct trace_context *trace_ctx, void **pbuf)
1727*54e60f84SAndroid Build Coastguard Worker {
1728*54e60f84SAndroid Build Coastguard Worker     VACodedBufferSegment *buf_list;
1729*54e60f84SAndroid Build Coastguard Worker     unsigned int frame_length = 0;
1730*54e60f84SAndroid Build Coastguard Worker     char header[32];
1731*54e60f84SAndroid Build Coastguard Worker 
1732*54e60f84SAndroid Build Coastguard Worker     buf_list = (VACodedBufferSegment *)(*pbuf);
1733*54e60f84SAndroid Build Coastguard Worker 
1734*54e60f84SAndroid Build Coastguard Worker     if (ftell(trace_ctx->trace_fp_codedbuf) == 0) { /* write ivf header */
1735*54e60f84SAndroid Build Coastguard Worker         header[0] = 'D';
1736*54e60f84SAndroid Build Coastguard Worker         header[1] = 'K';
1737*54e60f84SAndroid Build Coastguard Worker         header[2] = 'I';
1738*54e60f84SAndroid Build Coastguard Worker         header[3] = 'F';
1739*54e60f84SAndroid Build Coastguard Worker         mem_put_le16(header + 4,  0);                   /* version */
1740*54e60f84SAndroid Build Coastguard Worker         mem_put_le16(header + 6,  32);                  /* headersize */
1741*54e60f84SAndroid Build Coastguard Worker         mem_put_le32(header + 8,  0x30385056);          /* headersize */
1742*54e60f84SAndroid Build Coastguard Worker         /* write width and height of the first rc_param to IVF file header */
1743*54e60f84SAndroid Build Coastguard Worker         mem_put_le16(header + 12, trace_ctx->trace_frame_width); /* width */
1744*54e60f84SAndroid Build Coastguard Worker         mem_put_le16(header + 14, trace_ctx->trace_frame_height); /* height */
1745*54e60f84SAndroid Build Coastguard Worker         mem_put_le32(header + 16, 30);          /* rate */
1746*54e60f84SAndroid Build Coastguard Worker         mem_put_le32(header + 20, 1);                   /* scale */
1747*54e60f84SAndroid Build Coastguard Worker         mem_put_le32(header + 24, 0xffffffff);          /* length */
1748*54e60f84SAndroid Build Coastguard Worker         mem_put_le32(header + 28, 0);                   /* unused */
1749*54e60f84SAndroid Build Coastguard Worker         fwrite(header, 1, 32, trace_ctx->trace_fp_codedbuf);
1750*54e60f84SAndroid Build Coastguard Worker     }
1751*54e60f84SAndroid Build Coastguard Worker 
1752*54e60f84SAndroid Build Coastguard Worker     /* write frame header */
1753*54e60f84SAndroid Build Coastguard Worker     while (buf_list != NULL) {
1754*54e60f84SAndroid Build Coastguard Worker         frame_length += buf_list->size;
1755*54e60f84SAndroid Build Coastguard Worker         buf_list = (VACodedBufferSegment *) buf_list->next;
1756*54e60f84SAndroid Build Coastguard Worker     }
1757*54e60f84SAndroid Build Coastguard Worker     mem_put_le32(header, frame_length);
1758*54e60f84SAndroid Build Coastguard Worker     mem_put_le32(header + 4, trace_ctx->pts & 0xFFFFFFFF);
1759*54e60f84SAndroid Build Coastguard Worker     mem_put_le32(header + 8, 0);
1760*54e60f84SAndroid Build Coastguard Worker     fwrite(header, 1, 12, trace_ctx->trace_fp_codedbuf);
1761*54e60f84SAndroid Build Coastguard Worker     trace_ctx->pts++;
1762*54e60f84SAndroid Build Coastguard Worker 
1763*54e60f84SAndroid Build Coastguard Worker     fflush(trace_ctx->trace_fp_codedbuf);
1764*54e60f84SAndroid Build Coastguard Worker }
1765*54e60f84SAndroid Build Coastguard Worker 
va_TraceMapBuffer(VADisplay dpy,VABufferID buf_id,void ** pbuf,uint32_t flags)1766*54e60f84SAndroid Build Coastguard Worker void va_TraceMapBuffer(
1767*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
1768*54e60f84SAndroid Build Coastguard Worker     VABufferID buf_id,    /* in */
1769*54e60f84SAndroid Build Coastguard Worker     void **pbuf,          /* out */
1770*54e60f84SAndroid Build Coastguard Worker     uint32_t flags       /* in */
1771*54e60f84SAndroid Build Coastguard Worker )
1772*54e60f84SAndroid Build Coastguard Worker {
1773*54e60f84SAndroid Build Coastguard Worker     VABufferType type;
1774*54e60f84SAndroid Build Coastguard Worker     unsigned int size;
1775*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements;
1776*54e60f84SAndroid Build Coastguard Worker 
1777*54e60f84SAndroid Build Coastguard Worker     VACodedBufferSegment *buf_list;
1778*54e60f84SAndroid Build Coastguard Worker     int i = 0;
1779*54e60f84SAndroid Build Coastguard Worker 
1780*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, VA_INVALID_ID, buf_id);
1781*54e60f84SAndroid Build Coastguard Worker 
1782*54e60f84SAndroid Build Coastguard Worker     vaBufferInfo(dpy, trace_ctx->trace_context, buf_id, &type, &size, &num_elements);
1783*54e60f84SAndroid Build Coastguard Worker 
1784*54e60f84SAndroid Build Coastguard Worker     /* only trace CodedBuffer */
1785*54e60f84SAndroid Build Coastguard Worker     if (type != VAEncCodedBufferType)
1786*54e60f84SAndroid Build Coastguard Worker         return;
1787*54e60f84SAndroid Build Coastguard Worker 
1788*54e60f84SAndroid Build Coastguard Worker     TRACE_FUNCNAME(idx);
1789*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbuf_id=0x%x\n", buf_id);
1790*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbuf_type=%s\n", vaBufferTypeStr(type));
1791*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tflags = 0x%x\n", flags);
1792*54e60f84SAndroid Build Coastguard Worker     if ((pbuf == NULL) || (*pbuf == NULL))
1793*54e60f84SAndroid Build Coastguard Worker         return;
1794*54e60f84SAndroid Build Coastguard Worker 
1795*54e60f84SAndroid Build Coastguard Worker     if (trace_ctx->trace_profile == VAProfileVP8Version0_3) {
1796*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tAdd IVF header information\n");
1797*54e60f84SAndroid Build Coastguard Worker         va_TraceCodedBufferIVFHeader(trace_ctx, pbuf);
1798*54e60f84SAndroid Build Coastguard Worker     }
1799*54e60f84SAndroid Build Coastguard Worker 
1800*54e60f84SAndroid Build Coastguard Worker     buf_list = (VACodedBufferSegment *)(*pbuf);
1801*54e60f84SAndroid Build Coastguard Worker     while (buf_list != NULL) {
1802*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tCodedbuf[%d] =\n", i++);
1803*54e60f84SAndroid Build Coastguard Worker 
1804*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t   size = %u\n", buf_list->size);
1805*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t   bit_offset = %u\n", buf_list->bit_offset);
1806*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t   status = 0x%08x\n", buf_list->status);
1807*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t   reserved = 0x%08x\n", buf_list->reserved);
1808*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t   buf = 0x%p\n", buf_list->buf);
1809*54e60f84SAndroid Build Coastguard Worker 
1810*54e60f84SAndroid Build Coastguard Worker         if (trace_ctx->trace_fp_codedbuf) {
1811*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\tDump the content to file\n");
1812*54e60f84SAndroid Build Coastguard Worker             fwrite(buf_list->buf, buf_list->size, 1, trace_ctx->trace_fp_codedbuf);
1813*54e60f84SAndroid Build Coastguard Worker 
1814*54e60f84SAndroid Build Coastguard Worker             fflush(trace_ctx->trace_fp_codedbuf);
1815*54e60f84SAndroid Build Coastguard Worker         }
1816*54e60f84SAndroid Build Coastguard Worker 
1817*54e60f84SAndroid Build Coastguard Worker         buf_list = buf_list->next;
1818*54e60f84SAndroid Build Coastguard Worker     }
1819*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
1820*54e60f84SAndroid Build Coastguard Worker }
1821*54e60f84SAndroid Build Coastguard Worker 
va_TraceVABuffers(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * pbuf)1822*54e60f84SAndroid Build Coastguard Worker static void va_TraceVABuffers(
1823*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
1824*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
1825*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
1826*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
1827*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
1828*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
1829*54e60f84SAndroid Build Coastguard Worker     void *pbuf
1830*54e60f84SAndroid Build Coastguard Worker )
1831*54e60f84SAndroid Build Coastguard Worker {
1832*54e60f84SAndroid Build Coastguard Worker     unsigned int i;
1833*54e60f84SAndroid Build Coastguard Worker     unsigned char *p = pbuf;
1834*54e60f84SAndroid Build Coastguard Worker     FILE *fp = NULL;
1835*54e60f84SAndroid Build Coastguard Worker 
1836*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
1837*54e60f84SAndroid Build Coastguard Worker 
1838*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "--%s\n", vaBufferTypeStr(type));
1839*54e60f84SAndroid Build Coastguard Worker 
1840*54e60f84SAndroid Build Coastguard Worker     if (trace_ctx->plog_file)
1841*54e60f84SAndroid Build Coastguard Worker         fp = trace_ctx->plog_file->fp_log;
1842*54e60f84SAndroid Build Coastguard Worker 
1843*54e60f84SAndroid Build Coastguard Worker     if ((va_trace_flag & VA_TRACE_FLAG_BUFDATA) && fp) {
1844*54e60f84SAndroid Build Coastguard Worker         for (i = 0; i < size; i++) {
1845*54e60f84SAndroid Build Coastguard Worker             unsigned char value =  p[i];
1846*54e60f84SAndroid Build Coastguard Worker 
1847*54e60f84SAndroid Build Coastguard Worker             if (i == 0)
1848*54e60f84SAndroid Build Coastguard Worker                 fprintf(fp, "\t\t0x%04x:", i);
1849*54e60f84SAndroid Build Coastguard Worker             else if ((i % 16) == 0)
1850*54e60f84SAndroid Build Coastguard Worker                 fprintf(fp, "\n\t\t0x%04x:", i);
1851*54e60f84SAndroid Build Coastguard Worker 
1852*54e60f84SAndroid Build Coastguard Worker             fprintf(fp, " %02x", value);
1853*54e60f84SAndroid Build Coastguard Worker         }
1854*54e60f84SAndroid Build Coastguard Worker         fprintf(fp, "\n");
1855*54e60f84SAndroid Build Coastguard Worker     }
1856*54e60f84SAndroid Build Coastguard Worker 
1857*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
1858*54e60f84SAndroid Build Coastguard Worker 
1859*54e60f84SAndroid Build Coastguard Worker     return;
1860*54e60f84SAndroid Build Coastguard Worker }
1861*54e60f84SAndroid Build Coastguard Worker 
1862*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAPictureParameterBufferMPEG2(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)1863*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAPictureParameterBufferMPEG2(
1864*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
1865*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
1866*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
1867*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
1868*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
1869*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
1870*54e60f84SAndroid Build Coastguard Worker     void *data)
1871*54e60f84SAndroid Build Coastguard Worker {
1872*54e60f84SAndroid Build Coastguard Worker     VAPictureParameterBufferMPEG2 *p = (VAPictureParameterBufferMPEG2 *)data;
1873*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
1874*54e60f84SAndroid Build Coastguard Worker 
1875*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "VAPictureParameterBufferMPEG2\n");
1876*54e60f84SAndroid Build Coastguard Worker 
1877*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\thorizontal size= %d\n", p->horizontal_size);
1878*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tvertical size= %d\n", p->vertical_size);
1879*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tforward reference picture= %d\n", p->forward_reference_picture);
1880*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbackward reference picture= %d\n", p->backward_reference_picture);
1881*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpicture coding type= %d\n", p->picture_coding_type);
1882*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tf mode= %d\n", p->f_code);
1883*54e60f84SAndroid Build Coastguard Worker 
1884*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpicture coding extension = %d\n", p->picture_coding_extension.value);
1885*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tintra_dc_precision= %d\n", p->picture_coding_extension.bits.intra_dc_precision);
1886*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpicture_structure= %d\n", p->picture_coding_extension.bits.picture_structure);
1887*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttop_field_first= %d\n", p->picture_coding_extension.bits.top_field_first);
1888*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_pred_frame_dct= %d\n", p->picture_coding_extension.bits.frame_pred_frame_dct);
1889*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tconcealment_motion_vectors= %d\n", p->picture_coding_extension.bits.concealment_motion_vectors);
1890*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tq_scale_type= %d\n", p->picture_coding_extension.bits.q_scale_type);
1891*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tintra_vlc_format= %d\n", p->picture_coding_extension.bits.intra_vlc_format);
1892*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\talternate_scan= %d\n", p->picture_coding_extension.bits.alternate_scan);
1893*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\trepeat_first_field= %d\n", p->picture_coding_extension.bits.repeat_first_field);
1894*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tprogressive_frame= %d\n", p->picture_coding_extension.bits.progressive_frame);
1895*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tis_first_field= %d\n", p->picture_coding_extension.bits.is_first_field);
1896*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
1897*54e60f84SAndroid Build Coastguard Worker 
1898*54e60f84SAndroid Build Coastguard Worker     return;
1899*54e60f84SAndroid Build Coastguard Worker }
1900*54e60f84SAndroid Build Coastguard Worker 
1901*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAIQMatrixBufferMPEG2(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)1902*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAIQMatrixBufferMPEG2(
1903*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
1904*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
1905*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
1906*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
1907*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
1908*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
1909*54e60f84SAndroid Build Coastguard Worker     void *data)
1910*54e60f84SAndroid Build Coastguard Worker {
1911*54e60f84SAndroid Build Coastguard Worker     VAIQMatrixBufferMPEG2 *p = (VAIQMatrixBufferMPEG2 *)data;
1912*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
1913*54e60f84SAndroid Build Coastguard Worker     int i;
1914*54e60f84SAndroid Build Coastguard Worker 
1915*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "VAIQMatrixBufferMPEG2\n");
1916*54e60f84SAndroid Build Coastguard Worker 
1917*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tload_intra_quantiser_matrix = %d\n", p->load_intra_quantiser_matrix);
1918*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tload_non_intra_quantiser_matrix = %d\n", p->load_non_intra_quantiser_matrix);
1919*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tload_chroma_intra_quantiser_matrix = %d\n", p->load_chroma_intra_quantiser_matrix);
1920*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tload_chroma_non_intra_quantiser_matrix = %d\n", p->load_chroma_non_intra_quantiser_matrix);
1921*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tintra_quantiser_matrix[] = {\n");
1922*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 64; i++) {
1923*54e60f84SAndroid Build Coastguard Worker         if (i % 8 == 0) {
1924*54e60f84SAndroid Build Coastguard Worker             if (i)
1925*54e60f84SAndroid Build Coastguard Worker                 va_TracePrint(trace_ctx, "\n");
1926*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t %3d", p->intra_quantiser_matrix[i]);
1927*54e60f84SAndroid Build Coastguard Worker         } else {
1928*54e60f84SAndroid Build Coastguard Worker             va_TracePrint(trace_ctx, " %3d", p->intra_quantiser_matrix[i]);
1929*54e60f84SAndroid Build Coastguard Worker         }
1930*54e60f84SAndroid Build Coastguard Worker     }
1931*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "}\n");
1932*54e60f84SAndroid Build Coastguard Worker 
1933*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnon_intra_quantiser_matrix[] = {\n");
1934*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 64; i++) {
1935*54e60f84SAndroid Build Coastguard Worker         if (i % 8 == 0) {
1936*54e60f84SAndroid Build Coastguard Worker             if (i)
1937*54e60f84SAndroid Build Coastguard Worker                 va_TracePrint(trace_ctx, "\n");
1938*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t %3d", p->non_intra_quantiser_matrix[i]);
1939*54e60f84SAndroid Build Coastguard Worker         } else {
1940*54e60f84SAndroid Build Coastguard Worker             va_TracePrint(trace_ctx, " %3d", p->non_intra_quantiser_matrix[i]);
1941*54e60f84SAndroid Build Coastguard Worker         }
1942*54e60f84SAndroid Build Coastguard Worker     }
1943*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "}\n");
1944*54e60f84SAndroid Build Coastguard Worker 
1945*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tchroma_intra_quantiser_matrix[] = {\n");
1946*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 64; i++) {
1947*54e60f84SAndroid Build Coastguard Worker         if (i % 8 == 0) {
1948*54e60f84SAndroid Build Coastguard Worker             if (i)
1949*54e60f84SAndroid Build Coastguard Worker                 va_TracePrint(trace_ctx, "\n");
1950*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t %3d", p->chroma_intra_quantiser_matrix[i]);
1951*54e60f84SAndroid Build Coastguard Worker         } else {
1952*54e60f84SAndroid Build Coastguard Worker             va_TracePrint(trace_ctx, " %3d", p->chroma_intra_quantiser_matrix[i]);
1953*54e60f84SAndroid Build Coastguard Worker         }
1954*54e60f84SAndroid Build Coastguard Worker     }
1955*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "}\n");
1956*54e60f84SAndroid Build Coastguard Worker 
1957*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tchroma_non_intra_quantiser_matrix[] = {\n");
1958*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 64; i++) {
1959*54e60f84SAndroid Build Coastguard Worker         if (i % 8 == 0) {
1960*54e60f84SAndroid Build Coastguard Worker             if (i)
1961*54e60f84SAndroid Build Coastguard Worker                 va_TracePrint(trace_ctx, "\n");
1962*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(
1963*54e60f84SAndroid Build Coastguard Worker                 trace_ctx, "\t %3d", p->chroma_non_intra_quantiser_matrix[i]);
1964*54e60f84SAndroid Build Coastguard Worker         } else {
1965*54e60f84SAndroid Build Coastguard Worker             va_TracePrint(
1966*54e60f84SAndroid Build Coastguard Worker                 trace_ctx, " %3d", p->chroma_non_intra_quantiser_matrix[i]);
1967*54e60f84SAndroid Build Coastguard Worker         }
1968*54e60f84SAndroid Build Coastguard Worker     }
1969*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "}\n");
1970*54e60f84SAndroid Build Coastguard Worker 
1971*54e60f84SAndroid Build Coastguard Worker     return;
1972*54e60f84SAndroid Build Coastguard Worker }
1973*54e60f84SAndroid Build Coastguard Worker 
1974*54e60f84SAndroid Build Coastguard Worker 
va_TraceVASliceParameterBufferMPEG2(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)1975*54e60f84SAndroid Build Coastguard Worker static void va_TraceVASliceParameterBufferMPEG2(
1976*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
1977*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
1978*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
1979*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
1980*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
1981*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
1982*54e60f84SAndroid Build Coastguard Worker     void *data)
1983*54e60f84SAndroid Build Coastguard Worker {
1984*54e60f84SAndroid Build Coastguard Worker     VASliceParameterBufferMPEG2 *p = (VASliceParameterBufferMPEG2 *)data;
1985*54e60f84SAndroid Build Coastguard Worker 
1986*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
1987*54e60f84SAndroid Build Coastguard Worker 
1988*54e60f84SAndroid Build Coastguard Worker     trace_ctx->trace_slice_no++;
1989*54e60f84SAndroid Build Coastguard Worker 
1990*54e60f84SAndroid Build Coastguard Worker     trace_ctx->trace_slice_size = p->slice_data_size;
1991*54e60f84SAndroid Build Coastguard Worker 
1992*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "VASliceParameterBufferMPEG2\n");
1993*54e60f84SAndroid Build Coastguard Worker 
1994*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_data_size = %d\n", p->slice_data_size);
1995*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_data_offset = %d\n", p->slice_data_offset);
1996*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_data_flag = %d\n", p->slice_data_flag);
1997*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmacroblock_offset = %d\n", p->macroblock_offset);
1998*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_horizontal_position = %d\n", p->slice_horizontal_position);
1999*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_vertical_position = %d\n", p->slice_vertical_position);
2000*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tquantiser_scale_code = %d\n", p->quantiser_scale_code);
2001*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tintra_slice_flag = %d\n", p->intra_slice_flag);
2002*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
2003*54e60f84SAndroid Build Coastguard Worker 
2004*54e60f84SAndroid Build Coastguard Worker     return;
2005*54e60f84SAndroid Build Coastguard Worker }
2006*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAPictureParameterBufferJPEG(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)2007*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAPictureParameterBufferJPEG(
2008*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
2009*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
2010*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
2011*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
2012*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
2013*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
2014*54e60f84SAndroid Build Coastguard Worker     void *data)
2015*54e60f84SAndroid Build Coastguard Worker {
2016*54e60f84SAndroid Build Coastguard Worker     int i;
2017*54e60f84SAndroid Build Coastguard Worker     VAPictureParameterBufferJPEGBaseline *p = (VAPictureParameterBufferJPEGBaseline *)data;
2018*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
2019*54e60f84SAndroid Build Coastguard Worker 
2020*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "*VAPictureParameterBufferJPEG\n");
2021*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpicture_width = %u\n", p->picture_width);
2022*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpicture_height = %u\n", p->picture_height);
2023*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcomponents = \n");
2024*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < p->num_components && i < 255; ++i) {
2025*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\t[%d] component_id = %u\n", i, p->components[i].component_id);
2026*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\t[%d] h_sampling_factor = %u\n", i, p->components[i].h_sampling_factor);
2027*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\t[%d] v_sampling_factor = %u\n", i, p->components[i].v_sampling_factor);
2028*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\t[%d] quantiser_table_selector = %u\n", i, p->components[i].quantiser_table_selector);
2029*54e60f84SAndroid Build Coastguard Worker     }
2030*54e60f84SAndroid Build Coastguard Worker }
2031*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAIQMatrixBufferJPEG(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)2032*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAIQMatrixBufferJPEG(
2033*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
2034*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
2035*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
2036*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
2037*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
2038*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
2039*54e60f84SAndroid Build Coastguard Worker     void *data)
2040*54e60f84SAndroid Build Coastguard Worker {
2041*54e60f84SAndroid Build Coastguard Worker     int i, j;
2042*54e60f84SAndroid Build Coastguard Worker     static char tmp[1024];
2043*54e60f84SAndroid Build Coastguard Worker     VAIQMatrixBufferJPEGBaseline *p = (VAIQMatrixBufferJPEGBaseline *)data;
2044*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
2045*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "*VAIQMatrixParameterBufferJPEG\n");
2046*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tload_quantiser_table =\n");
2047*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 4; ++i) {
2048*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\t[%d] = %u\n", i, p->load_quantiser_table[i]);
2049*54e60f84SAndroid Build Coastguard Worker     }
2050*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tquantiser_table =\n");
2051*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 4; ++i) {
2052*54e60f84SAndroid Build Coastguard Worker         memset(tmp, 0, sizeof tmp);
2053*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 64; ++j) {
2054*54e60f84SAndroid Build Coastguard Worker             sprintf(tmp + strlen(tmp), "%u ", p->quantiser_table[i][j]);
2055*54e60f84SAndroid Build Coastguard Worker         }
2056*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\t[%d] = %s\n", i, tmp);
2057*54e60f84SAndroid Build Coastguard Worker     }
2058*54e60f84SAndroid Build Coastguard Worker }
2059*54e60f84SAndroid Build Coastguard Worker 
va_TraceVASliceParameterBufferJPEG(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)2060*54e60f84SAndroid Build Coastguard Worker static void va_TraceVASliceParameterBufferJPEG(
2061*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
2062*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
2063*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
2064*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
2065*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
2066*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
2067*54e60f84SAndroid Build Coastguard Worker     void *data)
2068*54e60f84SAndroid Build Coastguard Worker {
2069*54e60f84SAndroid Build Coastguard Worker     int i;
2070*54e60f84SAndroid Build Coastguard Worker     VASliceParameterBufferJPEGBaseline *p = (VASliceParameterBufferJPEGBaseline *)data;
2071*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
2072*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "*VASliceParameterBufferJPEG\n");
2073*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_data_size = %u\n", p->slice_data_size);
2074*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_data_offset = %u\n", p->slice_data_offset);
2075*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_data_flag = %u\n", p->slice_data_flag);
2076*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_horizontal_position = %u\n", p->slice_horizontal_position);
2077*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_vertical_position = %u\n", p->slice_vertical_position);
2078*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcomponents = \n");
2079*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < p->num_components && i < 4; ++i) {
2080*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\t[%d] component_selector = %u\n", i, p->components[i].component_selector);
2081*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\t[%d] dc_table_selector = %u\n", i, p->components[i].dc_table_selector);
2082*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\t[%d] ac_table_selector = %u\n", i, p->components[i].ac_table_selector);
2083*54e60f84SAndroid Build Coastguard Worker     }
2084*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\trestart_interval = %u\n", p->restart_interval);
2085*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_mcus = %u\n", p->num_mcus);
2086*54e60f84SAndroid Build Coastguard Worker }
2087*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAHuffmanTableBufferJPEG(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)2088*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAHuffmanTableBufferJPEG(
2089*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
2090*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
2091*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
2092*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
2093*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
2094*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
2095*54e60f84SAndroid Build Coastguard Worker     void *data)
2096*54e60f84SAndroid Build Coastguard Worker {
2097*54e60f84SAndroid Build Coastguard Worker     int i, j;
2098*54e60f84SAndroid Build Coastguard Worker     static char tmp[1024];
2099*54e60f84SAndroid Build Coastguard Worker     VAHuffmanTableBufferJPEGBaseline *p = (VAHuffmanTableBufferJPEGBaseline *)data;
2100*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
2101*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "*VAHuffmanTableBufferJPEG\n");
2102*54e60f84SAndroid Build Coastguard Worker 
2103*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 2; ++i) {
2104*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tload_huffman_table[%d] =%u\n", i, p->load_huffman_table[i]);
2105*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\thuffman_table[%d] =\n", i);
2106*54e60f84SAndroid Build Coastguard Worker         memset(tmp, 0, sizeof tmp);
2107*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 16; ++j) {
2108*54e60f84SAndroid Build Coastguard Worker             sprintf(tmp + strlen(tmp), "%u ", p->huffman_table[i].num_dc_codes[j]);
2109*54e60f84SAndroid Build Coastguard Worker         }
2110*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\tnum_dc_codes =%s\n", tmp);
2111*54e60f84SAndroid Build Coastguard Worker         memset(tmp, 0, sizeof tmp);
2112*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 12; ++j) {
2113*54e60f84SAndroid Build Coastguard Worker             sprintf(tmp + strlen(tmp), "%u ", p->huffman_table[i].dc_values[j]);
2114*54e60f84SAndroid Build Coastguard Worker         }
2115*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\tdc_values =%s\n", tmp);
2116*54e60f84SAndroid Build Coastguard Worker         memset(tmp, 0, sizeof tmp);
2117*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 16; ++j) {
2118*54e60f84SAndroid Build Coastguard Worker             sprintf(tmp + strlen(tmp), "%u ", p->huffman_table[i].num_ac_codes[j]);
2119*54e60f84SAndroid Build Coastguard Worker         }
2120*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\tnum_ac_codes =%s\n", tmp);
2121*54e60f84SAndroid Build Coastguard Worker         memset(tmp, 0, sizeof tmp);
2122*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 162; ++j) {
2123*54e60f84SAndroid Build Coastguard Worker             sprintf(tmp + strlen(tmp), "%u ", p->huffman_table[i].ac_values[j]);
2124*54e60f84SAndroid Build Coastguard Worker         }
2125*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\tac_values =%s\n", tmp);
2126*54e60f84SAndroid Build Coastguard Worker         memset(tmp, 0, sizeof tmp);
2127*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 2; ++j) {
2128*54e60f84SAndroid Build Coastguard Worker             sprintf(tmp + strlen(tmp), "%u ", p->huffman_table[i].pad[j]);
2129*54e60f84SAndroid Build Coastguard Worker         }
2130*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\tpad =%s\n", tmp);
2131*54e60f84SAndroid Build Coastguard Worker     }
2132*54e60f84SAndroid Build Coastguard Worker }
2133*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAPictureParameterBufferMPEG4(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)2134*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAPictureParameterBufferMPEG4(
2135*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
2136*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
2137*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
2138*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
2139*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
2140*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
2141*54e60f84SAndroid Build Coastguard Worker     void *data)
2142*54e60f84SAndroid Build Coastguard Worker {
2143*54e60f84SAndroid Build Coastguard Worker     int i;
2144*54e60f84SAndroid Build Coastguard Worker     VAPictureParameterBufferMPEG4 *p = (VAPictureParameterBufferMPEG4 *)data;
2145*54e60f84SAndroid Build Coastguard Worker 
2146*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
2147*54e60f84SAndroid Build Coastguard Worker 
2148*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "*VAPictureParameterBufferMPEG4\n");
2149*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tvop_width = %d\n", p->vop_width);
2150*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tvop_height = %d\n", p->vop_height);
2151*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tforward_reference_picture = %d\n", p->forward_reference_picture);
2152*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbackward_reference_picture = %d\n", p->backward_reference_picture);
2153*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tvol_fields value = %d\n", p->vol_fields.value);
2154*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tshort_video_header= %d\n", p->vol_fields.bits.short_video_header);
2155*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tchroma_format= %d\n", p->vol_fields.bits.chroma_format);
2156*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tinterlaced= %d\n", p->vol_fields.bits.interlaced);
2157*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tobmc_disable= %d\n", p->vol_fields.bits.obmc_disable);
2158*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsprite_enable= %d\n", p->vol_fields.bits.sprite_enable);
2159*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsprite_warping_accuracy= %d\n", p->vol_fields.bits.sprite_warping_accuracy);
2160*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tquant_type= %d\n", p->vol_fields.bits.quant_type);
2161*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tquarter_sample= %d\n", p->vol_fields.bits.quarter_sample);
2162*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdata_partitioned= %d\n", p->vol_fields.bits.data_partitioned);
2163*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treversible_vlc= %d\n", p->vol_fields.bits.reversible_vlc);
2164*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tresync_marker_disable= %d\n", p->vol_fields.bits.resync_marker_disable);
2165*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tno_of_sprite_warping_points = %d\n", p->no_of_sprite_warping_points);
2166*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsprite_trajectory_du =");
2167*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 3; i++)
2168*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t%d", p->sprite_trajectory_du[i]);
2169*54e60f84SAndroid Build Coastguard Worker 
2170*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\n");
2171*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsprite_trajectory_dv =");
2172*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 3; i++)
2173*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t%d", p->sprite_trajectory_dv[i]);
2174*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\n");
2175*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tvop_fields value = %d\n", p->vop_fields.value);
2176*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tvop_coding_type= %d\n", p->vop_fields.bits.vop_coding_type);
2177*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbackward_reference_vop_coding_type= %d\n", p->vop_fields.bits.backward_reference_vop_coding_type);
2178*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tvop_rounding_type= %d\n", p->vop_fields.bits.vop_rounding_type);
2179*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tintra_dc_vlc_thr= %d\n", p->vop_fields.bits.intra_dc_vlc_thr);
2180*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttop_field_first= %d\n", p->vop_fields.bits.top_field_first);
2181*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\talternate_vertical_scan_flag= %d\n", p->vop_fields.bits.alternate_vertical_scan_flag);
2182*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tvop_fcode_forward = %d\n", p->vop_fcode_forward);
2183*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tvop_fcode_backward = %d\n", p->vop_fcode_backward);
2184*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_gobs_in_vop = %d\n", p->num_gobs_in_vop);
2185*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_macroblocks_in_gob = %d\n", p->num_macroblocks_in_gob);
2186*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tTRB = %d\n", p->TRB);
2187*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tTRD = %d\n", p->TRD);
2188*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
2189*54e60f84SAndroid Build Coastguard Worker 
2190*54e60f84SAndroid Build Coastguard Worker     return;
2191*54e60f84SAndroid Build Coastguard Worker }
2192*54e60f84SAndroid Build Coastguard Worker 
2193*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAIQMatrixBufferMPEG4(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)2194*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAIQMatrixBufferMPEG4(
2195*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
2196*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
2197*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
2198*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
2199*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
2200*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
2201*54e60f84SAndroid Build Coastguard Worker     void *data)
2202*54e60f84SAndroid Build Coastguard Worker {
2203*54e60f84SAndroid Build Coastguard Worker     int i;
2204*54e60f84SAndroid Build Coastguard Worker     VAIQMatrixBufferMPEG4 *p = (VAIQMatrixBufferMPEG4 *)data;
2205*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
2206*54e60f84SAndroid Build Coastguard Worker 
2207*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "VAIQMatrixBufferMPEG4\n");
2208*54e60f84SAndroid Build Coastguard Worker 
2209*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tload_intra_quant_mat = %d\n", p->load_intra_quant_mat);
2210*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tload_non_intra_quant_mat = %d\n", p->load_non_intra_quant_mat);
2211*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tintra_quant_mat =\n");
2212*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 64; i++)
2213*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\t%d\n", p->intra_quant_mat[i]);
2214*54e60f84SAndroid Build Coastguard Worker 
2215*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnon_intra_quant_mat =\n");
2216*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 64; i++)
2217*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\t%d\n", p->non_intra_quant_mat[i]);
2218*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
2219*54e60f84SAndroid Build Coastguard Worker 
2220*54e60f84SAndroid Build Coastguard Worker     return;
2221*54e60f84SAndroid Build Coastguard Worker }
2222*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAEncSequenceParameterBufferMPEG2(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)2223*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAEncSequenceParameterBufferMPEG2(
2224*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
2225*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
2226*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
2227*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
2228*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
2229*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
2230*54e60f84SAndroid Build Coastguard Worker     void *data)
2231*54e60f84SAndroid Build Coastguard Worker {
2232*54e60f84SAndroid Build Coastguard Worker     VAEncSequenceParameterBufferMPEG2 *p = (VAEncSequenceParameterBufferMPEG2 *)data;
2233*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
2234*54e60f84SAndroid Build Coastguard Worker 
2235*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAEncSequenceParameterBufferMPEG2\n");
2236*54e60f84SAndroid Build Coastguard Worker 
2237*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tintra_period = %d\n", p->intra_period);
2238*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbits_per_second = %d\n", p->bits_per_second);
2239*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_rate = %f\n", p->frame_rate);
2240*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tvbv_buffer_size = %d\n", p->vbv_buffer_size);
2241*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
2242*54e60f84SAndroid Build Coastguard Worker 
2243*54e60f84SAndroid Build Coastguard Worker     return;
2244*54e60f84SAndroid Build Coastguard Worker }
2245*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAEncSequenceParameterBufferMPEG4(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)2246*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAEncSequenceParameterBufferMPEG4(
2247*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
2248*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
2249*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
2250*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
2251*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
2252*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
2253*54e60f84SAndroid Build Coastguard Worker     void *data)
2254*54e60f84SAndroid Build Coastguard Worker {
2255*54e60f84SAndroid Build Coastguard Worker     VAEncSequenceParameterBufferMPEG4 *p = (VAEncSequenceParameterBufferMPEG4 *)data;
2256*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
2257*54e60f84SAndroid Build Coastguard Worker 
2258*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAEncSequenceParameterBufferMPEG4\n");
2259*54e60f84SAndroid Build Coastguard Worker 
2260*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tprofile_and_level_indication = %d\n", p->profile_and_level_indication);
2261*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tintra_period = %d\n", p->intra_period);
2262*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tvideo_object_layer_width = %d\n", p->video_object_layer_width);
2263*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tvideo_object_layer_height = %d\n", p->video_object_layer_height);
2264*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tvop_time_increment_resolution = %d\n", p->vop_time_increment_resolution);
2265*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tfixed_vop_rate = %d\n", p->fixed_vop_rate);
2266*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tfixed_vop_time_increment = %d\n", p->fixed_vop_time_increment);
2267*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbits_per_second = %d\n", p->bits_per_second);
2268*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_rate = %d\n", p->frame_rate);
2269*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tinitial_qp = %d\n", p->initial_qp);
2270*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmin_qp = %d\n", p->min_qp);
2271*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
2272*54e60f84SAndroid Build Coastguard Worker 
2273*54e60f84SAndroid Build Coastguard Worker     return;
2274*54e60f84SAndroid Build Coastguard Worker }
2275*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAEncPictureParameterBufferMPEG4(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)2276*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAEncPictureParameterBufferMPEG4(
2277*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
2278*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
2279*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
2280*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
2281*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
2282*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
2283*54e60f84SAndroid Build Coastguard Worker     void *data)
2284*54e60f84SAndroid Build Coastguard Worker {
2285*54e60f84SAndroid Build Coastguard Worker     VAEncPictureParameterBufferMPEG4 *p = (VAEncPictureParameterBufferMPEG4 *)data;
2286*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
2287*54e60f84SAndroid Build Coastguard Worker 
2288*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAEncPictureParameterBufferMPEG4\n");
2289*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treference_picture = 0x%08x\n", p->reference_picture);
2290*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treconstructed_picture = 0x%08x\n", p->reconstructed_picture);
2291*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcoded_buf = 0x%08x\n", p->coded_buf);
2292*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpicture_width = %d\n", p->picture_width);
2293*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpicture_height = %d\n", p->picture_height);
2294*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmodulo_time_base = %d\n", p->modulo_time_base);
2295*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tvop_time_increment = %d\n", p->vop_time_increment);
2296*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpicture_type = %d\n", p->picture_type);
2297*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
2298*54e60f84SAndroid Build Coastguard Worker 
2299*54e60f84SAndroid Build Coastguard Worker     return;
2300*54e60f84SAndroid Build Coastguard Worker }
2301*54e60f84SAndroid Build Coastguard Worker 
2302*54e60f84SAndroid Build Coastguard Worker 
va_TraceVASliceParameterBufferMPEG4(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)2303*54e60f84SAndroid Build Coastguard Worker static void va_TraceVASliceParameterBufferMPEG4(
2304*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
2305*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
2306*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
2307*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
2308*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
2309*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
2310*54e60f84SAndroid Build Coastguard Worker     void *data)
2311*54e60f84SAndroid Build Coastguard Worker {
2312*54e60f84SAndroid Build Coastguard Worker     VASliceParameterBufferMPEG4 *p = (VASliceParameterBufferMPEG4 *)data;
2313*54e60f84SAndroid Build Coastguard Worker 
2314*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
2315*54e60f84SAndroid Build Coastguard Worker 
2316*54e60f84SAndroid Build Coastguard Worker     trace_ctx->trace_slice_no++;
2317*54e60f84SAndroid Build Coastguard Worker 
2318*54e60f84SAndroid Build Coastguard Worker     trace_ctx->trace_slice_size = p->slice_data_size;
2319*54e60f84SAndroid Build Coastguard Worker 
2320*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "VASliceParameterBufferMPEG4\n");
2321*54e60f84SAndroid Build Coastguard Worker 
2322*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_data_size = %d\n", p->slice_data_size);
2323*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_data_offset = %d\n", p->slice_data_offset);
2324*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_data_flag = %d\n", p->slice_data_flag);
2325*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmacroblock_offset = %d\n", p->macroblock_offset);
2326*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmacroblock_number = %d\n", p->macroblock_number);
2327*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tquant_scale = %d\n", p->quant_scale);
2328*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
2329*54e60f84SAndroid Build Coastguard Worker 
2330*54e60f84SAndroid Build Coastguard Worker     return;
2331*54e60f84SAndroid Build Coastguard Worker }
2332*54e60f84SAndroid Build Coastguard Worker 
2333*54e60f84SAndroid Build Coastguard Worker 
va_TraceFlagIfNotZero(struct trace_context * trace_ctx,const char * name,unsigned int flag)2334*54e60f84SAndroid Build Coastguard Worker static inline void va_TraceFlagIfNotZero(
2335*54e60f84SAndroid Build Coastguard Worker     struct trace_context *trace_ctx,
2336*54e60f84SAndroid Build Coastguard Worker     const char *name,   /* in */
2337*54e60f84SAndroid Build Coastguard Worker     unsigned int flag   /* in */
2338*54e60f84SAndroid Build Coastguard Worker )
2339*54e60f84SAndroid Build Coastguard Worker {
2340*54e60f84SAndroid Build Coastguard Worker     if (flag != 0) {
2341*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "%s = %x\n", name, flag);
2342*54e60f84SAndroid Build Coastguard Worker     }
2343*54e60f84SAndroid Build Coastguard Worker }
2344*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAPictureParameterBufferVVC(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)2345*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAPictureParameterBufferVVC(
2346*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
2347*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
2348*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
2349*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
2350*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
2351*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
2352*54e60f84SAndroid Build Coastguard Worker     void* data)
2353*54e60f84SAndroid Build Coastguard Worker {
2354*54e60f84SAndroid Build Coastguard Worker     int i, j;
2355*54e60f84SAndroid Build Coastguard Worker     VAPictureParameterBufferVVC* p = (VAPictureParameterBufferVVC*)data;
2356*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
2357*54e60f84SAndroid Build Coastguard Worker 
2358*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAPictureParameterBufferVVC\n");
2359*54e60f84SAndroid Build Coastguard Worker 
2360*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tCurrPic.picture_id = 0x%08x\n", p->CurrPic.picture_id);
2361*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tCurrPic.frame_idx = %d\n", p->CurrPic.pic_order_cnt);
2362*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tCurrPic.flags = %d\n", p->CurrPic.flags);
2363*54e60f84SAndroid Build Coastguard Worker 
2364*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tReferenceFrames (picture_id-pic_order_cnt-flags):\n");
2365*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 15; i++) {
2366*54e60f84SAndroid Build Coastguard Worker         if ((p->ReferenceFrames[i].picture_id != VA_INVALID_SURFACE) &&
2367*54e60f84SAndroid Build Coastguard Worker             ((p->ReferenceFrames[i].flags & VA_PICTURE_VVC_INVALID) == 0)) {
2368*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t\t0x%08x-%08d-0x%08x\n",
2369*54e60f84SAndroid Build Coastguard Worker                         p->ReferenceFrames[i].picture_id,
2370*54e60f84SAndroid Build Coastguard Worker                         p->ReferenceFrames[i].pic_order_cnt,
2371*54e60f84SAndroid Build Coastguard Worker                         p->ReferenceFrames[i].flags);
2372*54e60f84SAndroid Build Coastguard Worker         } else
2373*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t\tinv-inv-inv-inv-inv\n");
2374*54e60f84SAndroid Build Coastguard Worker     }
2375*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\n");
2376*54e60f84SAndroid Build Coastguard Worker 
2377*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_pic_width_in_luma_samples = %d\n", p->pps_pic_width_in_luma_samples);
2378*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_pic_height_in_luma_samples = %d\n", p->pps_pic_height_in_luma_samples);
2379*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_num_subpics_minus1 = %d\n", p->sps_num_subpics_minus1);
2380*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_chroma_format_idc = %d\n", p->sps_chroma_format_idc);
2381*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_bitdepth_minus8 = %d\n", p->sps_bitdepth_minus8);
2382*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_log2_ctu_size_minus5 = %d\n", p->sps_log2_ctu_size_minus5);
2383*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_log2_min_luma_coding_block_size_minus2 = %d\n", p->sps_log2_min_luma_coding_block_size_minus2);
2384*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_log2_transform_skip_max_size_minus2 = %d\n", p->sps_log2_transform_skip_max_size_minus2);
2385*54e60f84SAndroid Build Coastguard Worker 
2386*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tChromaQpTable[3][111] =\n");
2387*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
2388*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 3; i++) {
2389*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 111; j++) {
2390*54e60f84SAndroid Build Coastguard Worker             va_TracePrint(trace_ctx, "\t%d", p->ChromaQpTable[i][j]);
2391*54e60f84SAndroid Build Coastguard Worker             if ((j + 1) % 8 == 0)
2392*54e60f84SAndroid Build Coastguard Worker                 TRACE_NEWLINE();
2393*54e60f84SAndroid Build Coastguard Worker         }
2394*54e60f84SAndroid Build Coastguard Worker         TRACE_NEWLINE();
2395*54e60f84SAndroid Build Coastguard Worker     }
2396*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2397*54e60f84SAndroid Build Coastguard Worker 
2398*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_six_minus_max_num_merge_cand = %d\n", p->sps_six_minus_max_num_merge_cand);
2399*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_five_minus_max_num_subblock_merge_cand = %d\n", p->sps_five_minus_max_num_subblock_merge_cand);
2400*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_max_num_merge_cand_minus_max_num_gpm_cand = %d\n", p->sps_max_num_merge_cand_minus_max_num_gpm_cand);
2401*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_log2_parallel_merge_level_minus2 = %d\n", p->sps_log2_parallel_merge_level_minus2);
2402*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_min_qp_prime_ts = %d\n", p->sps_min_qp_prime_ts);
2403*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_six_minus_max_num_ibc_merge_cand = %d\n", p->sps_six_minus_max_num_ibc_merge_cand);
2404*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_num_ladf_intervals_minus2 = %d\n", p->sps_num_ladf_intervals_minus2);
2405*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_ladf_lowest_interval_qp_offset = %d\n", p->sps_ladf_lowest_interval_qp_offset);
2406*54e60f84SAndroid Build Coastguard Worker 
2407*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_ladf_qp_offset[4]=\n");
2408*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
2409*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 4; i++) {
2410*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\t%d", p->sps_ladf_qp_offset[i]);
2411*54e60f84SAndroid Build Coastguard Worker     }
2412*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2413*54e60f84SAndroid Build Coastguard Worker 
2414*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_ladf_delta_threshold_minus1[4]=\n");
2415*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
2416*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 4; i++) {
2417*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\t%d", p->sps_ladf_delta_threshold_minus1[i]);
2418*54e60f84SAndroid Build Coastguard Worker     }
2419*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2420*54e60f84SAndroid Build Coastguard Worker 
2421*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treserved32b01[2]=\n");
2422*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
2423*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 2; i++) {
2424*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\t%d", p->reserved32b01[i]);
2425*54e60f84SAndroid Build Coastguard Worker     }
2426*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2427*54e60f84SAndroid Build Coastguard Worker 
2428*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_flags = %llu\n", p->sps_flags.value);
2429*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_subpic_info_present_flag = %llu\n", p->sps_flags.bits.sps_subpic_info_present_flag);
2430*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_independent_subpics_flag = %llu\n", p->sps_flags.bits.sps_independent_subpics_flag);
2431*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_subpic_same_size_flag = %llu\n", p->sps_flags.bits.sps_subpic_same_size_flag);
2432*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_entropy_coding_sync_enabled_flag = %llu\n", p->sps_flags.bits.sps_entropy_coding_sync_enabled_flag);
2433*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_qtbtt_dual_tree_intra_flag = %llu\n", p->sps_flags.bits.sps_qtbtt_dual_tree_intra_flag);
2434*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_max_luma_transform_size_64_flag = %llu\n", p->sps_flags.bits.sps_max_luma_transform_size_64_flag);
2435*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_transform_skip_enabled_flag = %llu\n", p->sps_flags.bits.sps_transform_skip_enabled_flag);
2436*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_bdpcm_enabled_flag = %llu\n", p->sps_flags.bits.sps_bdpcm_enabled_flag);
2437*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_mts_enabled_flag = %llu\n", p->sps_flags.bits.sps_mts_enabled_flag);
2438*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_explicit_mts_intra_enabled_flag = %llu\n", p->sps_flags.bits.sps_explicit_mts_intra_enabled_flag);
2439*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_explicit_mts_inter_enabled_flag = %llu\n", p->sps_flags.bits.sps_explicit_mts_inter_enabled_flag);
2440*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_lfnst_enabled_flag = %llu\n", p->sps_flags.bits.sps_lfnst_enabled_flag);
2441*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_joint_cbcr_enabled_flag = %llu\n", p->sps_flags.bits.sps_joint_cbcr_enabled_flag);
2442*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_same_qp_table_for_chroma_flag = %llu\n", p->sps_flags.bits.sps_same_qp_table_for_chroma_flag);
2443*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_sao_enabled_flag = %llu\n", p->sps_flags.bits.sps_sao_enabled_flag);
2444*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_alf_enabled_flag = %llu\n", p->sps_flags.bits.sps_alf_enabled_flag);
2445*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_ccalf_enabled_flag = %llu\n", p->sps_flags.bits.sps_ccalf_enabled_flag);
2446*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_lmcs_enabled_flag = %llu\n", p->sps_flags.bits.sps_lmcs_enabled_flag);
2447*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_sbtmvp_enabled_flag = %llu\n", p->sps_flags.bits.sps_sbtmvp_enabled_flag);
2448*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_amvr_enabled_flag = %llu\n", p->sps_flags.bits.sps_amvr_enabled_flag);
2449*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_smvd_enabled_flag = %llu\n", p->sps_flags.bits.sps_smvd_enabled_flag);
2450*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_mmvd_enabled_flag = %llu\n", p->sps_flags.bits.sps_mmvd_enabled_flag);
2451*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_sbt_enabled_flag = %llu\n", p->sps_flags.bits.sps_sbt_enabled_flag);
2452*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_affine_enabled_flag = %llu\n", p->sps_flags.bits.sps_affine_enabled_flag);
2453*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_6param_affine_enabled_flag = %llu\n", p->sps_flags.bits.sps_6param_affine_enabled_flag);
2454*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_affine_amvr_enabled_flag = %llu\n", p->sps_flags.bits.sps_affine_amvr_enabled_flag);
2455*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_affine_prof_enabled_flag = %llu\n", p->sps_flags.bits.sps_affine_prof_enabled_flag);
2456*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_bcw_enabled_flag = %llu\n", p->sps_flags.bits.sps_bcw_enabled_flag);
2457*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_ciip_enabled_flag = %llu\n", p->sps_flags.bits.sps_ciip_enabled_flag);
2458*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_gpm_enabled_flag = %llu\n", p->sps_flags.bits.sps_gpm_enabled_flag);
2459*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_isp_enabled_flag = %llu\n", p->sps_flags.bits.sps_isp_enabled_flag);
2460*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_mrl_enabled_flag = %llu\n", p->sps_flags.bits.sps_mrl_enabled_flag);
2461*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_mip_enabled_flag = %llu\n", p->sps_flags.bits.sps_mip_enabled_flag);
2462*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_cclm_enabled_flag = %llu\n", p->sps_flags.bits.sps_cclm_enabled_flag);
2463*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_chroma_horizontal_collocated_flag = %llu\n", p->sps_flags.bits.sps_chroma_horizontal_collocated_flag);
2464*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_chroma_vertical_collocated_flag = %llu\n", p->sps_flags.bits.sps_chroma_vertical_collocated_flag);
2465*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_palette_enabled_flag = %llu\n", p->sps_flags.bits.sps_palette_enabled_flag);
2466*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_act_enabled_flag = %llu\n", p->sps_flags.bits.sps_act_enabled_flag);
2467*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_ibc_enabled_flag = %llu\n", p->sps_flags.bits.sps_ibc_enabled_flag);
2468*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_ladf_enabled_flag = %llu\n", p->sps_flags.bits.sps_ladf_enabled_flag);
2469*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_explicit_scaling_list_enabled_flag = %llu\n", p->sps_flags.bits.sps_explicit_scaling_list_enabled_flag);
2470*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_scaling_matrix_for_lfnst_disabled_flag = %llu\n", p->sps_flags.bits.sps_scaling_matrix_for_lfnst_disabled_flag);
2471*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_scaling_matrix_for_alternative_colour_space_disabled_flag = %llu\n", p->sps_flags.bits.sps_scaling_matrix_for_alternative_colour_space_disabled_flag);
2472*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_scaling_matrix_designated_colour_space_flag = %llu\n", p->sps_flags.bits.sps_scaling_matrix_designated_colour_space_flag);
2473*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_virtual_boundaries_enabled_flag = %llu\n", p->sps_flags.bits.sps_virtual_boundaries_enabled_flag);
2474*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_virtual_boundaries_present_flag = %llu\n", p->sps_flags.bits.sps_virtual_boundaries_present_flag);
2475*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treserved = %llu\n", p->sps_flags.bits.reserved);
2476*54e60f84SAndroid Build Coastguard Worker 
2477*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tNumVerVirtualBoundaries = %d\n", p->NumVerVirtualBoundaries);
2478*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tNumHorVirtualBoundaries = %d\n", p->NumHorVirtualBoundaries);
2479*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tVirtualBoundaryPosX[3]=\n");
2480*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
2481*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 3; i++) {
2482*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\t%d", p->VirtualBoundaryPosX[i]);
2483*54e60f84SAndroid Build Coastguard Worker     }
2484*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2485*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tVirtualBoundaryPosY[3]=\n");
2486*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
2487*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 3; i++) {
2488*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\t%d", p->VirtualBoundaryPosY[i]);
2489*54e60f84SAndroid Build Coastguard Worker     }
2490*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2491*54e60f84SAndroid Build Coastguard Worker 
2492*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_scaling_win_left_offset = %d\n", p->pps_scaling_win_left_offset);
2493*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_scaling_win_right_offset = %d\n", p->pps_scaling_win_right_offset);
2494*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_scaling_win_top_offset = %d\n", p->pps_scaling_win_top_offset);
2495*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_scaling_win_bottom_offset = %d\n", p->pps_scaling_win_bottom_offset);
2496*54e60f84SAndroid Build Coastguard Worker 
2497*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_num_exp_tile_columns_minus1 = %d\n", p->pps_num_exp_tile_columns_minus1);
2498*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_num_exp_tile_rows_minus1 = %d\n", p->pps_num_exp_tile_rows_minus1);
2499*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_num_slices_in_pic_minus1 = %d\n", p->pps_num_slices_in_pic_minus1);
2500*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_pic_width_minus_wraparound_offset = %d\n", p->pps_pic_width_minus_wraparound_offset);
2501*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_cb_qp_offset = %d\n", p->pps_cb_qp_offset);
2502*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_cr_qp_offset = %d\n", p->pps_cr_qp_offset);
2503*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_joint_cbcr_qp_offset_value = %d\n", p->pps_joint_cbcr_qp_offset_value);
2504*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_chroma_qp_offset_list_len_minus1 = %d\n", p->pps_chroma_qp_offset_list_len_minus1);
2505*54e60f84SAndroid Build Coastguard Worker 
2506*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_cb_qp_offset_list[6]=\n");
2507*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
2508*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 6; i++) {
2509*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\t%d", p->pps_cb_qp_offset_list[i]);
2510*54e60f84SAndroid Build Coastguard Worker     }
2511*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2512*54e60f84SAndroid Build Coastguard Worker 
2513*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_cr_qp_offset_list[6]=\n");
2514*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
2515*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 6; i++) {
2516*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\t%d", p->pps_cr_qp_offset_list[i]);
2517*54e60f84SAndroid Build Coastguard Worker     }
2518*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2519*54e60f84SAndroid Build Coastguard Worker 
2520*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_joint_cbcr_qp_offset_list[6]=\n");
2521*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
2522*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 6; i++) {
2523*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\t%d", p->pps_joint_cbcr_qp_offset_list[i]);
2524*54e60f84SAndroid Build Coastguard Worker     }
2525*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2526*54e60f84SAndroid Build Coastguard Worker 
2527*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treserved16b01 = %d\n", p->reserved16b01);
2528*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treserved32b02[2]=\n");
2529*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
2530*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 2; i++) {
2531*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\t%d", p->reserved32b02[i]);
2532*54e60f84SAndroid Build Coastguard Worker     }
2533*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2534*54e60f84SAndroid Build Coastguard Worker 
2535*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_flags = %d\n", p->pps_flags.value);
2536*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_loop_filter_across_tiles_enabled_flag = %d\n", p->pps_flags.bits.pps_loop_filter_across_tiles_enabled_flag);
2537*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_rect_slice_flag = %d\n", p->pps_flags.bits.pps_rect_slice_flag);
2538*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_single_slice_per_subpic_flag = %d\n", p->pps_flags.bits.pps_single_slice_per_subpic_flag);
2539*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_loop_filter_across_slices_enabled_flag = %d\n", p->pps_flags.bits.pps_loop_filter_across_slices_enabled_flag);
2540*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_weighted_pred_flag = %d\n", p->pps_flags.bits.pps_weighted_pred_flag);
2541*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_weighted_bipred_flag = %d\n", p->pps_flags.bits.pps_weighted_bipred_flag);
2542*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_ref_wraparound_enabled_flag = %d\n", p->pps_flags.bits.pps_ref_wraparound_enabled_flag);
2543*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_cu_qp_delta_enabled_flag = %d\n", p->pps_flags.bits.pps_cu_qp_delta_enabled_flag);
2544*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_cu_chroma_qp_offset_list_enabled_flag = %d\n", p->pps_flags.bits.pps_cu_chroma_qp_offset_list_enabled_flag);
2545*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_deblocking_filter_override_enabled_flag = %d\n", p->pps_flags.bits.pps_deblocking_filter_override_enabled_flag);
2546*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_deblocking_filter_disabled_flag = %d\n", p->pps_flags.bits.pps_deblocking_filter_disabled_flag);
2547*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_dbf_info_in_ph_flag = %d\n", p->pps_flags.bits.pps_dbf_info_in_ph_flag);
2548*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_sao_info_in_ph_flag = %d\n", p->pps_flags.bits.pps_sao_info_in_ph_flag);
2549*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_alf_info_in_ph_flag = %d\n", p->pps_flags.bits.pps_alf_info_in_ph_flag);
2550*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treserved = %d\n", p->pps_flags.bits.reserved);
2551*54e60f84SAndroid Build Coastguard Worker 
2552*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_lmcs_aps_id = %d\n", p->ph_lmcs_aps_id);
2553*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_scaling_list_aps_id = %d\n", p->ph_scaling_list_aps_id);
2554*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_log2_diff_min_qt_min_cb_intra_slice_luma = %d\n", p->ph_log2_diff_min_qt_min_cb_intra_slice_luma);
2555*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_max_mtt_hierarchy_depth_intra_slice_luma = %d\n", p->ph_max_mtt_hierarchy_depth_intra_slice_luma);
2556*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_log2_diff_max_bt_min_qt_intra_slice_luma = %d\n", p->ph_log2_diff_max_bt_min_qt_intra_slice_luma);
2557*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_log2_diff_max_tt_min_qt_intra_slice_luma = %d\n", p->ph_log2_diff_max_tt_min_qt_intra_slice_luma);
2558*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_log2_diff_min_qt_min_cb_intra_slice_chroma = %d\n", p->ph_log2_diff_min_qt_min_cb_intra_slice_chroma);
2559*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_max_mtt_hierarchy_depth_intra_slice_chroma = %d\n", p->ph_max_mtt_hierarchy_depth_intra_slice_chroma);
2560*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_log2_diff_max_bt_min_qt_intra_slice_chroma = %d\n", p->ph_log2_diff_max_bt_min_qt_intra_slice_chroma);
2561*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_log2_diff_max_tt_min_qt_intra_slice_chroma = %d\n", p->ph_log2_diff_max_tt_min_qt_intra_slice_chroma);
2562*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_cu_qp_delta_subdiv_intra_slice = %d\n", p->ph_cu_qp_delta_subdiv_intra_slice);
2563*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_cu_chroma_qp_offset_subdiv_intra_slice = %d\n", p->ph_cu_chroma_qp_offset_subdiv_intra_slice);
2564*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_log2_diff_min_qt_min_cb_inter_slice = %d\n", p->ph_log2_diff_min_qt_min_cb_inter_slice);
2565*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_max_mtt_hierarchy_depth_inter_slice = %d\n", p->ph_max_mtt_hierarchy_depth_inter_slice);
2566*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_log2_diff_max_bt_min_qt_inter_slice = %d\n", p->ph_log2_diff_max_bt_min_qt_inter_slice);
2567*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_log2_diff_max_tt_min_qt_inter_slice = %d\n", p->ph_log2_diff_max_tt_min_qt_inter_slice);
2568*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_cu_qp_delta_subdiv_inter_slice = %d\n", p->ph_cu_qp_delta_subdiv_inter_slice);
2569*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_cu_chroma_qp_offset_subdiv_inter_slice = %d\n", p->ph_cu_chroma_qp_offset_subdiv_inter_slice);
2570*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treserved16b02 = %d\n", p->reserved16b02);
2571*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treserved32b03[2]=\n");
2572*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
2573*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 2; i++) {
2574*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\t%d", p->reserved32b03[i]);
2575*54e60f84SAndroid Build Coastguard Worker     }
2576*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2577*54e60f84SAndroid Build Coastguard Worker 
2578*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_flags = %d\n", p->ph_flags.value);
2579*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_non_ref_pic_flag = %d\n", p->ph_flags.bits.ph_non_ref_pic_flag);
2580*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_alf_enabled_flag = %d\n", p->ph_flags.bits.ph_alf_enabled_flag);
2581*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_alf_cb_enabled_flag = %d\n", p->ph_flags.bits.ph_alf_cb_enabled_flag);
2582*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_alf_cr_enabled_flag = %d\n", p->ph_flags.bits.ph_alf_cr_enabled_flag);
2583*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_alf_cc_cb_enabled_flag = %d\n", p->ph_flags.bits.ph_alf_cc_cb_enabled_flag);
2584*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_alf_cc_cr_enabled_flag = %d\n", p->ph_flags.bits.ph_alf_cc_cr_enabled_flag);
2585*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_lmcs_enabled_flag = %d\n", p->ph_flags.bits.ph_lmcs_enabled_flag);
2586*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_chroma_residual_scale_flag = %d\n", p->ph_flags.bits.ph_chroma_residual_scale_flag);
2587*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_explicit_scaling_list_enabled_flag = %d\n", p->ph_flags.bits.ph_explicit_scaling_list_enabled_flag);
2588*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_virtual_boundaries_present_flag = %d\n", p->ph_flags.bits.ph_virtual_boundaries_present_flag);
2589*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_temporal_mvp_enabled_flag = %d\n", p->ph_flags.bits.ph_temporal_mvp_enabled_flag);
2590*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_mmvd_fullpel_only_flag = %d\n", p->ph_flags.bits.ph_mmvd_fullpel_only_flag);
2591*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_mvd_l1_zero_flag = %d\n", p->ph_flags.bits.ph_mvd_l1_zero_flag);
2592*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_bdof_disabled_flag = %d\n", p->ph_flags.bits.ph_bdof_disabled_flag);
2593*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_dmvr_disabled_flag = %d\n", p->ph_flags.bits.ph_dmvr_disabled_flag);
2594*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_prof_disabled_flag = %d\n", p->ph_flags.bits.ph_prof_disabled_flag);
2595*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_joint_cbcr_sign_flag = %d\n", p->ph_flags.bits.ph_joint_cbcr_sign_flag);
2596*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_sao_luma_enabled_flag = %d\n", p->ph_flags.bits.ph_sao_luma_enabled_flag);
2597*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_sao_chroma_enabled_flag = %d\n", p->ph_flags.bits.ph_sao_chroma_enabled_flag);
2598*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tph_deblocking_filter_disabled_flag = %d\n", p->ph_flags.bits.ph_deblocking_filter_disabled_flag);
2599*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treserved = %d\n", p->ph_flags.bits.reserved);
2600*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treserved32b04 = %d\n", p->reserved32b04);
2601*54e60f84SAndroid Build Coastguard Worker 
2602*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tPicMiscFlags = %d\n", p->PicMiscFlags.value);
2603*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tIntraPicFlag = %d\n", p->PicMiscFlags.fields.IntraPicFlag);
2604*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treserved = %d\n", p->PicMiscFlags.fields.reserved);
2605*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treserved32b[17]=\n");
2606*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
2607*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 17; i++) {
2608*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\t%d", p->reserved32b[i]);
2609*54e60f84SAndroid Build Coastguard Worker     }
2610*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2611*54e60f84SAndroid Build Coastguard Worker     return;
2612*54e60f84SAndroid Build Coastguard Worker }
2613*54e60f84SAndroid Build Coastguard Worker 
va_TraceVASliceParameterBufferVVC(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)2614*54e60f84SAndroid Build Coastguard Worker static void va_TraceVASliceParameterBufferVVC(
2615*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
2616*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
2617*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
2618*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
2619*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
2620*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
2621*54e60f84SAndroid Build Coastguard Worker     void* data)
2622*54e60f84SAndroid Build Coastguard Worker {
2623*54e60f84SAndroid Build Coastguard Worker     int i, j;
2624*54e60f84SAndroid Build Coastguard Worker     VASliceParameterBufferVVC* p = (VASliceParameterBufferVVC*)data;
2625*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
2626*54e60f84SAndroid Build Coastguard Worker 
2627*54e60f84SAndroid Build Coastguard Worker     trace_ctx->trace_slice_no++;
2628*54e60f84SAndroid Build Coastguard Worker     trace_ctx->trace_slice_size = p->slice_data_size;
2629*54e60f84SAndroid Build Coastguard Worker 
2630*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VASliceParameterBufferVVC\n");
2631*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_data_size = %d\n", p->slice_data_size);
2632*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_data_offset = %d\n", p->slice_data_offset);
2633*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_data_flag = %d\n", p->slice_data_flag);
2634*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_data_byte_offset = %d\n", p->slice_data_byte_offset);
2635*54e60f84SAndroid Build Coastguard Worker 
2636*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tRefPicList[2][15]=\n");
2637*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
2638*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 2; i++) {
2639*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 15; j++) {
2640*54e60f84SAndroid Build Coastguard Worker             va_TracePrint(trace_ctx, "\t%d", p->RefPicList[i][j]);
2641*54e60f84SAndroid Build Coastguard Worker             if ((j + 1) % 8 == 0)
2642*54e60f84SAndroid Build Coastguard Worker                 TRACE_NEWLINE();
2643*54e60f84SAndroid Build Coastguard Worker         }
2644*54e60f84SAndroid Build Coastguard Worker         TRACE_NEWLINE();
2645*54e60f84SAndroid Build Coastguard Worker     }
2646*54e60f84SAndroid Build Coastguard Worker 
2647*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_subpic_id = %d\n", p->sh_subpic_id);
2648*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_slice_address = %d\n", p->sh_slice_address);
2649*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_num_tiles_in_slice_minus1 = %d\n", p->sh_num_tiles_in_slice_minus1);
2650*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_slice_type = %d\n", p->sh_slice_type);
2651*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_num_alf_aps_ids_luma = %d\n", p->sh_num_alf_aps_ids_luma);
2652*54e60f84SAndroid Build Coastguard Worker 
2653*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_alf_aps_id_luma[7]=\n");
2654*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
2655*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 7; i++) {
2656*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\t%d", p->sh_alf_aps_id_luma[i]);
2657*54e60f84SAndroid Build Coastguard Worker     }
2658*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2659*54e60f84SAndroid Build Coastguard Worker 
2660*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_alf_aps_id_chroma = %d\n", p->sh_alf_aps_id_chroma);
2661*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_alf_cc_cb_aps_id = %d\n", p->sh_alf_cc_cb_aps_id);
2662*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_alf_cc_cr_aps_id = %d\n", p->sh_alf_cc_cr_aps_id);
2663*54e60f84SAndroid Build Coastguard Worker 
2664*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tNumRefIdxActive[2]=\n");
2665*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
2666*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 2; i++) {
2667*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\t%d", p->NumRefIdxActive[i]);
2668*54e60f84SAndroid Build Coastguard Worker     }
2669*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2670*54e60f84SAndroid Build Coastguard Worker 
2671*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_collocated_ref_idx = %d\n", p->sh_collocated_ref_idx);
2672*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tSliceQpY = %d\n", p->SliceQpY);
2673*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_cb_qp_offset = %d\n", p->sh_cb_qp_offset);
2674*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_cr_qp_offset = %d\n", p->sh_cr_qp_offset);
2675*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_joint_cbcr_qp_offset = %d\n", p->sh_joint_cbcr_qp_offset);
2676*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_luma_beta_offset_div2 = %d\n", p->sh_luma_beta_offset_div2);
2677*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_luma_tc_offset_div2 = %d\n", p->sh_luma_tc_offset_div2);
2678*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_cb_beta_offset_div2 = %d\n", p->sh_cb_beta_offset_div2);
2679*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_cb_tc_offset_div2 = %d\n", p->sh_cb_tc_offset_div2);
2680*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_cr_beta_offset_div2 = %d\n", p->sh_cr_beta_offset_div2);
2681*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_cr_tc_offset_div2 = %d\n", p->sh_cr_tc_offset_div2);
2682*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treserved8b[3]=\n");
2683*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
2684*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 3; i++) {
2685*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\t%d", p->reserved8b[i]);
2686*54e60f84SAndroid Build Coastguard Worker     }
2687*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2688*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treserved32b = %d\n", p->reserved32b);
2689*54e60f84SAndroid Build Coastguard Worker 
2690*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tWPInfo=\n");
2691*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tluma_log2_weight_denom = %d\n", p->WPInfo.luma_log2_weight_denom);
2692*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdelta_chroma_log2_weight_denom = %d\n", p->WPInfo.delta_chroma_log2_weight_denom);
2693*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_l0_weights = %d\n", p->WPInfo.num_l0_weights);
2694*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tluma_weight_l0_flag[15]=\n");
2695*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 15; i++) {
2696*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t%d", p->WPInfo.luma_weight_l0_flag[i]);
2697*54e60f84SAndroid Build Coastguard Worker         if ((i + 1) % 8 == 0)
2698*54e60f84SAndroid Build Coastguard Worker             TRACE_NEWLINE();
2699*54e60f84SAndroid Build Coastguard Worker     }
2700*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2701*54e60f84SAndroid Build Coastguard Worker 
2702*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tchroma_weight_l0_flag[15]=\n");
2703*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 15; i++) {
2704*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t%d", p->WPInfo.chroma_weight_l0_flag[i]);
2705*54e60f84SAndroid Build Coastguard Worker         if ((i + 1) % 8 == 0)
2706*54e60f84SAndroid Build Coastguard Worker             TRACE_NEWLINE();
2707*54e60f84SAndroid Build Coastguard Worker     }
2708*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2709*54e60f84SAndroid Build Coastguard Worker 
2710*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdelta_luma_weight_l0[15]=\n");
2711*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 15; i++) {
2712*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t%d", p->WPInfo.delta_luma_weight_l0[i]);
2713*54e60f84SAndroid Build Coastguard Worker         if ((i + 1) % 8 == 0)
2714*54e60f84SAndroid Build Coastguard Worker             TRACE_NEWLINE();
2715*54e60f84SAndroid Build Coastguard Worker     }
2716*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2717*54e60f84SAndroid Build Coastguard Worker 
2718*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tluma_offset_l0[15]=\n");
2719*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 15; i++) {
2720*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t%d", p->WPInfo.luma_offset_l0[i]);
2721*54e60f84SAndroid Build Coastguard Worker         if ((i + 1) % 8 == 0)
2722*54e60f84SAndroid Build Coastguard Worker             TRACE_NEWLINE();
2723*54e60f84SAndroid Build Coastguard Worker     }
2724*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2725*54e60f84SAndroid Build Coastguard Worker 
2726*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdelta_chroma_weight_l0[15][2] = \n");
2727*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
2728*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 15; i++) {
2729*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 2; j++) {
2730*54e60f84SAndroid Build Coastguard Worker             va_TracePrint(trace_ctx, "\t%d", p->WPInfo.delta_chroma_weight_l0[i][j]);
2731*54e60f84SAndroid Build Coastguard Worker         }
2732*54e60f84SAndroid Build Coastguard Worker         TRACE_NEWLINE();
2733*54e60f84SAndroid Build Coastguard Worker     }
2734*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2735*54e60f84SAndroid Build Coastguard Worker 
2736*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdelta_chroma_offset_l0[15][2] = \n");
2737*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
2738*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 15; i++) {
2739*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 2; j++) {
2740*54e60f84SAndroid Build Coastguard Worker             va_TracePrint(trace_ctx, "\t%d", p->WPInfo.delta_chroma_offset_l0[i][j]);
2741*54e60f84SAndroid Build Coastguard Worker         }
2742*54e60f84SAndroid Build Coastguard Worker         TRACE_NEWLINE();
2743*54e60f84SAndroid Build Coastguard Worker     }
2744*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2745*54e60f84SAndroid Build Coastguard Worker 
2746*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_l1_weights = %d\n", p->WPInfo.num_l1_weights);
2747*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tluma_weight_l1_flag[15]=\n");
2748*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 15; i++) {
2749*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t%d", p->WPInfo.luma_weight_l1_flag[i]);
2750*54e60f84SAndroid Build Coastguard Worker         if ((i + 1) % 8 == 0)
2751*54e60f84SAndroid Build Coastguard Worker             TRACE_NEWLINE();
2752*54e60f84SAndroid Build Coastguard Worker     }
2753*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2754*54e60f84SAndroid Build Coastguard Worker 
2755*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tchroma_weight_l1_flag[15]=\n");
2756*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 15; i++) {
2757*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t%d", p->WPInfo.chroma_weight_l1_flag[i]);
2758*54e60f84SAndroid Build Coastguard Worker         if ((i + 1) % 8 == 0)
2759*54e60f84SAndroid Build Coastguard Worker             TRACE_NEWLINE();
2760*54e60f84SAndroid Build Coastguard Worker     }
2761*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2762*54e60f84SAndroid Build Coastguard Worker 
2763*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdelta_luma_weight_l1[15]=\n");
2764*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 15; i++) {
2765*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t%d", p->WPInfo.delta_luma_weight_l1[i]);
2766*54e60f84SAndroid Build Coastguard Worker         if ((i + 1) % 8 == 0)
2767*54e60f84SAndroid Build Coastguard Worker             TRACE_NEWLINE();
2768*54e60f84SAndroid Build Coastguard Worker     }
2769*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2770*54e60f84SAndroid Build Coastguard Worker 
2771*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tluma_offset_l1[15]=\n");
2772*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 15; i++) {
2773*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t%d", p->WPInfo.luma_offset_l1[i]);
2774*54e60f84SAndroid Build Coastguard Worker         if ((i + 1) % 8 == 0)
2775*54e60f84SAndroid Build Coastguard Worker             TRACE_NEWLINE();
2776*54e60f84SAndroid Build Coastguard Worker     }
2777*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2778*54e60f84SAndroid Build Coastguard Worker 
2779*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdelta_chroma_weight_l1[15][2] = \n");
2780*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
2781*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 15; i++) {
2782*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 2; j++) {
2783*54e60f84SAndroid Build Coastguard Worker             va_TracePrint(trace_ctx, "\t%d", p->WPInfo.delta_chroma_weight_l1[i][j]);
2784*54e60f84SAndroid Build Coastguard Worker         }
2785*54e60f84SAndroid Build Coastguard Worker         TRACE_NEWLINE();
2786*54e60f84SAndroid Build Coastguard Worker     }
2787*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2788*54e60f84SAndroid Build Coastguard Worker 
2789*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdelta_chroma_offset_l1[15][2] = \n");
2790*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
2791*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 15; i++) {
2792*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 2; j++) {
2793*54e60f84SAndroid Build Coastguard Worker             va_TracePrint(trace_ctx, "\t%d", p->WPInfo.delta_chroma_offset_l1[i][j]);
2794*54e60f84SAndroid Build Coastguard Worker         }
2795*54e60f84SAndroid Build Coastguard Worker         TRACE_NEWLINE();
2796*54e60f84SAndroid Build Coastguard Worker     }
2797*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2798*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treserved16b = %d\n", p->WPInfo.reserved16b);
2799*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treserved32b = %d\n", p->WPInfo.reserved32b);
2800*54e60f84SAndroid Build Coastguard Worker 
2801*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_flags = %d\n", p->sh_flags.value);
2802*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_alf_enabled_flag = %d\n", p->sh_flags.bits.sh_alf_enabled_flag);
2803*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_alf_cb_enabled_flag = %d\n", p->sh_flags.bits.sh_alf_cb_enabled_flag);
2804*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_alf_cr_enabled_flag = %d\n", p->sh_flags.bits.sh_alf_cr_enabled_flag);
2805*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_alf_cc_cb_enabled_flag = %d\n", p->sh_flags.bits.sh_alf_cc_cb_enabled_flag);
2806*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_alf_cc_cr_enabled_flag = %d\n", p->sh_flags.bits.sh_alf_cc_cr_enabled_flag);
2807*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_lmcs_used_flag = %d\n", p->sh_flags.bits.sh_lmcs_used_flag);
2808*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_explicit_scaling_list_used_flag = %d\n", p->sh_flags.bits.sh_explicit_scaling_list_used_flag);
2809*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_cabac_init_flag = %d\n", p->sh_flags.bits.sh_cabac_init_flag);
2810*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_collocated_from_l0_flag = %d\n", p->sh_flags.bits.sh_collocated_from_l0_flag);
2811*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_cu_chroma_qp_offset_enabled_flag = %d\n", p->sh_flags.bits.sh_cu_chroma_qp_offset_enabled_flag);
2812*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_sao_luma_used_flag = %d\n", p->sh_flags.bits.sh_sao_luma_used_flag);
2813*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_sao_chroma_used_flag = %d\n", p->sh_flags.bits.sh_sao_chroma_used_flag);
2814*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_deblocking_filter_disabled_flag = %d\n", p->sh_flags.bits.sh_deblocking_filter_disabled_flag);
2815*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_dep_quant_used_flag = %d\n", p->sh_flags.bits.sh_dep_quant_used_flag);
2816*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_sign_data_hiding_used_flag = %d\n", p->sh_flags.bits.sh_sign_data_hiding_used_flag);
2817*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsh_ts_residual_coding_disabled_flag = %d\n", p->sh_flags.bits.sh_ts_residual_coding_disabled_flag);
2818*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treserved = %d\n", p->sh_flags.bits.reserved);
2819*54e60f84SAndroid Build Coastguard Worker 
2820*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
2821*54e60f84SAndroid Build Coastguard Worker }
2822*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAScalingListBufferVVC(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)2823*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAScalingListBufferVVC(
2824*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
2825*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
2826*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
2827*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
2828*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
2829*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
2830*54e60f84SAndroid Build Coastguard Worker     void* data)
2831*54e60f84SAndroid Build Coastguard Worker {
2832*54e60f84SAndroid Build Coastguard Worker     int i, j, k;
2833*54e60f84SAndroid Build Coastguard Worker     VAScalingListVVC* p = (VAScalingListVVC*)data;
2834*54e60f84SAndroid Build Coastguard Worker 
2835*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
2836*54e60f84SAndroid Build Coastguard Worker 
2837*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAScalingListBufferVVC\n");
2838*54e60f84SAndroid Build Coastguard Worker 
2839*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\taps_adaptation_parameter_set_id = %d\n", p->aps_adaptation_parameter_set_id);
2840*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treserved8b = %d\n", p->reserved8b);
2841*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tScalingMatrixDCRec[14]=\n");
2842*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 14; i++) {
2843*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t%d", p->ScalingMatrixDCRec[i]);
2844*54e60f84SAndroid Build Coastguard Worker         if ((i + 1) % 8 == 0)
2845*54e60f84SAndroid Build Coastguard Worker             TRACE_NEWLINE();
2846*54e60f84SAndroid Build Coastguard Worker     }
2847*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2848*54e60f84SAndroid Build Coastguard Worker 
2849*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tScalingMatrixRec2x2[2][2][2] = \n");
2850*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
2851*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 2; i++) {
2852*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 2; j++) {
2853*54e60f84SAndroid Build Coastguard Worker             for (k = 0; k < 2; k++) {
2854*54e60f84SAndroid Build Coastguard Worker                 va_TracePrint(trace_ctx, "\t%d", p->ScalingMatrixRec2x2[i][j][k]);
2855*54e60f84SAndroid Build Coastguard Worker             }
2856*54e60f84SAndroid Build Coastguard Worker             TRACE_NEWLINE();
2857*54e60f84SAndroid Build Coastguard Worker         }
2858*54e60f84SAndroid Build Coastguard Worker         TRACE_NEWLINE();
2859*54e60f84SAndroid Build Coastguard Worker     }
2860*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2861*54e60f84SAndroid Build Coastguard Worker 
2862*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tScalingMatrixRec4x4[6][4][4] = \n");
2863*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
2864*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 6; i++) {
2865*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 4; j++) {
2866*54e60f84SAndroid Build Coastguard Worker             for (k = 0; k < 4; k++) {
2867*54e60f84SAndroid Build Coastguard Worker                 va_TracePrint(trace_ctx, "\t%d", p->ScalingMatrixRec4x4[i][j][k]);
2868*54e60f84SAndroid Build Coastguard Worker             }
2869*54e60f84SAndroid Build Coastguard Worker             TRACE_NEWLINE();
2870*54e60f84SAndroid Build Coastguard Worker         }
2871*54e60f84SAndroid Build Coastguard Worker         TRACE_NEWLINE();
2872*54e60f84SAndroid Build Coastguard Worker     }
2873*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2874*54e60f84SAndroid Build Coastguard Worker 
2875*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tScalingMatrixRec8x8[20][8][8] = \n");
2876*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
2877*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 20; i++) {
2878*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 8; j++) {
2879*54e60f84SAndroid Build Coastguard Worker             for (k = 0; k < 8; k++) {
2880*54e60f84SAndroid Build Coastguard Worker                 va_TracePrint(trace_ctx, "\t%d", p->ScalingMatrixRec8x8[i][j][k]);
2881*54e60f84SAndroid Build Coastguard Worker             }
2882*54e60f84SAndroid Build Coastguard Worker             TRACE_NEWLINE();
2883*54e60f84SAndroid Build Coastguard Worker         }
2884*54e60f84SAndroid Build Coastguard Worker         TRACE_NEWLINE();
2885*54e60f84SAndroid Build Coastguard Worker     }
2886*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2887*54e60f84SAndroid Build Coastguard Worker 
2888*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tva_reserved[8]=\n");
2889*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
2890*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 8; i++) {
2891*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\t%d", p->va_reserved[i]);
2892*54e60f84SAndroid Build Coastguard Worker     }
2893*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2894*54e60f84SAndroid Build Coastguard Worker 
2895*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
2896*54e60f84SAndroid Build Coastguard Worker }
2897*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAAlfBufferVVC(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)2898*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAAlfBufferVVC(
2899*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
2900*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
2901*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
2902*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
2903*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
2904*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
2905*54e60f84SAndroid Build Coastguard Worker     void* data)
2906*54e60f84SAndroid Build Coastguard Worker {
2907*54e60f84SAndroid Build Coastguard Worker     int i, j;
2908*54e60f84SAndroid Build Coastguard Worker     VAAlfDataVVC* p = (VAAlfDataVVC*)data;
2909*54e60f84SAndroid Build Coastguard Worker 
2910*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
2911*54e60f84SAndroid Build Coastguard Worker 
2912*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAAlfDataBufferVVC\n");
2913*54e60f84SAndroid Build Coastguard Worker 
2914*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\taps_adaptation_parameter_set_id = %d\n", p->aps_adaptation_parameter_set_id);
2915*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\talf_luma_num_filters_signalled_minus1 = %d\n", p->alf_luma_num_filters_signalled_minus1);
2916*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\talf_luma_coeff_delta_idx[25]=\n");
2917*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 25; i++) {
2918*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t%d", p->alf_luma_coeff_delta_idx[i]);
2919*54e60f84SAndroid Build Coastguard Worker         if ((i + 1) % 8 == 0)
2920*54e60f84SAndroid Build Coastguard Worker             TRACE_NEWLINE();
2921*54e60f84SAndroid Build Coastguard Worker     }
2922*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2923*54e60f84SAndroid Build Coastguard Worker 
2924*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tfiltCoeff[25][12]=\n");
2925*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
2926*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 25; i++) {
2927*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 12; j++) {
2928*54e60f84SAndroid Build Coastguard Worker             va_TracePrint(trace_ctx, "\t%d", p->filtCoeff[i][j]);
2929*54e60f84SAndroid Build Coastguard Worker             if ((j + 1) % 8 == 0)
2930*54e60f84SAndroid Build Coastguard Worker                 TRACE_NEWLINE();
2931*54e60f84SAndroid Build Coastguard Worker         }
2932*54e60f84SAndroid Build Coastguard Worker         TRACE_NEWLINE();
2933*54e60f84SAndroid Build Coastguard Worker     }
2934*54e60f84SAndroid Build Coastguard Worker 
2935*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\talf_luma_clip_idx[25][12]=\n");
2936*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
2937*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 25; i++) {
2938*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 12; j++) {
2939*54e60f84SAndroid Build Coastguard Worker             va_TracePrint(trace_ctx, "\t%d", p->alf_luma_clip_idx[i][j]);
2940*54e60f84SAndroid Build Coastguard Worker             if ((j + 1) % 8 == 0)
2941*54e60f84SAndroid Build Coastguard Worker                 TRACE_NEWLINE();
2942*54e60f84SAndroid Build Coastguard Worker         }
2943*54e60f84SAndroid Build Coastguard Worker         TRACE_NEWLINE();
2944*54e60f84SAndroid Build Coastguard Worker     }
2945*54e60f84SAndroid Build Coastguard Worker 
2946*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\talf_chroma_num_alt_filters_minus1 = %d\n", p->alf_chroma_num_alt_filters_minus1);
2947*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tAlfCoeffC[8][6]=\n");
2948*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
2949*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 8; i++) {
2950*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 6; j++) {
2951*54e60f84SAndroid Build Coastguard Worker             va_TracePrint(trace_ctx, "\t%d", p->AlfCoeffC[i][j]);
2952*54e60f84SAndroid Build Coastguard Worker         }
2953*54e60f84SAndroid Build Coastguard Worker         TRACE_NEWLINE();
2954*54e60f84SAndroid Build Coastguard Worker     }
2955*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2956*54e60f84SAndroid Build Coastguard Worker 
2957*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\talf_chroma_clip_idx[8][6]=\n");
2958*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
2959*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 8; i++) {
2960*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 6; j++) {
2961*54e60f84SAndroid Build Coastguard Worker             va_TracePrint(trace_ctx, "\t%d", p->alf_chroma_clip_idx[i][j]);
2962*54e60f84SAndroid Build Coastguard Worker         }
2963*54e60f84SAndroid Build Coastguard Worker         TRACE_NEWLINE();
2964*54e60f84SAndroid Build Coastguard Worker     }
2965*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2966*54e60f84SAndroid Build Coastguard Worker 
2967*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\talf_cc_cb_filters_signalled_minus1 = %d\n", p->alf_cc_cb_filters_signalled_minus1);
2968*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tCcAlfApsCoeffCb[4][7]=\n");
2969*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
2970*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 4; i++) {
2971*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 7; j++) {
2972*54e60f84SAndroid Build Coastguard Worker             va_TracePrint(trace_ctx, "\t%d", p->CcAlfApsCoeffCb[i][j]);
2973*54e60f84SAndroid Build Coastguard Worker         }
2974*54e60f84SAndroid Build Coastguard Worker         TRACE_NEWLINE();
2975*54e60f84SAndroid Build Coastguard Worker     }
2976*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2977*54e60f84SAndroid Build Coastguard Worker 
2978*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\talf_cc_cr_filters_signalled_minus1 = %d\n", p->alf_cc_cr_filters_signalled_minus1);
2979*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tCcAlfApsCoeffCr[4][7]=\n");
2980*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
2981*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 4; i++) {
2982*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 7; j++) {
2983*54e60f84SAndroid Build Coastguard Worker             va_TracePrint(trace_ctx, "\t%d", p->CcAlfApsCoeffCr[i][j]);
2984*54e60f84SAndroid Build Coastguard Worker         }
2985*54e60f84SAndroid Build Coastguard Worker         TRACE_NEWLINE();
2986*54e60f84SAndroid Build Coastguard Worker     }
2987*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
2988*54e60f84SAndroid Build Coastguard Worker 
2989*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treserved16b = %d\n", p->reserved16b);
2990*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treserved32b = %d\n", p->reserved32b);
2991*54e60f84SAndroid Build Coastguard Worker 
2992*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\talf_flags = %d\n", p->alf_flags.value);
2993*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\talf_luma_filter_signal_flag = %d\n", p->alf_flags.bits.alf_luma_filter_signal_flag);
2994*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\talf_chroma_filter_signal_flag = %d\n", p->alf_flags.bits.alf_chroma_filter_signal_flag);
2995*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\talf_cc_cb_filter_signal_flag = %d\n", p->alf_flags.bits.alf_cc_cb_filter_signal_flag);
2996*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\talf_cc_cr_filter_signal_flag = %d\n", p->alf_flags.bits.alf_cc_cr_filter_signal_flag);
2997*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\talf_luma_clip_flag = %d\n", p->alf_flags.bits.alf_luma_clip_flag);
2998*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\talf_chroma_clip_flag = %d\n", p->alf_flags.bits.alf_chroma_clip_flag);
2999*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treserved = %d\n", p->alf_flags.bits.reserved);
3000*54e60f84SAndroid Build Coastguard Worker 
3001*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tva_reserved[8]=\n");
3002*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
3003*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 8; i++) {
3004*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\t%d", p->va_reserved[i]);
3005*54e60f84SAndroid Build Coastguard Worker     }
3006*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
3007*54e60f84SAndroid Build Coastguard Worker 
3008*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
3009*54e60f84SAndroid Build Coastguard Worker }
3010*54e60f84SAndroid Build Coastguard Worker 
va_TraceVALmcsBufferVVC(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)3011*54e60f84SAndroid Build Coastguard Worker static void va_TraceVALmcsBufferVVC(
3012*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
3013*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
3014*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
3015*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
3016*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
3017*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
3018*54e60f84SAndroid Build Coastguard Worker     void* data)
3019*54e60f84SAndroid Build Coastguard Worker {
3020*54e60f84SAndroid Build Coastguard Worker     int i;
3021*54e60f84SAndroid Build Coastguard Worker     VALmcsDataVVC* p = (VALmcsDataVVC*)data;
3022*54e60f84SAndroid Build Coastguard Worker 
3023*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
3024*54e60f84SAndroid Build Coastguard Worker 
3025*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VALmcsDataBufferVVC\n");
3026*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\taps_adaptation_parameter_set_id = %d\n", p->aps_adaptation_parameter_set_id);
3027*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlmcs_min_bin_idx = %d\n", p->lmcs_min_bin_idx);
3028*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlmcs_delta_max_bin_idx = %d\n", p->lmcs_delta_max_bin_idx);
3029*54e60f84SAndroid Build Coastguard Worker 
3030*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlmcsDeltaCW[16]=\n");
3031*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 16; i++) {
3032*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t%d", p->lmcsDeltaCW[i]);
3033*54e60f84SAndroid Build Coastguard Worker         if ((i + 1) % 8 == 0)
3034*54e60f84SAndroid Build Coastguard Worker             TRACE_NEWLINE();
3035*54e60f84SAndroid Build Coastguard Worker     }
3036*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
3037*54e60f84SAndroid Build Coastguard Worker 
3038*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlmcsDeltaCrs = %d\n", p->lmcsDeltaCrs);
3039*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treserved8b[3]=\n");
3040*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
3041*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 3; i++) {
3042*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\t%d", p->reserved8b[i]);
3043*54e60f84SAndroid Build Coastguard Worker     }
3044*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
3045*54e60f84SAndroid Build Coastguard Worker 
3046*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tva_reserved[8]=\n");
3047*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
3048*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 8; i++) {
3049*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\t%d", p->va_reserved[i]);
3050*54e60f84SAndroid Build Coastguard Worker     }
3051*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
3052*54e60f84SAndroid Build Coastguard Worker 
3053*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
3054*54e60f84SAndroid Build Coastguard Worker }
3055*54e60f84SAndroid Build Coastguard Worker 
va_TraceVASubPicBufferVVC(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)3056*54e60f84SAndroid Build Coastguard Worker static void va_TraceVASubPicBufferVVC(
3057*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
3058*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
3059*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
3060*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
3061*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
3062*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
3063*54e60f84SAndroid Build Coastguard Worker     void* data)
3064*54e60f84SAndroid Build Coastguard Worker {
3065*54e60f84SAndroid Build Coastguard Worker     int i;
3066*54e60f84SAndroid Build Coastguard Worker     VASubPicVVC* p = (VASubPicVVC*)data;
3067*54e60f84SAndroid Build Coastguard Worker 
3068*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
3069*54e60f84SAndroid Build Coastguard Worker 
3070*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VASubPicBufferVVC\n");
3071*54e60f84SAndroid Build Coastguard Worker 
3072*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_subpic_ctu_top_left_x = %d\n", p->sps_subpic_ctu_top_left_x);
3073*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_subpic_ctu_top_left_y = %d\n", p->sps_subpic_ctu_top_left_y);
3074*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_subpic_width_minus1 = %d\n", p->sps_subpic_width_minus1);
3075*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_subpic_height_minus1 = %d\n", p->sps_subpic_height_minus1);
3076*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tSubpicIdVal = %d\n", p->SubpicIdVal);
3077*54e60f84SAndroid Build Coastguard Worker 
3078*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsubpic_flags = %d\n", p->subpic_flags.value);
3079*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_subpic_treated_as_pic_flag = %d\n", p->subpic_flags.bits.sps_subpic_treated_as_pic_flag);
3080*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_loop_filter_across_subpic_enabled_flag = %d\n", p->subpic_flags.bits.sps_loop_filter_across_subpic_enabled_flag);
3081*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treserved = %d\n", p->subpic_flags.bits.reserved);
3082*54e60f84SAndroid Build Coastguard Worker 
3083*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tva_reserved[4]=\n");
3084*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
3085*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 4; i++) {
3086*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\t%d", p->va_reserved[i]);
3087*54e60f84SAndroid Build Coastguard Worker     }
3088*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
3089*54e60f84SAndroid Build Coastguard Worker 
3090*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
3091*54e60f84SAndroid Build Coastguard Worker }
3092*54e60f84SAndroid Build Coastguard Worker 
va_TraceVATileBufferVVC(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)3093*54e60f84SAndroid Build Coastguard Worker static void va_TraceVATileBufferVVC(
3094*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
3095*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
3096*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
3097*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
3098*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
3099*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
3100*54e60f84SAndroid Build Coastguard Worker     void* data)
3101*54e60f84SAndroid Build Coastguard Worker {
3102*54e60f84SAndroid Build Coastguard Worker     uint16_t* p = (uint16_t*)data;
3103*54e60f84SAndroid Build Coastguard Worker 
3104*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
3105*54e60f84SAndroid Build Coastguard Worker 
3106*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VATileBufferVVC\n");
3107*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttile_dimension = %d\n", *p);
3108*54e60f84SAndroid Build Coastguard Worker 
3109*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
3110*54e60f84SAndroid Build Coastguard Worker }
3111*54e60f84SAndroid Build Coastguard Worker 
va_TraceVASliceStructBufferVVC(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)3112*54e60f84SAndroid Build Coastguard Worker static void va_TraceVASliceStructBufferVVC(
3113*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
3114*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
3115*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
3116*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
3117*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
3118*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
3119*54e60f84SAndroid Build Coastguard Worker     void* data)
3120*54e60f84SAndroid Build Coastguard Worker {
3121*54e60f84SAndroid Build Coastguard Worker     int i;
3122*54e60f84SAndroid Build Coastguard Worker     VASliceStructVVC* p = (VASliceStructVVC*)data;
3123*54e60f84SAndroid Build Coastguard Worker 
3124*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
3125*54e60f84SAndroid Build Coastguard Worker 
3126*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VASliceStructBufferVVC\n");
3127*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tSliceTopLeftTileIdx = %d\n", p->SliceTopLeftTileIdx);
3128*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_slice_width_in_tiles_minus1 = %d\n", p->pps_slice_width_in_tiles_minus1);
3129*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_slice_height_in_tiles_minus1 = %d\n", p->pps_slice_height_in_tiles_minus1);
3130*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_exp_slice_height_in_ctus_minus1 = %d\n", p->pps_exp_slice_height_in_ctus_minus1);
3131*54e60f84SAndroid Build Coastguard Worker 
3132*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tva_reserved[4]=\n");
3133*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
3134*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 4; i++) {
3135*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\t%d", p->va_reserved[i]);
3136*54e60f84SAndroid Build Coastguard Worker     }
3137*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
3138*54e60f84SAndroid Build Coastguard Worker 
3139*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
3140*54e60f84SAndroid Build Coastguard Worker }
3141*54e60f84SAndroid Build Coastguard Worker 
3142*54e60f84SAndroid Build Coastguard Worker 
va_TraceIsRextProfile(VADisplay dpy,VAContextID context,bool * isRext)3143*54e60f84SAndroid Build Coastguard Worker static inline void va_TraceIsRextProfile(
3144*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
3145*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
3146*54e60f84SAndroid Build Coastguard Worker     bool *isRext /* out */
3147*54e60f84SAndroid Build Coastguard Worker )
3148*54e60f84SAndroid Build Coastguard Worker {
3149*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
3150*54e60f84SAndroid Build Coastguard Worker 
3151*54e60f84SAndroid Build Coastguard Worker     *isRext = (\
3152*54e60f84SAndroid Build Coastguard Worker                trace_ctx->trace_profile == VAProfileHEVCMain12     || \
3153*54e60f84SAndroid Build Coastguard Worker                trace_ctx->trace_profile == VAProfileHEVCMain422_10 || \
3154*54e60f84SAndroid Build Coastguard Worker                trace_ctx->trace_profile == VAProfileHEVCMain422_12 || \
3155*54e60f84SAndroid Build Coastguard Worker                trace_ctx->trace_profile == VAProfileHEVCMain444    || \
3156*54e60f84SAndroid Build Coastguard Worker                trace_ctx->trace_profile == VAProfileHEVCMain444_10 || \
3157*54e60f84SAndroid Build Coastguard Worker                trace_ctx->trace_profile == VAProfileHEVCMain444_12 || \
3158*54e60f84SAndroid Build Coastguard Worker                trace_ctx->trace_profile == VAProfileHEVCSccMain    || \
3159*54e60f84SAndroid Build Coastguard Worker                trace_ctx->trace_profile == VAProfileHEVCSccMain10  || \
3160*54e60f84SAndroid Build Coastguard Worker                trace_ctx->trace_profile == VAProfileHEVCSccMain444 || \
3161*54e60f84SAndroid Build Coastguard Worker                trace_ctx->trace_profile == VAProfileHEVCSccMain444_10 \
3162*54e60f84SAndroid Build Coastguard Worker               );
3163*54e60f84SAndroid Build Coastguard Worker }
3164*54e60f84SAndroid Build Coastguard Worker 
va_TraceIsSccProfile(VADisplay dpy,VAContextID context,bool * isScc)3165*54e60f84SAndroid Build Coastguard Worker static inline void va_TraceIsSccProfile(
3166*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
3167*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
3168*54e60f84SAndroid Build Coastguard Worker     bool *isScc /* out */
3169*54e60f84SAndroid Build Coastguard Worker )
3170*54e60f84SAndroid Build Coastguard Worker {
3171*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
3172*54e60f84SAndroid Build Coastguard Worker 
3173*54e60f84SAndroid Build Coastguard Worker     *isScc = (\
3174*54e60f84SAndroid Build Coastguard Worker               trace_ctx->trace_profile == VAProfileHEVCSccMain    || \
3175*54e60f84SAndroid Build Coastguard Worker               trace_ctx->trace_profile == VAProfileHEVCSccMain10  || \
3176*54e60f84SAndroid Build Coastguard Worker               trace_ctx->trace_profile == VAProfileHEVCSccMain444 || \
3177*54e60f84SAndroid Build Coastguard Worker               trace_ctx->trace_profile == VAProfileHEVCSccMain444_10 \
3178*54e60f84SAndroid Build Coastguard Worker              );
3179*54e60f84SAndroid Build Coastguard Worker }
3180*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAPictureParameterBufferHEVC(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)3181*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAPictureParameterBufferHEVC(
3182*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
3183*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
3184*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
3185*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
3186*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
3187*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
3188*54e60f84SAndroid Build Coastguard Worker     void *data)
3189*54e60f84SAndroid Build Coastguard Worker {
3190*54e60f84SAndroid Build Coastguard Worker     int i, j;
3191*54e60f84SAndroid Build Coastguard Worker     bool isRext = false;
3192*54e60f84SAndroid Build Coastguard Worker     bool isScc = false;
3193*54e60f84SAndroid Build Coastguard Worker     VAPictureParameterBufferHEVC *p = NULL;
3194*54e60f84SAndroid Build Coastguard Worker     VAPictureParameterBufferHEVCRext *pRext = NULL;
3195*54e60f84SAndroid Build Coastguard Worker     VAPictureParameterBufferHEVCScc *pScc = NULL;
3196*54e60f84SAndroid Build Coastguard Worker 
3197*54e60f84SAndroid Build Coastguard Worker     va_TraceIsRextProfile(dpy, context, &isRext);
3198*54e60f84SAndroid Build Coastguard Worker     va_TraceIsSccProfile(dpy, context, &isScc);
3199*54e60f84SAndroid Build Coastguard Worker 
3200*54e60f84SAndroid Build Coastguard Worker     if (isRext) {
3201*54e60f84SAndroid Build Coastguard Worker         p = &((VAPictureParameterBufferHEVCExtension*)data)->base;
3202*54e60f84SAndroid Build Coastguard Worker         pRext = &((VAPictureParameterBufferHEVCExtension*)data)->rext;
3203*54e60f84SAndroid Build Coastguard Worker 
3204*54e60f84SAndroid Build Coastguard Worker         if (isScc)
3205*54e60f84SAndroid Build Coastguard Worker             pScc = &((VAPictureParameterBufferHEVCExtension*)data)->scc;
3206*54e60f84SAndroid Build Coastguard Worker     } else
3207*54e60f84SAndroid Build Coastguard Worker         p = (VAPictureParameterBufferHEVC*)data;
3208*54e60f84SAndroid Build Coastguard Worker 
3209*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
3210*54e60f84SAndroid Build Coastguard Worker 
3211*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAPictureParameterBufferHEVC\n");
3212*54e60f84SAndroid Build Coastguard Worker 
3213*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tCurrPic.picture_id = 0x%08x\n", p->CurrPic.picture_id);
3214*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tCurrPic.frame_idx = %d\n", p->CurrPic.pic_order_cnt);
3215*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tCurrPic.flags = %d\n", p->CurrPic.flags);
3216*54e60f84SAndroid Build Coastguard Worker 
3217*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tReferenceFrames (picture_id-pic_order_cnt-flags):\n");
3218*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 15; i++) {
3219*54e60f84SAndroid Build Coastguard Worker         if ((p->ReferenceFrames[i].picture_id != VA_INVALID_SURFACE) &&
3220*54e60f84SAndroid Build Coastguard Worker             ((p->ReferenceFrames[i].flags & VA_PICTURE_HEVC_INVALID) == 0)) {
3221*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t\t0x%08x-%08d-0x%08x\n",
3222*54e60f84SAndroid Build Coastguard Worker                         p->ReferenceFrames[i].picture_id,
3223*54e60f84SAndroid Build Coastguard Worker                         p->ReferenceFrames[i].pic_order_cnt,
3224*54e60f84SAndroid Build Coastguard Worker                         p->ReferenceFrames[i].flags);
3225*54e60f84SAndroid Build Coastguard Worker         } else
3226*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t\tinv-inv-inv-inv-inv\n");
3227*54e60f84SAndroid Build Coastguard Worker     }
3228*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\n");
3229*54e60f84SAndroid Build Coastguard Worker 
3230*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_width_in_luma_samples = %d\n", p->pic_width_in_luma_samples);
3231*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_height_in_luma_samples = %d\n", p->pic_height_in_luma_samples);
3232*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_fields = %d\n", p->pic_fields.value);
3233*54e60f84SAndroid Build Coastguard Worker 
3234*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tchroma_format_idc = %d\n", p->pic_fields.bits.chroma_format_idc);
3235*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tseparate_colour_plane_flag = %d\n", p->pic_fields.bits.separate_colour_plane_flag);
3236*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpcm_enabled_flag = %d\n", p->pic_fields.bits.pcm_enabled_flag);
3237*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tscaling_list_enabled_flag = %d\n", p->pic_fields.bits.scaling_list_enabled_flag);
3238*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttransform_skip_enabled_flag = %d\n", p->pic_fields.bits.transform_skip_enabled_flag);
3239*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tamp_enabled_flag = %d\n", p->pic_fields.bits.amp_enabled_flag);
3240*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tstrong_intra_smoothing_enabled_flag = %d\n", p->pic_fields.bits.strong_intra_smoothing_enabled_flag);
3241*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsign_data_hiding_enabled_flag = %d\n", p->pic_fields.bits.sign_data_hiding_enabled_flag);
3242*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tconstrained_intra_pred_flag = %d\n", p->pic_fields.bits.constrained_intra_pred_flag);
3243*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcu_qp_delta_enabled_flag = %d\n", p->pic_fields.bits.cu_qp_delta_enabled_flag);
3244*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tweighted_pred_flag = %d\n", p->pic_fields.bits.weighted_pred_flag);
3245*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tweighted_bipred_flag = %d\n", p->pic_fields.bits.weighted_bipred_flag);
3246*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttransquant_bypass_enabled_flag = %d\n", p->pic_fields.bits.transquant_bypass_enabled_flag);
3247*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttiles_enabled_flag = %d\n", p->pic_fields.bits.tiles_enabled_flag);
3248*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tentropy_coding_sync_enabled_flag = %d\n", p->pic_fields.bits.entropy_coding_sync_enabled_flag);
3249*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_loop_filter_across_slices_enabled_flag = %d\n", p->pic_fields.bits.pps_loop_filter_across_slices_enabled_flag);
3250*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tloop_filter_across_tiles_enabled_flag = %d\n", p->pic_fields.bits.loop_filter_across_tiles_enabled_flag);
3251*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpcm_loop_filter_disabled_flag = %d\n", p->pic_fields.bits.pcm_loop_filter_disabled_flag);
3252*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tNoPicReorderingFlag = %d\n", p->pic_fields.bits.NoPicReorderingFlag);
3253*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tNoBiPredFlag = %d\n", p->pic_fields.bits.NoBiPredFlag);
3254*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tReservedBits = %d\n", p->pic_fields.bits.ReservedBits);
3255*54e60f84SAndroid Build Coastguard Worker 
3256*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_max_dec_pic_buffering_minus1 = %d\n", p->sps_max_dec_pic_buffering_minus1);
3257*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbit_depth_luma_minus8 = %d\n", p->bit_depth_luma_minus8);
3258*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbit_depth_chroma_minus8 = %d\n", p->bit_depth_chroma_minus8);
3259*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpcm_sample_bit_depth_luma_minus1 = %d\n", p->pcm_sample_bit_depth_luma_minus1);
3260*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpcm_sample_bit_depth_chroma_minus1 = %d\n", p->pcm_sample_bit_depth_chroma_minus1);
3261*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlog2_min_luma_coding_block_size_minus3 = %d\n", p->log2_min_luma_coding_block_size_minus3);
3262*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlog2_diff_max_min_luma_coding_block_size = %d\n", p->log2_diff_max_min_luma_coding_block_size);
3263*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlog2_min_transform_block_size_minus2 = %d\n", p->log2_min_transform_block_size_minus2);
3264*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlog2_diff_max_min_transform_block_size = %d\n", p->log2_diff_max_min_transform_block_size);
3265*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlog2_min_pcm_luma_coding_block_size_minus3 = %d\n", p->log2_min_pcm_luma_coding_block_size_minus3);
3266*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlog2_diff_max_min_pcm_luma_coding_block_size = %d\n", p->log2_diff_max_min_pcm_luma_coding_block_size);
3267*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmax_transform_hierarchy_depth_intra = %d\n", p->max_transform_hierarchy_depth_intra);
3268*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmax_transform_hierarchy_depth_inter = %d\n", p->max_transform_hierarchy_depth_inter);
3269*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tinit_qp_minus26 = %d\n", p->init_qp_minus26);
3270*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdiff_cu_qp_delta_depth = %d\n", p->diff_cu_qp_delta_depth);
3271*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_cb_qp_offset = %d\n", p->pps_cb_qp_offset);
3272*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_cr_qp_offset = %d\n", p->pps_cr_qp_offset);
3273*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlog2_parallel_merge_level_minus2 = %d\n", p->log2_parallel_merge_level_minus2);
3274*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_tile_columns_minus1 = %d\n", p->num_tile_columns_minus1);
3275*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_tile_rows_minus1 = %d\n", p->num_tile_rows_minus1);
3276*54e60f84SAndroid Build Coastguard Worker 
3277*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcolumn_width_minus1[19]=\n");
3278*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
3279*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 19; i++) {
3280*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\t%d", p->column_width_minus1[i]);
3281*54e60f84SAndroid Build Coastguard Worker         if ((i + 1) % 8 == 0)
3282*54e60f84SAndroid Build Coastguard Worker             TRACE_NEWLINE();
3283*54e60f84SAndroid Build Coastguard Worker     }
3284*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
3285*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\trow_height_minus1[21]=\n");
3286*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
3287*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 21; i++) {
3288*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\t%d", p->row_height_minus1[i]);
3289*54e60f84SAndroid Build Coastguard Worker         if ((i + 1) % 8 == 0)
3290*54e60f84SAndroid Build Coastguard Worker             TRACE_NEWLINE();
3291*54e60f84SAndroid Build Coastguard Worker     }
3292*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
3293*54e60f84SAndroid Build Coastguard Worker 
3294*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_parsing_fields = %d\n", p->slice_parsing_fields.value);
3295*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlists_modification_present_flag = %d\n", p->slice_parsing_fields.bits.lists_modification_present_flag);
3296*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlong_term_ref_pics_present_flag = %d\n", p->slice_parsing_fields.bits.long_term_ref_pics_present_flag);
3297*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_temporal_mvp_enabled_flag = %d\n", p->slice_parsing_fields.bits.sps_temporal_mvp_enabled_flag);
3298*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcabac_init_present_flag = %d\n", p->slice_parsing_fields.bits.cabac_init_present_flag);
3299*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\toutput_flag_present_flag = %d\n", p->slice_parsing_fields.bits.output_flag_present_flag);
3300*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdependent_slice_segments_enabled_flag = %d\n", p->slice_parsing_fields.bits.dependent_slice_segments_enabled_flag);
3301*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_slice_chroma_qp_offsets_present_flag = %d\n", p->slice_parsing_fields.bits.pps_slice_chroma_qp_offsets_present_flag);
3302*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsample_adaptive_offset_enabled_flag = %d\n", p->slice_parsing_fields.bits.sample_adaptive_offset_enabled_flag);
3303*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdeblocking_filter_override_enabled_flag = %d\n", p->slice_parsing_fields.bits.deblocking_filter_override_enabled_flag);
3304*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_disable_deblocking_filter_flag = %d\n", p->slice_parsing_fields.bits.pps_disable_deblocking_filter_flag);
3305*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_segment_header_extension_present_flag = %d\n", p->slice_parsing_fields.bits.slice_segment_header_extension_present_flag);
3306*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tRapPicFlag = %d\n", p->slice_parsing_fields.bits.RapPicFlag);
3307*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tIdrPicFlag = %d\n", p->slice_parsing_fields.bits.IdrPicFlag);
3308*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tIntraPicFlag = %d\n", p->slice_parsing_fields.bits.IntraPicFlag);
3309*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tReservedBits = %d\n", p->slice_parsing_fields.bits.ReservedBits);
3310*54e60f84SAndroid Build Coastguard Worker 
3311*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlog2_max_pic_order_cnt_lsb_minus4 = %d\n", p->log2_max_pic_order_cnt_lsb_minus4);
3312*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_short_term_ref_pic_sets = %d\n", p->num_short_term_ref_pic_sets);
3313*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_long_term_ref_pic_sps = %d\n", p->num_long_term_ref_pic_sps);
3314*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_ref_idx_l0_default_active_minus1 = %d\n", p->num_ref_idx_l0_default_active_minus1);
3315*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_ref_idx_l1_default_active_minus1 = %d\n", p->num_ref_idx_l1_default_active_minus1);
3316*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_beta_offset_div2 = %d\n", p->pps_beta_offset_div2);
3317*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_tc_offset_div2 = %d\n", p->pps_tc_offset_div2);
3318*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_extra_slice_header_bits = %d\n", p->num_extra_slice_header_bits);
3319*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tst_rps_bits = %d\n", p->st_rps_bits);
3320*54e60f84SAndroid Build Coastguard Worker 
3321*54e60f84SAndroid Build Coastguard Worker     if (isRext && pRext) {
3322*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\trange_extension_pic_fields = %d\n", pRext->range_extension_pic_fields.value);
3323*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\ttransform_skip_rotation_enabled_flag = %d\n", pRext->range_extension_pic_fields.bits.transform_skip_rotation_enabled_flag);
3324*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\ttransform_skip_context_enabled_flag = %d\n", pRext->range_extension_pic_fields.bits.transform_skip_context_enabled_flag);
3325*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\timplicit_rdpcm_enabled_flag = %d\n", pRext->range_extension_pic_fields.bits.implicit_rdpcm_enabled_flag);
3326*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\texplicit_rdpcm_enabled_flag = %d\n", pRext->range_extension_pic_fields.bits.explicit_rdpcm_enabled_flag);
3327*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\textended_precision_processing_flag = %d\n", pRext->range_extension_pic_fields.bits.extended_precision_processing_flag);
3328*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tintra_smoothing_disabled_flag = %d\n", pRext->range_extension_pic_fields.bits.intra_smoothing_disabled_flag);
3329*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\thigh_precision_offsets_enabled_flag = %d\n", pRext->range_extension_pic_fields.bits.high_precision_offsets_enabled_flag);
3330*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tpersistent_rice_adaptation_enabled_flag = %d\n", pRext->range_extension_pic_fields.bits.persistent_rice_adaptation_enabled_flag);
3331*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tcabac_bypass_alignment_enabled_flag = %d\n", pRext->range_extension_pic_fields.bits.cabac_bypass_alignment_enabled_flag);
3332*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tcross_component_prediction_enabled_flag = %d\n", pRext->range_extension_pic_fields.bits.cross_component_prediction_enabled_flag);
3333*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tchroma_qp_offset_list_enabled_flag = %d\n", pRext->range_extension_pic_fields.bits.chroma_qp_offset_list_enabled_flag);
3334*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\treserved = %d\n", pRext->range_extension_pic_fields.bits.reserved);
3335*54e60f84SAndroid Build Coastguard Worker 
3336*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tdiff_cu_chroma_qp_offset_depth = %d\n", pRext->diff_cu_chroma_qp_offset_depth);
3337*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tchroma_qp_offset_list_len_minus1 = %d\n", pRext->chroma_qp_offset_list_len_minus1);
3338*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tlog2_sao_offset_scale_luma = %d\n", pRext->log2_sao_offset_scale_luma);
3339*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tlog2_sao_offset_scale_chroma = %d\n", pRext->log2_sao_offset_scale_chroma);
3340*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tlog2_max_transform_skip_block_size_minus2 = %d\n", pRext->log2_max_transform_skip_block_size_minus2);
3341*54e60f84SAndroid Build Coastguard Worker 
3342*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tcb_qp_offset_list[6] = \n");
3343*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "");
3344*54e60f84SAndroid Build Coastguard Worker         for (i = 0; i < 6; i++)
3345*54e60f84SAndroid Build Coastguard Worker             va_TracePrint(trace_ctx, "\t%d", pRext->cb_qp_offset_list[i]);
3346*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\n");
3347*54e60f84SAndroid Build Coastguard Worker 
3348*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tcr_qp_offset_list[] = \n");
3349*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "");
3350*54e60f84SAndroid Build Coastguard Worker         for (i = 0; i < 6; i++)
3351*54e60f84SAndroid Build Coastguard Worker             va_TracePrint(trace_ctx, "\t%d", pRext->cr_qp_offset_list[i]);
3352*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\n");
3353*54e60f84SAndroid Build Coastguard Worker     }
3354*54e60f84SAndroid Build Coastguard Worker 
3355*54e60f84SAndroid Build Coastguard Worker     if (isScc && pScc) {
3356*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tscreen_content_pic_fields = %d\n", pScc->screen_content_pic_fields.value);
3357*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tpps_curr_pic_ref_enabled_flag = %d\n", pScc->screen_content_pic_fields.bits.pps_curr_pic_ref_enabled_flag);
3358*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tpalette_mode_enabled_flag = %d\n", pScc->screen_content_pic_fields.bits.palette_mode_enabled_flag);
3359*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tmotion_vector_resolution_control_idc = %d\n", pScc->screen_content_pic_fields.bits.motion_vector_resolution_control_idc);
3360*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tintra_boundary_filtering_disabled_flag = %d\n", pScc->screen_content_pic_fields.bits.intra_boundary_filtering_disabled_flag);
3361*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tresidual_adaptive_colour_transform_enabled_flag = %d\n", pScc->screen_content_pic_fields.bits.residual_adaptive_colour_transform_enabled_flag);
3362*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tpps_slice_act_qp_offsets_present_flag = %d\n", pScc->screen_content_pic_fields.bits.pps_slice_act_qp_offsets_present_flag);
3363*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\treserved = %d\n", pScc->screen_content_pic_fields.bits.reserved);
3364*54e60f84SAndroid Build Coastguard Worker 
3365*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tpalette_max_size = %d\n", pScc->palette_max_size);
3366*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tdelta_palette_max_predictor_size = %d\n", pScc->delta_palette_max_predictor_size);
3367*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tpredictor_palette_size = %d\n", pScc->predictor_palette_size);
3368*54e60f84SAndroid Build Coastguard Worker 
3369*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tpredictor_palette_entries[3][128] = \n");
3370*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "");
3371*54e60f84SAndroid Build Coastguard Worker         for (i = 0; i < 3; i++) {
3372*54e60f84SAndroid Build Coastguard Worker             for (j = 0; j < 128; j++) {
3373*54e60f84SAndroid Build Coastguard Worker                 va_TracePrint(trace_ctx, "\t%d", pScc->predictor_palette_entries[i][j]);
3374*54e60f84SAndroid Build Coastguard Worker                 if ((j + 1) % 8 == 0)
3375*54e60f84SAndroid Build Coastguard Worker                     TRACE_NEWLINE();
3376*54e60f84SAndroid Build Coastguard Worker             }
3377*54e60f84SAndroid Build Coastguard Worker             TRACE_NEWLINE();
3378*54e60f84SAndroid Build Coastguard Worker         }
3379*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\n");
3380*54e60f84SAndroid Build Coastguard Worker 
3381*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tpps_act_y_qp_offset_plus5 = %d\n", pScc->pps_act_y_qp_offset_plus5);
3382*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tpps_act_cb_qp_offset_plus5 = %d\n", pScc->pps_act_cb_qp_offset_plus5);
3383*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tpps_act_cr_qp_offset_plus3 = %d\n", pScc->pps_act_cr_qp_offset_plus3);
3384*54e60f84SAndroid Build Coastguard Worker     }
3385*54e60f84SAndroid Build Coastguard Worker 
3386*54e60f84SAndroid Build Coastguard Worker     return;
3387*54e60f84SAndroid Build Coastguard Worker }
3388*54e60f84SAndroid Build Coastguard Worker 
va_TraceVASliceParameterBufferHEVC(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)3389*54e60f84SAndroid Build Coastguard Worker static void va_TraceVASliceParameterBufferHEVC(
3390*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
3391*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
3392*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
3393*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
3394*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
3395*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
3396*54e60f84SAndroid Build Coastguard Worker     void *data)
3397*54e60f84SAndroid Build Coastguard Worker {
3398*54e60f84SAndroid Build Coastguard Worker     int i, j;
3399*54e60f84SAndroid Build Coastguard Worker     bool isRext = false;
3400*54e60f84SAndroid Build Coastguard Worker     VASliceParameterBufferHEVC* p = NULL;
3401*54e60f84SAndroid Build Coastguard Worker     VASliceParameterBufferHEVCRext *pRext = NULL;
3402*54e60f84SAndroid Build Coastguard Worker 
3403*54e60f84SAndroid Build Coastguard Worker     va_TraceIsRextProfile(dpy, context, &isRext);
3404*54e60f84SAndroid Build Coastguard Worker     if (isRext) {
3405*54e60f84SAndroid Build Coastguard Worker         p = &((VASliceParameterBufferHEVCExtension*)data)->base;
3406*54e60f84SAndroid Build Coastguard Worker         pRext = &((VASliceParameterBufferHEVCExtension*)data)->rext;
3407*54e60f84SAndroid Build Coastguard Worker     } else
3408*54e60f84SAndroid Build Coastguard Worker         p = (VASliceParameterBufferHEVC*)data;
3409*54e60f84SAndroid Build Coastguard Worker 
3410*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
3411*54e60f84SAndroid Build Coastguard Worker 
3412*54e60f84SAndroid Build Coastguard Worker     trace_ctx->trace_slice_no++;
3413*54e60f84SAndroid Build Coastguard Worker     trace_ctx->trace_slice_size = p->slice_data_size;
3414*54e60f84SAndroid Build Coastguard Worker 
3415*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VASliceParameterBufferHEVC\n");
3416*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_data_size = %d\n", p->slice_data_size);
3417*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_data_offset = %d\n", p->slice_data_offset);
3418*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_data_flag = %d\n", p->slice_data_flag);
3419*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_data_byte_offset = %d\n", p->slice_data_byte_offset);
3420*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_segment_address = %d\n", p->slice_segment_address);
3421*54e60f84SAndroid Build Coastguard Worker 
3422*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tRefPicList[2][15]=\n");
3423*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
3424*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 2; i++) {
3425*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 15; j++) {
3426*54e60f84SAndroid Build Coastguard Worker             va_TracePrint(trace_ctx, "\t%d", p->RefPicList[i][j]);
3427*54e60f84SAndroid Build Coastguard Worker             if ((j + 1) % 8 == 0)
3428*54e60f84SAndroid Build Coastguard Worker                 TRACE_NEWLINE();
3429*54e60f84SAndroid Build Coastguard Worker         }
3430*54e60f84SAndroid Build Coastguard Worker         TRACE_NEWLINE();
3431*54e60f84SAndroid Build Coastguard Worker     }
3432*54e60f84SAndroid Build Coastguard Worker 
3433*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\tLongSliceFlags.value = %d\n", p->LongSliceFlags.value);
3434*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.LastSliceOfPic = %d\n", p->LongSliceFlags.fields.LastSliceOfPic);
3435*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.dependent_slice_segment_flag = %d\n", p->LongSliceFlags.fields.dependent_slice_segment_flag);
3436*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.slice_type = %d\n", p->LongSliceFlags.fields.slice_type);
3437*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.color_plane_id = %d\n", p->LongSliceFlags.fields.color_plane_id);
3438*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.slice_sao_luma_flag = %d\n", p->LongSliceFlags.fields.slice_sao_luma_flag);
3439*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.slice_sao_chroma_flag = %d\n", p->LongSliceFlags.fields.slice_sao_chroma_flag);
3440*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.mvd_l1_zero_flag = %d\n", p->LongSliceFlags.fields.mvd_l1_zero_flag);
3441*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.cabac_init_flag = %d\n", p->LongSliceFlags.fields.cabac_init_flag);
3442*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.slice_temporal_mvp_enabled_flag = %d\n", p->LongSliceFlags.fields.slice_temporal_mvp_enabled_flag);
3443*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.slice_deblocking_filter_disabled_flag = %d\n", p->LongSliceFlags.fields.slice_deblocking_filter_disabled_flag);
3444*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.collocated_from_l0_flag = %d\n", p->LongSliceFlags.fields.collocated_from_l0_flag);
3445*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.slice_loop_filter_across_slices_enabled_flag = %d\n", p->LongSliceFlags.fields.slice_loop_filter_across_slices_enabled_flag);
3446*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.reserved = %d\n", p->LongSliceFlags.fields.reserved);
3447*54e60f84SAndroid Build Coastguard Worker 
3448*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcollocated_ref_idx = %d\n", p->collocated_ref_idx);
3449*54e60f84SAndroid Build Coastguard Worker 
3450*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_qp_delta = %d\n", p->slice_qp_delta);
3451*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_cb_qp_offset = %d\n", p->slice_cb_qp_offset);
3452*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_cr_qp_offset = %d\n", p->slice_cr_qp_offset);
3453*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_beta_offset_div2 = %d\n", p->slice_beta_offset_div2);
3454*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_tc_offset_div2 = %d\n", p->slice_tc_offset_div2);
3455*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tluma_log2_weight_denom = %d\n", p->luma_log2_weight_denom);
3456*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdelta_chroma_log2_weight_denom = %d\n", p->delta_chroma_log2_weight_denom);
3457*54e60f84SAndroid Build Coastguard Worker 
3458*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_ref_idx_l0_active_minus1 = %d\n", p->num_ref_idx_l0_active_minus1);
3459*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i <=  p->num_ref_idx_l0_active_minus1; i++) {
3460*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t% d ", p->delta_luma_weight_l0[i]);
3461*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\t% d ", p->luma_offset_l0[i]);
3462*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\t% d ", p->delta_chroma_weight_l0[i][0]);
3463*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\t% d ", p->delta_chroma_weight_l0[i][1]);
3464*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\t% d ", p->ChromaOffsetL0[i][0]);
3465*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\t% d ", p->ChromaOffsetL0[i][1]);
3466*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\n");
3467*54e60f84SAndroid Build Coastguard Worker     }
3468*54e60f84SAndroid Build Coastguard Worker 
3469*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_ref_idx_l1_active_minus1 = %d\n", p->num_ref_idx_l1_active_minus1);
3470*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i <=  p->num_ref_idx_l1_active_minus1; i++) {
3471*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t% d ", p->delta_luma_weight_l1[i]);
3472*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\t% d ", p->luma_offset_l1[i]);
3473*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\t% d ", p->delta_chroma_weight_l1[i][0]);
3474*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\t% d ", p->delta_chroma_weight_l1[i][1]);
3475*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\t% d ", p->ChromaOffsetL1[i][0]);
3476*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\t% d ", p->ChromaOffsetL1[i][1]);
3477*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\n");
3478*54e60f84SAndroid Build Coastguard Worker     }
3479*54e60f84SAndroid Build Coastguard Worker 
3480*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tfive_minus_max_num_merge_cand = %d\n", p->five_minus_max_num_merge_cand);
3481*54e60f84SAndroid Build Coastguard Worker 
3482*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_entry_point_offsets = %d\n", p->num_entry_point_offsets);
3483*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tentry_offset_to_subset_array = %d\n", p->entry_offset_to_subset_array);
3484*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_data_num_emu_prevn_bytes = %d\n", p->slice_data_num_emu_prevn_bytes);
3485*54e60f84SAndroid Build Coastguard Worker 
3486*54e60f84SAndroid Build Coastguard Worker     if (isRext && pRext) {
3487*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tluma_offset_l0[15] = \n");
3488*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "");
3489*54e60f84SAndroid Build Coastguard Worker         for (i = 0; i < 15; i++) {
3490*54e60f84SAndroid Build Coastguard Worker             va_TracePrint(trace_ctx, "\t%d", pRext->luma_offset_l0[i]);
3491*54e60f84SAndroid Build Coastguard Worker             if ((i + 1) % 8 == 0)
3492*54e60f84SAndroid Build Coastguard Worker                 TRACE_NEWLINE();
3493*54e60f84SAndroid Build Coastguard Worker         }
3494*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\n");
3495*54e60f84SAndroid Build Coastguard Worker 
3496*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tChromaOffsetL0[15][2] = \n");
3497*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "");
3498*54e60f84SAndroid Build Coastguard Worker         for (i = 0; i < 15; i++) {
3499*54e60f84SAndroid Build Coastguard Worker             for (j = 0; j < 2; j++) {
3500*54e60f84SAndroid Build Coastguard Worker                 va_TracePrint(trace_ctx, "\t%d", pRext->ChromaOffsetL0[i][j]);
3501*54e60f84SAndroid Build Coastguard Worker             }
3502*54e60f84SAndroid Build Coastguard Worker             TRACE_NEWLINE();
3503*54e60f84SAndroid Build Coastguard Worker         }
3504*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\n");
3505*54e60f84SAndroid Build Coastguard Worker 
3506*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tluma_offset_l1[15] = \n");
3507*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "");
3508*54e60f84SAndroid Build Coastguard Worker         for (i = 0; i < 15; i++) {
3509*54e60f84SAndroid Build Coastguard Worker             va_TracePrint(trace_ctx, "\t%d", pRext->luma_offset_l1[i]);
3510*54e60f84SAndroid Build Coastguard Worker             if ((i + 1) % 8 == 0)
3511*54e60f84SAndroid Build Coastguard Worker                 TRACE_NEWLINE();
3512*54e60f84SAndroid Build Coastguard Worker         }
3513*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\n");
3514*54e60f84SAndroid Build Coastguard Worker 
3515*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tChromaOffsetL1[15][2] = \n");
3516*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "");
3517*54e60f84SAndroid Build Coastguard Worker         for (i = 0; i < 15; i++) {
3518*54e60f84SAndroid Build Coastguard Worker             for (j = 0; j < 2; j++) {
3519*54e60f84SAndroid Build Coastguard Worker                 va_TracePrint(trace_ctx, "\t%d", pRext->ChromaOffsetL1[i][j]);
3520*54e60f84SAndroid Build Coastguard Worker             }
3521*54e60f84SAndroid Build Coastguard Worker             TRACE_NEWLINE();
3522*54e60f84SAndroid Build Coastguard Worker         }
3523*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\n");
3524*54e60f84SAndroid Build Coastguard Worker 
3525*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tslice_ext_flags = %d\n", pRext->slice_ext_flags.value);
3526*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tcu_chroma_qp_offset_enabled_flag = %d\n", pRext->slice_ext_flags.bits.cu_chroma_qp_offset_enabled_flag);
3527*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tuse_integer_mv_flag = %d\n", pRext->slice_ext_flags.bits.use_integer_mv_flag);
3528*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\treserved = %d\n", pRext->slice_ext_flags.bits.reserved);
3529*54e60f84SAndroid Build Coastguard Worker 
3530*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tslice_act_y_qp_offset = %d\n", pRext->slice_act_y_qp_offset);
3531*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tslice_act_cb_qp_offset = %d\n", pRext->slice_act_cb_qp_offset);
3532*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tslice_act_cr_qp_offset = %d\n", pRext->slice_act_cr_qp_offset);
3533*54e60f84SAndroid Build Coastguard Worker     }
3534*54e60f84SAndroid Build Coastguard Worker 
3535*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
3536*54e60f84SAndroid Build Coastguard Worker }
3537*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAIQMatrixBufferHEVC(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)3538*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAIQMatrixBufferHEVC(
3539*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
3540*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
3541*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
3542*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
3543*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
3544*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
3545*54e60f84SAndroid Build Coastguard Worker     void *data
3546*54e60f84SAndroid Build Coastguard Worker )
3547*54e60f84SAndroid Build Coastguard Worker {
3548*54e60f84SAndroid Build Coastguard Worker     int i, j;
3549*54e60f84SAndroid Build Coastguard Worker     VAIQMatrixBufferHEVC* p = (VAIQMatrixBufferHEVC*)data;
3550*54e60f84SAndroid Build Coastguard Worker 
3551*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
3552*54e60f84SAndroid Build Coastguard Worker 
3553*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAIQMatrixBufferHEVC\n");
3554*54e60f84SAndroid Build Coastguard Worker 
3555*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tScalingList4x4[6][16]=\n");
3556*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
3557*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 6; i++) {
3558*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 16; j++) {
3559*54e60f84SAndroid Build Coastguard Worker             va_TracePrint(trace_ctx, "\t%d\t", p->ScalingList4x4[i][j]);
3560*54e60f84SAndroid Build Coastguard Worker             if ((j + 1) % 8 == 0)
3561*54e60f84SAndroid Build Coastguard Worker                 TRACE_NEWLINE();
3562*54e60f84SAndroid Build Coastguard Worker         }
3563*54e60f84SAndroid Build Coastguard Worker     }
3564*54e60f84SAndroid Build Coastguard Worker 
3565*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\tScalingList8x8[6][64]=\n");
3566*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
3567*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 6; i++) {
3568*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 64; j++) {
3569*54e60f84SAndroid Build Coastguard Worker             va_TracePrint(trace_ctx, "\t%d", p->ScalingList8x8[i][j]);
3570*54e60f84SAndroid Build Coastguard Worker             if ((j + 1) % 8 == 0)
3571*54e60f84SAndroid Build Coastguard Worker                 TRACE_NEWLINE();
3572*54e60f84SAndroid Build Coastguard Worker         }
3573*54e60f84SAndroid Build Coastguard Worker     }
3574*54e60f84SAndroid Build Coastguard Worker 
3575*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\tScalingList16x16[6][64]=\n");
3576*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
3577*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 6; i++) {
3578*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 64; j++) {
3579*54e60f84SAndroid Build Coastguard Worker             va_TracePrint(trace_ctx, "\t%d", p->ScalingList16x16[i][j]);
3580*54e60f84SAndroid Build Coastguard Worker             if ((j + 1) % 8 == 0)
3581*54e60f84SAndroid Build Coastguard Worker                 TRACE_NEWLINE();
3582*54e60f84SAndroid Build Coastguard Worker         }
3583*54e60f84SAndroid Build Coastguard Worker     }
3584*54e60f84SAndroid Build Coastguard Worker 
3585*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\tScalingList32x32[2][64]=\n");
3586*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
3587*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 2; i++) {
3588*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 64; j++) {
3589*54e60f84SAndroid Build Coastguard Worker             va_TracePrint(trace_ctx, "\t%d", p->ScalingList32x32[i][j]);
3590*54e60f84SAndroid Build Coastguard Worker             if ((j + 1) % 8 == 0)
3591*54e60f84SAndroid Build Coastguard Worker                 TRACE_NEWLINE();
3592*54e60f84SAndroid Build Coastguard Worker         }
3593*54e60f84SAndroid Build Coastguard Worker     }
3594*54e60f84SAndroid Build Coastguard Worker 
3595*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\tScalingListDC16x16[6]=\n");
3596*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
3597*54e60f84SAndroid Build Coastguard Worker     for (j = 0; j < 6; j++) {
3598*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\t%d", p->ScalingListDC16x16[j]);
3599*54e60f84SAndroid Build Coastguard Worker     }
3600*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
3601*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tScalingListDC32x32[2]=\n");
3602*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "");
3603*54e60f84SAndroid Build Coastguard Worker     for (j = 0; j < 2; j++) {
3604*54e60f84SAndroid Build Coastguard Worker         va_TracePrint(trace_ctx, "\t%d", p->ScalingListDC32x32[j]);
3605*54e60f84SAndroid Build Coastguard Worker     }
3606*54e60f84SAndroid Build Coastguard Worker     va_TracePrint(trace_ctx, "\n");
3607*54e60f84SAndroid Build Coastguard Worker 
3608*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
3609*54e60f84SAndroid Build Coastguard Worker }
3610*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAEncSequenceParameterBufferHEVC(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)3611*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAEncSequenceParameterBufferHEVC(
3612*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
3613*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
3614*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
3615*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
3616*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
3617*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
3618*54e60f84SAndroid Build Coastguard Worker     void *data)
3619*54e60f84SAndroid Build Coastguard Worker {
3620*54e60f84SAndroid Build Coastguard Worker     VAEncSequenceParameterBufferHEVC *p = (VAEncSequenceParameterBufferHEVC *)data;
3621*54e60f84SAndroid Build Coastguard Worker 
3622*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
3623*54e60f84SAndroid Build Coastguard Worker 
3624*54e60f84SAndroid Build Coastguard Worker     if (!p)
3625*54e60f84SAndroid Build Coastguard Worker         return;
3626*54e60f84SAndroid Build Coastguard Worker 
3627*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAEncSequenceParameterBufferHEVC\n");
3628*54e60f84SAndroid Build Coastguard Worker 
3629*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tgeneral_profile_idc = %d\n", p->general_profile_idc);
3630*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tgeneral_level_idc = %d\n", p->general_level_idc);
3631*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tgeneral_tier_flag = %d\n", p->general_tier_flag);
3632*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tintra_period = %d\n", p->intra_period);
3633*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tintra_idr_period = %d\n", p->intra_idr_period);
3634*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tip_period = %d\n", p->ip_period);
3635*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbits_per_second = %d\n", p->bits_per_second);
3636*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_width_in_luma_samples = %d\n", p->pic_width_in_luma_samples);
3637*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_height_in_luma_samples = %d\n", p->pic_height_in_luma_samples);
3638*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tchroma_format_idc = %d\n", p->seq_fields.bits.chroma_format_idc);
3639*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tseparate_colour_plane_flag = %d\n", p->seq_fields.bits.separate_colour_plane_flag);
3640*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbit_depth_luma_minus8 = %d\n", p->seq_fields.bits.bit_depth_luma_minus8);
3641*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbit_depth_chroma_minus8 = %d\n", p->seq_fields.bits.bit_depth_chroma_minus8);
3642*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tscaling_list_enabled_flag = %d\n", p->seq_fields.bits.scaling_list_enabled_flag);
3643*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tstrong_intra_smoothing_enabled_flag = %d\n", p->seq_fields.bits.strong_intra_smoothing_enabled_flag);
3644*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tamp_enabled_flag = %d\n", p->seq_fields.bits.amp_enabled_flag);
3645*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsample_adaptive_offset_enabled_flag = %d\n", p->seq_fields.bits.sample_adaptive_offset_enabled_flag);
3646*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpcm_enabled_flag = %d\n", p->seq_fields.bits.pcm_enabled_flag);
3647*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpcm_loop_filter_disabled_flag = %d\n", p->seq_fields.bits.pcm_loop_filter_disabled_flag);
3648*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsps_temporal_mvp_enabled_flag = %d\n", p->seq_fields.bits.sps_temporal_mvp_enabled_flag);
3649*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlow_delay_seq = %d\n", p->seq_fields.bits.low_delay_seq);
3650*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\thierachical_flag = %d\n", p->seq_fields.bits.hierachical_flag);
3651*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treserved_bits = %d\n", p->seq_fields.bits.reserved_bits);
3652*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlog2_min_luma_coding_block_size_minus3 = %d\n", p->log2_min_luma_coding_block_size_minus3);
3653*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlog2_diff_max_min_luma_coding_block_size = %d\n", p->log2_diff_max_min_luma_coding_block_size);
3654*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlog2_min_transform_block_size_minus2 = %d\n", p->log2_min_transform_block_size_minus2);
3655*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlog2_diff_max_min_transform_block_size = %d\n", p->log2_diff_max_min_transform_block_size);
3656*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmax_transform_hierarchy_depth_inter = %d\n", p->max_transform_hierarchy_depth_inter);
3657*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmax_transform_hierarchy_depth_intra = %d\n", p->max_transform_hierarchy_depth_intra);
3658*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpcm_sample_bit_depth_luma_minus1 = %d\n", p->pcm_sample_bit_depth_luma_minus1);
3659*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpcm_sample_bit_depth_chroma_minus1 = %d\n", p->pcm_sample_bit_depth_chroma_minus1);
3660*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlog2_min_pcm_luma_coding_block_size_minus3 = %d\n", p->log2_min_pcm_luma_coding_block_size_minus3);
3661*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlog2_max_pcm_luma_coding_block_size_minus3 = %d\n", p->log2_max_pcm_luma_coding_block_size_minus3);
3662*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tvui_parameters_present_flag = %d\n", p->vui_parameters_present_flag);
3663*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\taspect_ratio_info_present_flag = %d\n", p->vui_fields.bits.aspect_ratio_info_present_flag);
3664*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tneutral_chroma_indication_flag = %d\n", p->vui_fields.bits.neutral_chroma_indication_flag);
3665*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tfield_seq_flag = %d\n", p->vui_fields.bits.field_seq_flag);
3666*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tvui_timing_info_present_flag = %d\n", p->vui_fields.bits.vui_timing_info_present_flag);
3667*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbitstream_restriction_flag = %d\n", p->vui_fields.bits.bitstream_restriction_flag);
3668*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttiles_fixed_structure_flag = %d\n", p->vui_fields.bits.tiles_fixed_structure_flag);
3669*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmotion_vectors_over_pic_boundaries_flag = %d\n", p->vui_fields.bits.motion_vectors_over_pic_boundaries_flag);
3670*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\trestricted_ref_pic_lists_flag = %d\n", p->vui_fields.bits.restricted_ref_pic_lists_flag);
3671*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlog2_max_mv_length_horizontal = %d\n", p->vui_fields.bits.log2_max_mv_length_horizontal);
3672*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlog2_max_mv_length_vertical = %d\n", p->vui_fields.bits.log2_max_mv_length_vertical);
3673*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\taspect_ratio_idc = %d\n", p->aspect_ratio_idc);
3674*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsar_width = %d\n", p->sar_width);
3675*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsar_height = %d\n", p->sar_height);
3676*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tvui_num_units_in_tick = %d\n", p->vui_num_units_in_tick);
3677*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tvui_time_scale = %d\n", p->vui_time_scale);
3678*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmin_spatial_segmentation_idc = %d\n", p->min_spatial_segmentation_idc);
3679*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmax_bytes_per_pic_denom = %d\n", p->max_bytes_per_pic_denom);
3680*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmax_bits_per_min_cu_denom = %d\n", p->max_bits_per_min_cu_denom);
3681*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpalette_mode_enabled_flag = %d\n", p->scc_fields.bits.palette_mode_enabled_flag);
3682*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treserved = %d\n", p->scc_fields.bits.reserved);
3683*54e60f84SAndroid Build Coastguard Worker 
3684*54e60f84SAndroid Build Coastguard Worker     return;
3685*54e60f84SAndroid Build Coastguard Worker }
3686*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAEncPictureParameterBufferHEVC(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)3687*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAEncPictureParameterBufferHEVC(
3688*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
3689*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
3690*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
3691*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
3692*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
3693*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
3694*54e60f84SAndroid Build Coastguard Worker     void *data)
3695*54e60f84SAndroid Build Coastguard Worker {
3696*54e60f84SAndroid Build Coastguard Worker     int i;
3697*54e60f84SAndroid Build Coastguard Worker     VAEncPictureParameterBufferHEVC *p = (VAEncPictureParameterBufferHEVC *)data;
3698*54e60f84SAndroid Build Coastguard Worker 
3699*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
3700*54e60f84SAndroid Build Coastguard Worker 
3701*54e60f84SAndroid Build Coastguard Worker     if (!p)
3702*54e60f84SAndroid Build Coastguard Worker         return;
3703*54e60f84SAndroid Build Coastguard Worker 
3704*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAEncPictureParameterBufferHEVC\n");
3705*54e60f84SAndroid Build Coastguard Worker 
3706*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdecoded_curr_pic.picture_id = 0x%08x\n", p->decoded_curr_pic.picture_id);
3707*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdecoded_curr_pic.pic_order_cnt = %d\n", p->decoded_curr_pic.pic_order_cnt);
3708*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdecoded_curr_pic.flags = %d\n", p->decoded_curr_pic.flags);
3709*54e60f84SAndroid Build Coastguard Worker 
3710*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 15; i ++) {
3711*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\treference_frames[%d].picture_id = 0x%08x\n", i, p->reference_frames[i].picture_id);
3712*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\treference_frames[%d].pic_order_cnt = %d\n", i, p->reference_frames[i].pic_order_cnt);
3713*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\treference_frames[%d].flags = %d\n", i, p->reference_frames[i].flags);
3714*54e60f84SAndroid Build Coastguard Worker     }
3715*54e60f84SAndroid Build Coastguard Worker 
3716*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcoded_buf = %d\n", p->coded_buf);
3717*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcollocated_ref_pic_index = %d\n", p->collocated_ref_pic_index);
3718*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlast_picture = %d\n", p->last_picture);
3719*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_init_qp = %d\n", p->pic_init_qp);
3720*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdiff_cu_qp_delta_depth = %d\n", p->diff_cu_qp_delta_depth);
3721*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_cb_qp_offset = %d\n", p->pps_cb_qp_offset);
3722*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_cr_qp_offset = %d\n", p->pps_cr_qp_offset);
3723*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_tile_columns_minus1 = %d\n", p->num_tile_columns_minus1);
3724*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_tile_rows_minus1 = %d\n", p->num_tile_rows_minus1);
3725*54e60f84SAndroid Build Coastguard Worker 
3726*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 19; i ++) {
3727*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tcolumn_width_minus1[%d] = %d\n", i, p->column_width_minus1[i]);
3728*54e60f84SAndroid Build Coastguard Worker     }
3729*54e60f84SAndroid Build Coastguard Worker 
3730*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 21; i ++) {
3731*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\trow_height_minus1[%d] = %d\n", i, p->row_height_minus1[i]);
3732*54e60f84SAndroid Build Coastguard Worker     }
3733*54e60f84SAndroid Build Coastguard Worker 
3734*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlog2_parallel_merge_level_minus2 = %d\n", p->log2_parallel_merge_level_minus2);
3735*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tctu_max_bitsize_allowed = %d\n", p->ctu_max_bitsize_allowed);
3736*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_ref_idx_l0_default_active_minus1 = %d\n", p->num_ref_idx_l0_default_active_minus1);
3737*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_ref_idx_l1_default_active_minus1 = %d\n", p->num_ref_idx_l1_default_active_minus1);
3738*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_pic_parameter_set_id = %d\n", p->slice_pic_parameter_set_id);
3739*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnal_unit_type = %d\n", p->nal_unit_type);
3740*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tidr_pic_flag = %d\n", p->pic_fields.bits.idr_pic_flag);
3741*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcoding_type = %d\n", p->pic_fields.bits.coding_type);
3742*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treference_pic_flag = %d\n", p->pic_fields.bits.reference_pic_flag);
3743*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdependent_slice_segments_enabled_flag = %d\n", p->pic_fields.bits.dependent_slice_segments_enabled_flag);
3744*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsign_data_hiding_enabled_flag = %d\n", p->pic_fields.bits.sign_data_hiding_enabled_flag);
3745*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tconstrained_intra_pred_flag = %d\n", p->pic_fields.bits.constrained_intra_pred_flag);
3746*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttransform_skip_enabled_flag = %d\n", p->pic_fields.bits.transform_skip_enabled_flag);
3747*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcu_qp_delta_enabled_flag = %d\n", p->pic_fields.bits.cu_qp_delta_enabled_flag);
3748*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tweighted_pred_flag = %d\n", p->pic_fields.bits.weighted_pred_flag);
3749*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tweighted_bipred_flag = %d\n", p->pic_fields.bits.weighted_bipred_flag);
3750*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttransquant_bypass_enabled_flag = %d\n", p->pic_fields.bits.transquant_bypass_enabled_flag);
3751*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttiles_enabled_flag = %d\n", p->pic_fields.bits.tiles_enabled_flag);
3752*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tentropy_coding_sync_enabled_flag = %d\n", p->pic_fields.bits.entropy_coding_sync_enabled_flag);
3753*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tloop_filter_across_tiles_enabled_flag = %d\n", p->pic_fields.bits.loop_filter_across_tiles_enabled_flag);
3754*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_loop_filter_across_slices_enabled_flag = %d\n", p->pic_fields.bits.pps_loop_filter_across_slices_enabled_flag);
3755*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tscaling_list_data_present_flag = %d\n", p->pic_fields.bits.scaling_list_data_present_flag);
3756*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tscreen_content_flag = %d\n", p->pic_fields.bits.screen_content_flag);
3757*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tenable_gpu_weighted_prediction = %d\n", p->pic_fields.bits.enable_gpu_weighted_prediction);
3758*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tno_output_of_prior_pics_flag = %d\n", p->pic_fields.bits.no_output_of_prior_pics_flag);
3759*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treserved = %d\n", p->pic_fields.bits.reserved);
3760*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\thierarchical_level_plus1 = %d\n", p->hierarchical_level_plus1);
3761*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tva_byte_reserved = %d\n", p->va_byte_reserved);
3762*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpps_curr_pic_ref_enabled_flag = %d\n", p->scc_fields.bits.pps_curr_pic_ref_enabled_flag);
3763*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treserved = %d\n", p->scc_fields.bits.reserved);
3764*54e60f84SAndroid Build Coastguard Worker 
3765*54e60f84SAndroid Build Coastguard Worker     return;
3766*54e60f84SAndroid Build Coastguard Worker }
3767*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAEncSliceParameterBufferHEVC(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)3768*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAEncSliceParameterBufferHEVC(
3769*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
3770*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
3771*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
3772*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
3773*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
3774*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
3775*54e60f84SAndroid Build Coastguard Worker     void *data)
3776*54e60f84SAndroid Build Coastguard Worker {
3777*54e60f84SAndroid Build Coastguard Worker     int i;
3778*54e60f84SAndroid Build Coastguard Worker     VAEncSliceParameterBufferHEVC *p = (VAEncSliceParameterBufferHEVC *)data;
3779*54e60f84SAndroid Build Coastguard Worker 
3780*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
3781*54e60f84SAndroid Build Coastguard Worker 
3782*54e60f84SAndroid Build Coastguard Worker     if (!p)
3783*54e60f84SAndroid Build Coastguard Worker         return;
3784*54e60f84SAndroid Build Coastguard Worker 
3785*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAEncSliceParameterBufferHEVC\n");
3786*54e60f84SAndroid Build Coastguard Worker 
3787*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_segment_address = %d\n", p->slice_segment_address);
3788*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_ctu_in_slice = %d\n", p->num_ctu_in_slice);
3789*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_type = %d\n", p->slice_type);
3790*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_pic_parameter_set_id = %d\n", p->slice_pic_parameter_set_id);
3791*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_ref_idx_l0_active_minus1 = %d\n", p->num_ref_idx_l0_active_minus1);
3792*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_ref_idx_l1_active_minus1 = %d\n", p->num_ref_idx_l1_active_minus1);
3793*54e60f84SAndroid Build Coastguard Worker 
3794*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 15; i ++) {
3795*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tref_pic_list0[%d].picture_id = 0x%08x\n", i, p->ref_pic_list0[i].picture_id);
3796*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tref_pic_list0[%d].pic_order_cnt = %d\n", i, p->ref_pic_list0[i].pic_order_cnt);
3797*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tref_pic_list0[%d].flags = %d\n", i, p->ref_pic_list0[i].flags);
3798*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tref_pic_list1[%d].picture_id = 0x%08x\n", i, p->ref_pic_list1[i].picture_id);
3799*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tref_pic_list1[%d].pic_order_cnt = %d\n", i, p->ref_pic_list1[i].pic_order_cnt);
3800*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tref_pic_list1[%d].flags = %d\n", i, p->ref_pic_list1[i].flags);
3801*54e60f84SAndroid Build Coastguard Worker     }
3802*54e60f84SAndroid Build Coastguard Worker 
3803*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tluma_log2_weight_denom = %d\n", p->luma_log2_weight_denom);
3804*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdelta_chroma_log2_weight_denom = %d\n", p->delta_chroma_log2_weight_denom);
3805*54e60f84SAndroid Build Coastguard Worker 
3806*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 15; i ++) {
3807*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tdelta_luma_weight_l0[%d] = %d\n", i, p->delta_luma_weight_l0[i]);
3808*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tdelta_luma_weight_l1[%d] = %d\n", i, p->delta_luma_weight_l1[i]);
3809*54e60f84SAndroid Build Coastguard Worker     }
3810*54e60f84SAndroid Build Coastguard Worker 
3811*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 15; i ++) {
3812*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tluma_offset_l0[%d] = %d\n", i, p->luma_offset_l0[i]);
3813*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tluma_offset_l1[%d] = %d\n", i, p->luma_offset_l1[i]);
3814*54e60f84SAndroid Build Coastguard Worker     }
3815*54e60f84SAndroid Build Coastguard Worker 
3816*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 15; i ++) {
3817*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tdelta_chroma_weight_l0[%d][0] = %d\n", i, p->delta_chroma_weight_l0[i][0]);
3818*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tdelta_chroma_weight_l0[%d][1] = %d\n", i, p->delta_chroma_weight_l0[i][1]);
3819*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tdelta_chroma_weight_l1[%d][0] = %d\n", i, p->delta_chroma_weight_l1[i][0]);
3820*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tdelta_chroma_weight_l1[%d][1] = %d\n", i, p->delta_chroma_weight_l1[i][1]);
3821*54e60f84SAndroid Build Coastguard Worker     }
3822*54e60f84SAndroid Build Coastguard Worker 
3823*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 15; i ++) {
3824*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tchroma_offset_l0[%d][0] = %d\n", i, p->chroma_offset_l0[i][0]);
3825*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tchroma_offset_l0[%d][1] = %d\n", i, p->chroma_offset_l0[i][1]);
3826*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tchroma_offset_l1[%d][0] = %d\n", i, p->chroma_offset_l1[i][0]);
3827*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tchroma_offset_l1[%d][1] = %d\n", i, p->chroma_offset_l1[i][1]);
3828*54e60f84SAndroid Build Coastguard Worker     }
3829*54e60f84SAndroid Build Coastguard Worker 
3830*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmax_num_merge_cand = %d\n", p->max_num_merge_cand);
3831*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_qp_delta = %d\n", p->slice_qp_delta);
3832*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_cb_qp_offset = %d\n", p->slice_cb_qp_offset);
3833*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_cr_qp_offset = %d\n", p->slice_cr_qp_offset);
3834*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_beta_offset_div2 = %d\n", p->slice_beta_offset_div2);
3835*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_tc_offset_div2 = %d\n", p->slice_tc_offset_div2);
3836*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlast_slice_of_pic_flag = %d\n", p->slice_fields.bits.last_slice_of_pic_flag);
3837*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdependent_slice_segment_flag = %d\n", p->slice_fields.bits.dependent_slice_segment_flag);
3838*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcolour_plane_id = %d\n", p->slice_fields.bits.colour_plane_id);
3839*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_temporal_mvp_enabled_flag = %d\n", p->slice_fields.bits.slice_temporal_mvp_enabled_flag);
3840*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_sao_luma_flag = %d\n", p->slice_fields.bits.slice_sao_luma_flag);
3841*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_sao_chroma_flag = %d\n", p->slice_fields.bits.slice_sao_chroma_flag);
3842*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_ref_idx_active_override_flag = %d\n", p->slice_fields.bits.num_ref_idx_active_override_flag);
3843*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmvd_l1_zero_flag = %d\n", p->slice_fields.bits.mvd_l1_zero_flag);
3844*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcabac_init_flag = %d\n", p->slice_fields.bits.cabac_init_flag);
3845*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_deblocking_filter_disabled_flag = %d\n", p->slice_fields.bits.slice_deblocking_filter_disabled_flag);
3846*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_loop_filter_across_slices_enabled_flag = %d\n", p->slice_fields.bits.slice_loop_filter_across_slices_enabled_flag);
3847*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcollocated_from_l0_flag = %d\n", p->slice_fields.bits.collocated_from_l0_flag);
3848*54e60f84SAndroid Build Coastguard Worker 
3849*54e60f84SAndroid Build Coastguard Worker     return;
3850*54e60f84SAndroid Build Coastguard Worker }
3851*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAPictureParameterBufferH264(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)3852*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAPictureParameterBufferH264(
3853*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
3854*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
3855*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
3856*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
3857*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
3858*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
3859*54e60f84SAndroid Build Coastguard Worker     void *data)
3860*54e60f84SAndroid Build Coastguard Worker {
3861*54e60f84SAndroid Build Coastguard Worker     int i;
3862*54e60f84SAndroid Build Coastguard Worker     VAPictureParameterBufferH264 *p = (VAPictureParameterBufferH264*)data;
3863*54e60f84SAndroid Build Coastguard Worker 
3864*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
3865*54e60f84SAndroid Build Coastguard Worker 
3866*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAPictureParameterBufferH264\n");
3867*54e60f84SAndroid Build Coastguard Worker 
3868*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tCurrPic.picture_id = 0x%08x\n", p->CurrPic.picture_id);
3869*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tCurrPic.frame_idx = %u\n", p->CurrPic.frame_idx);
3870*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tCurrPic.flags = 0x%08x\n", p->CurrPic.flags);
3871*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tCurrPic.TopFieldOrderCnt = %d\n", p->CurrPic.TopFieldOrderCnt);
3872*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tCurrPic.BottomFieldOrderCnt = %d\n", p->CurrPic.BottomFieldOrderCnt);
3873*54e60f84SAndroid Build Coastguard Worker 
3874*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tReferenceFrames (TopFieldOrderCnt-BottomFieldOrderCnt-picture_id-frame_idx-flags):\n");
3875*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 16; i++) {
3876*54e60f84SAndroid Build Coastguard Worker         if ((p->ReferenceFrames[i].picture_id != VA_INVALID_SURFACE) &&
3877*54e60f84SAndroid Build Coastguard Worker             ((p->ReferenceFrames[i].flags & VA_PICTURE_H264_INVALID) == 0)) {
3878*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t\t%08d-%08d-0x%08x-%08u-0x%08x\n",
3879*54e60f84SAndroid Build Coastguard Worker                         p->ReferenceFrames[i].TopFieldOrderCnt,
3880*54e60f84SAndroid Build Coastguard Worker                         p->ReferenceFrames[i].BottomFieldOrderCnt,
3881*54e60f84SAndroid Build Coastguard Worker                         p->ReferenceFrames[i].picture_id,
3882*54e60f84SAndroid Build Coastguard Worker                         p->ReferenceFrames[i].frame_idx,
3883*54e60f84SAndroid Build Coastguard Worker                         p->ReferenceFrames[i].flags);
3884*54e60f84SAndroid Build Coastguard Worker         } else
3885*54e60f84SAndroid Build Coastguard Worker             break;
3886*54e60f84SAndroid Build Coastguard Worker     }
3887*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpicture_width_in_mbs_minus1 = %d\n", p->picture_width_in_mbs_minus1);
3888*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpicture_height_in_mbs_minus1 = %d\n", p->picture_height_in_mbs_minus1);
3889*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbit_depth_luma_minus8 = %d\n", p->bit_depth_luma_minus8);
3890*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbit_depth_chroma_minus8 = %d\n", p->bit_depth_chroma_minus8);
3891*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_ref_frames = %d\n", p->num_ref_frames);
3892*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tseq fields = %d\n", p->seq_fields.value);
3893*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tchroma_format_idc = %d\n", p->seq_fields.bits.chroma_format_idc);
3894*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tresidual_colour_transform_flag = %d\n", p->seq_fields.bits.residual_colour_transform_flag);
3895*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_mbs_only_flag = %d\n", p->seq_fields.bits.frame_mbs_only_flag);
3896*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmb_adaptive_frame_field_flag = %d\n", p->seq_fields.bits.mb_adaptive_frame_field_flag);
3897*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdirect_8x8_inference_flag = %d\n", p->seq_fields.bits.direct_8x8_inference_flag);
3898*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tMinLumaBiPredSize8x8 = %d\n", p->seq_fields.bits.MinLumaBiPredSize8x8);
3899*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_init_qp_minus26 = %d\n", p->pic_init_qp_minus26);
3900*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_init_qs_minus26 = %d\n", p->pic_init_qs_minus26);
3901*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tchroma_qp_index_offset = %d\n", p->chroma_qp_index_offset);
3902*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsecond_chroma_qp_index_offset = %d\n", p->second_chroma_qp_index_offset);
3903*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_fields = 0x%03x\n", p->pic_fields.value);
3904*54e60f84SAndroid Build Coastguard Worker     va_TraceFlagIfNotZero(trace_ctx, "\t\tentropy_coding_mode_flag", p->pic_fields.bits.entropy_coding_mode_flag);
3905*54e60f84SAndroid Build Coastguard Worker     va_TraceFlagIfNotZero(trace_ctx, "\t\tweighted_pred_flag", p->pic_fields.bits.weighted_pred_flag);
3906*54e60f84SAndroid Build Coastguard Worker     va_TraceFlagIfNotZero(trace_ctx, "\t\tweighted_bipred_idc", p->pic_fields.bits.weighted_bipred_idc);
3907*54e60f84SAndroid Build Coastguard Worker     va_TraceFlagIfNotZero(trace_ctx, "\t\ttransform_8x8_mode_flag", p->pic_fields.bits.transform_8x8_mode_flag);
3908*54e60f84SAndroid Build Coastguard Worker     va_TraceFlagIfNotZero(trace_ctx, "\t\tfield_pic_flag", p->pic_fields.bits.field_pic_flag);
3909*54e60f84SAndroid Build Coastguard Worker     va_TraceFlagIfNotZero(trace_ctx, "\t\tconstrained_intra_pred_flag", p->pic_fields.bits.constrained_intra_pred_flag);
3910*54e60f84SAndroid Build Coastguard Worker     va_TraceFlagIfNotZero(trace_ctx, "\t\tpic_order_present_flag", p->pic_fields.bits.pic_order_present_flag);
3911*54e60f84SAndroid Build Coastguard Worker     va_TraceFlagIfNotZero(trace_ctx, "\t\tdeblocking_filter_control_present_flag", p->pic_fields.bits.deblocking_filter_control_present_flag);
3912*54e60f84SAndroid Build Coastguard Worker     va_TraceFlagIfNotZero(trace_ctx, "\t\tredundant_pic_cnt_present_flag", p->pic_fields.bits.redundant_pic_cnt_present_flag);
3913*54e60f84SAndroid Build Coastguard Worker     va_TraceFlagIfNotZero(trace_ctx, "\t\treference_pic_flag", p->pic_fields.bits.reference_pic_flag);
3914*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_num = %d\n", p->frame_num);
3915*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
3916*54e60f84SAndroid Build Coastguard Worker 
3917*54e60f84SAndroid Build Coastguard Worker     return;
3918*54e60f84SAndroid Build Coastguard Worker }
3919*54e60f84SAndroid Build Coastguard Worker 
va_TraceVASliceParameterBufferH264(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)3920*54e60f84SAndroid Build Coastguard Worker static void va_TraceVASliceParameterBufferH264(
3921*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
3922*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
3923*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
3924*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
3925*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
3926*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
3927*54e60f84SAndroid Build Coastguard Worker     void *data)
3928*54e60f84SAndroid Build Coastguard Worker {
3929*54e60f84SAndroid Build Coastguard Worker     int i;
3930*54e60f84SAndroid Build Coastguard Worker     VASliceParameterBufferH264* p = (VASliceParameterBufferH264*)data;
3931*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
3932*54e60f84SAndroid Build Coastguard Worker 
3933*54e60f84SAndroid Build Coastguard Worker     trace_ctx->trace_slice_no++;
3934*54e60f84SAndroid Build Coastguard Worker     trace_ctx->trace_slice_size = p->slice_data_size;
3935*54e60f84SAndroid Build Coastguard Worker 
3936*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VASliceParameterBufferH264\n");
3937*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_data_size = %u\n", p->slice_data_size);
3938*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_data_offset = %u\n", p->slice_data_offset);
3939*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_data_flag = 0x%08x\n", p->slice_data_flag);
3940*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_data_bit_offset = %d\n", p->slice_data_bit_offset);
3941*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tfirst_mb_in_slice = %d\n", p->first_mb_in_slice);
3942*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_type = %d\n", p->slice_type);
3943*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdirect_spatial_mv_pred_flag = %d\n", p->direct_spatial_mv_pred_flag);
3944*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_ref_idx_l0_active_minus1 = %d\n", p->num_ref_idx_l0_active_minus1);
3945*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_ref_idx_l1_active_minus1 = %d\n", p->num_ref_idx_l1_active_minus1);
3946*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcabac_init_idc = %d\n", p->cabac_init_idc);
3947*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_qp_delta = %d\n", p->slice_qp_delta);
3948*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdisable_deblocking_filter_idc = %d\n", p->disable_deblocking_filter_idc);
3949*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_alpha_c0_offset_div2 = %d\n", p->slice_alpha_c0_offset_div2);
3950*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_beta_offset_div2 = %d\n", p->slice_beta_offset_div2);
3951*54e60f84SAndroid Build Coastguard Worker 
3952*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tRefPicList0 =\n");
3953*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 32; i++) {
3954*54e60f84SAndroid Build Coastguard Worker         if ((p->RefPicList0[i].picture_id != VA_INVALID_SURFACE) &&
3955*54e60f84SAndroid Build Coastguard Worker             ((p->RefPicList0[i].flags & VA_PICTURE_H264_INVALID) == 0))
3956*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "%08d-%08d-0x%08x-%08d-0x%08x\n", p->RefPicList0[i].TopFieldOrderCnt, p->RefPicList0[i].BottomFieldOrderCnt, p->RefPicList0[i].picture_id, p->RefPicList0[i].frame_idx,  p->RefPicList0[i].flags);
3957*54e60f84SAndroid Build Coastguard Worker         else
3958*54e60f84SAndroid Build Coastguard Worker             break;
3959*54e60f84SAndroid Build Coastguard Worker     }
3960*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tRefPicList1 =\n");
3961*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 32; i++) {
3962*54e60f84SAndroid Build Coastguard Worker         if ((p->RefPicList1[i].picture_id != VA_INVALID_SURFACE) &&
3963*54e60f84SAndroid Build Coastguard Worker             ((p->RefPicList1[i].flags & VA_PICTURE_H264_INVALID) == 0))
3964*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "%08d-%08d-0x%08x-%08d-0x%08x\n", p->RefPicList1[i].TopFieldOrderCnt, p->RefPicList1[i].BottomFieldOrderCnt, p->RefPicList1[i].picture_id, p->RefPicList1[i].frame_idx, p->RefPicList1[i].flags);
3965*54e60f84SAndroid Build Coastguard Worker         else
3966*54e60f84SAndroid Build Coastguard Worker             break;
3967*54e60f84SAndroid Build Coastguard Worker     }
3968*54e60f84SAndroid Build Coastguard Worker 
3969*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tluma_log2_weight_denom = %d\n", p->luma_log2_weight_denom);
3970*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tchroma_log2_weight_denom = %d\n", p->chroma_log2_weight_denom);
3971*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tluma_weight_l0_flag = %d\n", p->luma_weight_l0_flag);
3972*54e60f84SAndroid Build Coastguard Worker 
3973*54e60f84SAndroid Build Coastguard Worker     for (i = 0; (i <= p->num_ref_idx_l0_active_minus1) && (i < 32); i++) {
3974*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\t%d\t%d\n",
3975*54e60f84SAndroid Build Coastguard Worker                     p->luma_weight_l0[i],
3976*54e60f84SAndroid Build Coastguard Worker                     p->luma_offset_l0[i]);
3977*54e60f84SAndroid Build Coastguard Worker     }
3978*54e60f84SAndroid Build Coastguard Worker 
3979*54e60f84SAndroid Build Coastguard Worker 
3980*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tchroma_weight_l0_flag = %d\n", p->chroma_weight_l0_flag);
3981*54e60f84SAndroid Build Coastguard Worker 
3982*54e60f84SAndroid Build Coastguard Worker     for (i = 0; (i <= p->num_ref_idx_l0_active_minus1) && (i < 32); i++) {
3983*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\t%d\t%d\t%d\t%d\n",
3984*54e60f84SAndroid Build Coastguard Worker                     p->chroma_weight_l0[i][0],
3985*54e60f84SAndroid Build Coastguard Worker                     p->chroma_offset_l0[i][0],
3986*54e60f84SAndroid Build Coastguard Worker                     p->chroma_weight_l0[i][1],
3987*54e60f84SAndroid Build Coastguard Worker                     p->chroma_offset_l0[i][1]);
3988*54e60f84SAndroid Build Coastguard Worker     }
3989*54e60f84SAndroid Build Coastguard Worker 
3990*54e60f84SAndroid Build Coastguard Worker 
3991*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tluma_weight_l1_flag = %d\n", p->luma_weight_l1_flag);
3992*54e60f84SAndroid Build Coastguard Worker 
3993*54e60f84SAndroid Build Coastguard Worker     for (i = 0; (i <=  p->num_ref_idx_l1_active_minus1) && (i < 32); i++) {
3994*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\t%d\t%d\n",
3995*54e60f84SAndroid Build Coastguard Worker                     p->luma_weight_l1[i],
3996*54e60f84SAndroid Build Coastguard Worker                     p->luma_offset_l1[i]);
3997*54e60f84SAndroid Build Coastguard Worker     }
3998*54e60f84SAndroid Build Coastguard Worker 
3999*54e60f84SAndroid Build Coastguard Worker 
4000*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tchroma_weight_l1_flag = %d\n", p->chroma_weight_l1_flag);
4001*54e60f84SAndroid Build Coastguard Worker 
4002*54e60f84SAndroid Build Coastguard Worker     for (i = 0; (i <= p->num_ref_idx_l1_active_minus1) && (i < 32); i++) {
4003*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\t%d\t%d\t%d\t%d\n",
4004*54e60f84SAndroid Build Coastguard Worker                     p->chroma_weight_l1[i][0],
4005*54e60f84SAndroid Build Coastguard Worker                     p->chroma_offset_l1[i][0],
4006*54e60f84SAndroid Build Coastguard Worker                     p->chroma_weight_l1[i][1],
4007*54e60f84SAndroid Build Coastguard Worker                     p->chroma_offset_l1[i][1]);
4008*54e60f84SAndroid Build Coastguard Worker 
4009*54e60f84SAndroid Build Coastguard Worker     }
4010*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
4011*54e60f84SAndroid Build Coastguard Worker }
4012*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAIQMatrixBufferH264(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)4013*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAIQMatrixBufferH264(
4014*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
4015*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
4016*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
4017*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
4018*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
4019*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
4020*54e60f84SAndroid Build Coastguard Worker     void *data
4021*54e60f84SAndroid Build Coastguard Worker )
4022*54e60f84SAndroid Build Coastguard Worker {
4023*54e60f84SAndroid Build Coastguard Worker     int i, j;
4024*54e60f84SAndroid Build Coastguard Worker     VAIQMatrixBufferH264* p = (VAIQMatrixBufferH264*)data;
4025*54e60f84SAndroid Build Coastguard Worker     FILE *fp = NULL;
4026*54e60f84SAndroid Build Coastguard Worker 
4027*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
4028*54e60f84SAndroid Build Coastguard Worker 
4029*54e60f84SAndroid Build Coastguard Worker     if (trace_ctx->plog_file)
4030*54e60f84SAndroid Build Coastguard Worker         fp = trace_ctx->plog_file->fp_log;
4031*54e60f84SAndroid Build Coastguard Worker 
4032*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAIQMatrixBufferH264\n");
4033*54e60f84SAndroid Build Coastguard Worker 
4034*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tScalingList4x4[6][16]=\n");
4035*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 6; i++) {
4036*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 16; j++) {
4037*54e60f84SAndroid Build Coastguard Worker             if (fp) {
4038*54e60f84SAndroid Build Coastguard Worker                 fprintf(fp, "\t%d", p->ScalingList4x4[i][j]);
4039*54e60f84SAndroid Build Coastguard Worker                 if ((j + 1) % 8 == 0)
4040*54e60f84SAndroid Build Coastguard Worker                     fprintf(fp, "\n");
4041*54e60f84SAndroid Build Coastguard Worker             }
4042*54e60f84SAndroid Build Coastguard Worker         }
4043*54e60f84SAndroid Build Coastguard Worker     }
4044*54e60f84SAndroid Build Coastguard Worker 
4045*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tScalingList8x8[2][64]=\n");
4046*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 2; i++) {
4047*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 64; j++) {
4048*54e60f84SAndroid Build Coastguard Worker             if (fp) {
4049*54e60f84SAndroid Build Coastguard Worker                 fprintf(fp, "\t%d", p->ScalingList8x8[i][j]);
4050*54e60f84SAndroid Build Coastguard Worker                 if ((j + 1) % 8 == 0)
4051*54e60f84SAndroid Build Coastguard Worker                     fprintf(fp, "\n");
4052*54e60f84SAndroid Build Coastguard Worker             }
4053*54e60f84SAndroid Build Coastguard Worker         }
4054*54e60f84SAndroid Build Coastguard Worker     }
4055*54e60f84SAndroid Build Coastguard Worker 
4056*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
4057*54e60f84SAndroid Build Coastguard Worker }
4058*54e60f84SAndroid Build Coastguard Worker 
4059*54e60f84SAndroid Build Coastguard Worker 
4060*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAEncSequenceParameterBufferH264(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)4061*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAEncSequenceParameterBufferH264(
4062*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
4063*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
4064*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
4065*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
4066*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
4067*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
4068*54e60f84SAndroid Build Coastguard Worker     void *data)
4069*54e60f84SAndroid Build Coastguard Worker {
4070*54e60f84SAndroid Build Coastguard Worker     VAEncSequenceParameterBufferH264 *p = (VAEncSequenceParameterBufferH264 *)data;
4071*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
4072*54e60f84SAndroid Build Coastguard Worker     unsigned int i;
4073*54e60f84SAndroid Build Coastguard Worker 
4074*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAEncSequenceParameterBufferH264\n");
4075*54e60f84SAndroid Build Coastguard Worker 
4076*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tseq_parameter_set_id = %d\n", p->seq_parameter_set_id);
4077*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlevel_idc = %d\n", p->level_idc);
4078*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tintra_period = %u\n", p->intra_period);
4079*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tintra_idr_period = %u\n", p->intra_idr_period);
4080*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tip_period = %u\n", p->ip_period);
4081*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbits_per_second = %u\n", p->bits_per_second);
4082*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmax_num_ref_frames = %u\n", p->max_num_ref_frames);
4083*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpicture_width_in_mbs = %d\n", p->picture_width_in_mbs);
4084*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpicture_height_in_mbs = %d\n", p->picture_height_in_mbs);
4085*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tchroma_format_idc = %d\n", p->seq_fields.bits.chroma_format_idc);
4086*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_mbs_only_flag = %d\n", p->seq_fields.bits.frame_mbs_only_flag);
4087*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmb_adaptive_frame_field_flag = %d\n", p->seq_fields.bits.mb_adaptive_frame_field_flag);
4088*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tseq_scaling_matrix_present_flag = %d\n", p->seq_fields.bits.seq_scaling_matrix_present_flag);
4089*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdirect_8x8_inference_flag = %d\n", p->seq_fields.bits.direct_8x8_inference_flag);
4090*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlog2_max_frame_num_minus4 = %d\n", p->seq_fields.bits.log2_max_frame_num_minus4);
4091*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_order_cnt_type = %d\n", p->seq_fields.bits.pic_order_cnt_type);
4092*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlog2_max_pic_order_cnt_lsb_minus4 = %d\n", p->seq_fields.bits.log2_max_pic_order_cnt_lsb_minus4);
4093*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdelta_pic_order_always_zero_flag = %d\n", p->seq_fields.bits.delta_pic_order_always_zero_flag);
4094*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbit_depth_luma_minus8 = %d\n", p->bit_depth_luma_minus8);
4095*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbit_depth_chroma_minus8 = %d\n", p->bit_depth_chroma_minus8);
4096*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_ref_frames_in_pic_order_cnt_cycle = %d\n", p->num_ref_frames_in_pic_order_cnt_cycle);
4097*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\toffset_for_non_ref_pic = %d\n", p->offset_for_non_ref_pic);
4098*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\toffset_for_top_to_bottom_field = %d\n", p->offset_for_top_to_bottom_field);
4099*54e60f84SAndroid Build Coastguard Worker     for (i = 0; (i < p->max_num_ref_frames) && (i < 32); ++i)
4100*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\toffset_for_ref_frame[%d] = %d\n", i, p->offset_for_ref_frame[i]);
4101*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_cropping_flag = %d\n", p->frame_cropping_flag);
4102*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_crop_left_offset = %u\n", p->frame_crop_left_offset);
4103*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_crop_right_offset = %u\n", p->frame_crop_right_offset);
4104*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_crop_top_offset = %u\n", p->frame_crop_top_offset);
4105*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_crop_bottom_offset = %u\n", p->frame_crop_bottom_offset);
4106*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tvui_parameters_present_flag = %d\n", p->vui_parameters_present_flag);
4107*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\taspect_ratio_info_present_flag = %d\n", p->vui_fields.bits.aspect_ratio_info_present_flag);
4108*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttiming_info_present_flag = %d\n", p->vui_fields.bits.timing_info_present_flag);
4109*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbitstream_restriction_flag = %d\n", p->vui_fields.bits.bitstream_restriction_flag);
4110*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlog2_max_mv_length_horizontal = %d\n", p->vui_fields.bits.log2_max_mv_length_horizontal);
4111*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlog2_max_mv_length_vertical = %d\n", p->vui_fields.bits.log2_max_mv_length_vertical);
4112*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\taspect_ratio_idc = %d\n", p->aspect_ratio_idc);
4113*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsar_width = %u\n", p->sar_width);
4114*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsar_height = %u\n", p->sar_height);
4115*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_units_in_tick = %u\n", p->num_units_in_tick);
4116*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttime_scale = %u\n", p->time_scale);
4117*54e60f84SAndroid Build Coastguard Worker 
4118*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
4119*54e60f84SAndroid Build Coastguard Worker 
4120*54e60f84SAndroid Build Coastguard Worker     return;
4121*54e60f84SAndroid Build Coastguard Worker }
4122*54e60f84SAndroid Build Coastguard Worker 
4123*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAEncPictureParameterBufferH264(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)4124*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAEncPictureParameterBufferH264(
4125*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
4126*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
4127*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
4128*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
4129*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
4130*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
4131*54e60f84SAndroid Build Coastguard Worker     void *data)
4132*54e60f84SAndroid Build Coastguard Worker {
4133*54e60f84SAndroid Build Coastguard Worker     VAEncPictureParameterBufferH264 *p = (VAEncPictureParameterBufferH264 *)data;
4134*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
4135*54e60f84SAndroid Build Coastguard Worker     int i;
4136*54e60f84SAndroid Build Coastguard Worker 
4137*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAEncPictureParameterBufferH264\n");
4138*54e60f84SAndroid Build Coastguard Worker 
4139*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tCurrPic.picture_id = 0x%08x\n", p->CurrPic.picture_id);
4140*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tCurrPic.frame_idx = %u\n", p->CurrPic.frame_idx);
4141*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tCurrPic.flags = 0x%08x\n", p->CurrPic.flags);
4142*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tCurrPic.TopFieldOrderCnt = %d\n", p->CurrPic.TopFieldOrderCnt);
4143*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tCurrPic.BottomFieldOrderCnt = %d\n", p->CurrPic.BottomFieldOrderCnt);
4144*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tReferenceFrames (TopFieldOrderCnt-BottomFieldOrderCnt-picture_id-frame_idx-flags):\n");
4145*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 16; i++) {
4146*54e60f84SAndroid Build Coastguard Worker         if ((p->ReferenceFrames[i].picture_id != VA_INVALID_SURFACE) &&
4147*54e60f84SAndroid Build Coastguard Worker             ((p->ReferenceFrames[i].flags & VA_PICTURE_H264_INVALID) == 0)) {
4148*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t\t%08d-%08d-0x%08x-%08u-0x%08x\n",
4149*54e60f84SAndroid Build Coastguard Worker                         p->ReferenceFrames[i].TopFieldOrderCnt,
4150*54e60f84SAndroid Build Coastguard Worker                         p->ReferenceFrames[i].BottomFieldOrderCnt,
4151*54e60f84SAndroid Build Coastguard Worker                         p->ReferenceFrames[i].picture_id,
4152*54e60f84SAndroid Build Coastguard Worker                         p->ReferenceFrames[i].frame_idx,
4153*54e60f84SAndroid Build Coastguard Worker                         p->ReferenceFrames[i].flags
4154*54e60f84SAndroid Build Coastguard Worker                        );
4155*54e60f84SAndroid Build Coastguard Worker         } else
4156*54e60f84SAndroid Build Coastguard Worker             break;
4157*54e60f84SAndroid Build Coastguard Worker     }
4158*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcoded_buf = %08x\n", p->coded_buf);
4159*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_parameter_set_id = %d\n", p->pic_parameter_set_id);
4160*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tseq_parameter_set_id = %d\n", p->seq_parameter_set_id);
4161*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlast_picture = 0x%08x\n", p->last_picture);
4162*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_num = %d\n", p->frame_num);
4163*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_init_qp = %d\n", p->pic_init_qp);
4164*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_ref_idx_l0_active_minus1 = %d\n", p->num_ref_idx_l0_active_minus1);
4165*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_ref_idx_l1_active_minus1 = %d\n", p->num_ref_idx_l1_active_minus1);
4166*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tchroma_qp_index_offset = %d\n", p->chroma_qp_index_offset);
4167*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsecond_chroma_qp_index_offset = %d\n", p->second_chroma_qp_index_offset);
4168*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_fields = 0x%03x\n", p->pic_fields.value);
4169*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tidr_pic_flag = %d\n", p->pic_fields.bits.idr_pic_flag);
4170*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treference_pic_flag = %d\n", p->pic_fields.bits.reference_pic_flag);
4171*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tentropy_coding_mode_flag = %d\n", p->pic_fields.bits.entropy_coding_mode_flag);
4172*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tweighted_pred_flag = %d\n", p->pic_fields.bits.weighted_pred_flag);
4173*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tweighted_bipred_idc = %d\n", p->pic_fields.bits.weighted_bipred_idc);
4174*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tconstrained_intra_pred_flag = %d\n", p->pic_fields.bits.constrained_intra_pred_flag);
4175*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttransform_8x8_mode_flag = %d\n", p->pic_fields.bits.transform_8x8_mode_flag);
4176*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdeblocking_filter_control_present_flag = %d\n", p->pic_fields.bits.deblocking_filter_control_present_flag);
4177*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tredundant_pic_cnt_present_flag = %d\n", p->pic_fields.bits.redundant_pic_cnt_present_flag);
4178*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_order_present_flag = %d\n", p->pic_fields.bits.pic_order_present_flag);
4179*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_scaling_matrix_present_flag = %d\n", p->pic_fields.bits.pic_scaling_matrix_present_flag);
4180*54e60f84SAndroid Build Coastguard Worker 
4181*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
4182*54e60f84SAndroid Build Coastguard Worker 
4183*54e60f84SAndroid Build Coastguard Worker     return;
4184*54e60f84SAndroid Build Coastguard Worker }
4185*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAEncSliceParameterBuffer(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)4186*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAEncSliceParameterBuffer(
4187*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
4188*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
4189*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
4190*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
4191*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
4192*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
4193*54e60f84SAndroid Build Coastguard Worker     void *data)
4194*54e60f84SAndroid Build Coastguard Worker {
4195*54e60f84SAndroid Build Coastguard Worker     VAEncSliceParameterBuffer* p = (VAEncSliceParameterBuffer*)data;
4196*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
4197*54e60f84SAndroid Build Coastguard Worker 
4198*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAEncSliceParameterBuffer\n");
4199*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tstart_row_number = %d\n", p->start_row_number);
4200*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_height = %d\n", p->slice_height);
4201*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_flags.is_intra = %d\n", p->slice_flags.bits.is_intra);
4202*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_flags.disable_deblocking_filter_idc = %d\n", p->slice_flags.bits.disable_deblocking_filter_idc);
4203*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_flags.uses_long_term_ref = %d\n", p->slice_flags.bits.uses_long_term_ref);
4204*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_flags.is_long_term_ref = %d\n", p->slice_flags.bits.is_long_term_ref);
4205*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
4206*54e60f84SAndroid Build Coastguard Worker 
4207*54e60f84SAndroid Build Coastguard Worker     return;
4208*54e60f84SAndroid Build Coastguard Worker }
4209*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAEncSliceParameterBufferH264(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)4210*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAEncSliceParameterBufferH264(
4211*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
4212*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
4213*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
4214*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
4215*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
4216*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
4217*54e60f84SAndroid Build Coastguard Worker     void *data)
4218*54e60f84SAndroid Build Coastguard Worker {
4219*54e60f84SAndroid Build Coastguard Worker     VAEncSliceParameterBufferH264* p = (VAEncSliceParameterBufferH264*)data;
4220*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
4221*54e60f84SAndroid Build Coastguard Worker     int i;
4222*54e60f84SAndroid Build Coastguard Worker 
4223*54e60f84SAndroid Build Coastguard Worker     if (!p)
4224*54e60f84SAndroid Build Coastguard Worker         return;
4225*54e60f84SAndroid Build Coastguard Worker 
4226*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAEncSliceParameterBufferH264\n");
4227*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmacroblock_address = %u\n", p->macroblock_address);
4228*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_macroblocks = %u\n", p->num_macroblocks);
4229*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmacroblock_info = %08x\n", p->macroblock_info);
4230*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_type = %d\n", p->slice_type);
4231*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_parameter_set_id = %d\n", p->pic_parameter_set_id);
4232*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tidr_pic_id = %d\n", p->idr_pic_id);
4233*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_order_cnt_lsb = %d\n", p->pic_order_cnt_lsb);
4234*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdelta_pic_order_cnt_bottom = %d\n", p->delta_pic_order_cnt_bottom);
4235*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdelta_pic_order_cnt[0] = %d\n", p->delta_pic_order_cnt[0]);
4236*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdelta_pic_order_cnt[1] = %d\n", p->delta_pic_order_cnt[1]);
4237*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdirect_spatial_mv_pred_flag = %d\n", p->direct_spatial_mv_pred_flag);
4238*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_ref_idx_active_override_flag = %d\n", p->num_ref_idx_active_override_flag);
4239*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_ref_idx_l0_active_minus1 = %d\n", p->num_ref_idx_l0_active_minus1);
4240*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_ref_idx_l1_active_minus1 = %d\n", p->num_ref_idx_l1_active_minus1);
4241*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_beta_offset_div2 = %d\n", p->slice_beta_offset_div2);
4242*54e60f84SAndroid Build Coastguard Worker 
4243*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tRefPicList0 (TopFieldOrderCnt-BottomFieldOrderCnt-picture_id-frame_idx-flags):\n");
4244*54e60f84SAndroid Build Coastguard Worker 
4245*54e60f84SAndroid Build Coastguard Worker 
4246*54e60f84SAndroid Build Coastguard Worker 
4247*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 32; i++) {
4248*54e60f84SAndroid Build Coastguard Worker         if ((p->RefPicList0[i].picture_id != VA_INVALID_SURFACE) &&
4249*54e60f84SAndroid Build Coastguard Worker             ((p->RefPicList0[i].flags & VA_PICTURE_H264_INVALID) == 0))
4250*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t\t%08d-%08d-0x%08x-%08d-0x%08x\n",
4251*54e60f84SAndroid Build Coastguard Worker                         p->RefPicList0[i].TopFieldOrderCnt,
4252*54e60f84SAndroid Build Coastguard Worker                         p->RefPicList0[i].BottomFieldOrderCnt,
4253*54e60f84SAndroid Build Coastguard Worker                         p->RefPicList0[i].picture_id,
4254*54e60f84SAndroid Build Coastguard Worker                         p->RefPicList0[i].frame_idx,
4255*54e60f84SAndroid Build Coastguard Worker                         p->RefPicList0[i].flags);
4256*54e60f84SAndroid Build Coastguard Worker         else
4257*54e60f84SAndroid Build Coastguard Worker             break;
4258*54e60f84SAndroid Build Coastguard Worker     }
4259*54e60f84SAndroid Build Coastguard Worker 
4260*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tRefPicList1 (TopFieldOrderCnt-BottomFieldOrderCnt-picture_id-frame_idx-flags):\n");
4261*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 32; i++) {
4262*54e60f84SAndroid Build Coastguard Worker         if ((p->RefPicList1[i].picture_id != VA_INVALID_SURFACE) &&
4263*54e60f84SAndroid Build Coastguard Worker             ((p->RefPicList1[i].flags & VA_PICTURE_H264_INVALID) == 0))
4264*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t\t%08d-%08d-0x%08x-%08d-0x%08d\n",
4265*54e60f84SAndroid Build Coastguard Worker                         p->RefPicList1[i].TopFieldOrderCnt,
4266*54e60f84SAndroid Build Coastguard Worker                         p->RefPicList1[i].BottomFieldOrderCnt,
4267*54e60f84SAndroid Build Coastguard Worker                         p->RefPicList1[i].picture_id,
4268*54e60f84SAndroid Build Coastguard Worker                         p->RefPicList1[i].frame_idx,
4269*54e60f84SAndroid Build Coastguard Worker                         p->RefPicList1[i].flags
4270*54e60f84SAndroid Build Coastguard Worker                        );
4271*54e60f84SAndroid Build Coastguard Worker         else
4272*54e60f84SAndroid Build Coastguard Worker             break;
4273*54e60f84SAndroid Build Coastguard Worker     }
4274*54e60f84SAndroid Build Coastguard Worker 
4275*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tluma_log2_weight_denom = %d\n", p->luma_log2_weight_denom);
4276*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tchroma_log2_weight_denom = %d\n", p->chroma_log2_weight_denom);
4277*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tluma_weight_l0_flag = %d\n", p->luma_weight_l0_flag);
4278*54e60f84SAndroid Build Coastguard Worker     if (p->luma_weight_l0_flag) {
4279*54e60f84SAndroid Build Coastguard Worker         for (i = 0; (i <= p->num_ref_idx_l0_active_minus1) && (i < 32); i++) {
4280*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t\t%d\t%d\n",
4281*54e60f84SAndroid Build Coastguard Worker                         p->luma_weight_l0[i],
4282*54e60f84SAndroid Build Coastguard Worker                         p->luma_offset_l0[i]);
4283*54e60f84SAndroid Build Coastguard Worker         }
4284*54e60f84SAndroid Build Coastguard Worker     }
4285*54e60f84SAndroid Build Coastguard Worker 
4286*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tchroma_weight_l0_flag = %d\n", p->chroma_weight_l0_flag);
4287*54e60f84SAndroid Build Coastguard Worker     if (p->chroma_weight_l0_flag) {
4288*54e60f84SAndroid Build Coastguard Worker         for (i = 0; (i <= p->num_ref_idx_l0_active_minus1) && (i < 32); i++) {
4289*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t\t%d\t%d\t%d\t%d\n",
4290*54e60f84SAndroid Build Coastguard Worker                         p->chroma_weight_l0[i][0],
4291*54e60f84SAndroid Build Coastguard Worker                         p->chroma_offset_l0[i][0],
4292*54e60f84SAndroid Build Coastguard Worker                         p->chroma_weight_l0[i][1],
4293*54e60f84SAndroid Build Coastguard Worker                         p->chroma_offset_l0[i][1]);
4294*54e60f84SAndroid Build Coastguard Worker         }
4295*54e60f84SAndroid Build Coastguard Worker     }
4296*54e60f84SAndroid Build Coastguard Worker 
4297*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tluma_weight_l1_flag = %d\n", p->luma_weight_l1_flag);
4298*54e60f84SAndroid Build Coastguard Worker     if (p->luma_weight_l1_flag) {
4299*54e60f84SAndroid Build Coastguard Worker         for (i = 0; (i <= p->num_ref_idx_l1_active_minus1) && (i < 32); i++) {
4300*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t\t%d\t\t%d\n",
4301*54e60f84SAndroid Build Coastguard Worker                         p->luma_weight_l1[i],
4302*54e60f84SAndroid Build Coastguard Worker                         p->luma_offset_l1[i]);
4303*54e60f84SAndroid Build Coastguard Worker         }
4304*54e60f84SAndroid Build Coastguard Worker     }
4305*54e60f84SAndroid Build Coastguard Worker 
4306*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tchroma_weight_l1_flag = %d\n", p->chroma_weight_l1_flag);
4307*54e60f84SAndroid Build Coastguard Worker     if (p->chroma_weight_l1_flag && p->num_ref_idx_l1_active_minus1 < 32) {
4308*54e60f84SAndroid Build Coastguard Worker         for (i = 0; (i <= p->num_ref_idx_l1_active_minus1) && (i < 32); i++) {
4309*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t\t%d\t%d\t%d\t%d\n",
4310*54e60f84SAndroid Build Coastguard Worker                         p->chroma_weight_l1[i][0],
4311*54e60f84SAndroid Build Coastguard Worker                         p->chroma_offset_l1[i][0],
4312*54e60f84SAndroid Build Coastguard Worker                         p->chroma_weight_l1[i][1],
4313*54e60f84SAndroid Build Coastguard Worker                         p->chroma_offset_l1[i][1]);
4314*54e60f84SAndroid Build Coastguard Worker         }
4315*54e60f84SAndroid Build Coastguard Worker     }
4316*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
4317*54e60f84SAndroid Build Coastguard Worker 
4318*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcabac_init_idc = %d\n", p->cabac_init_idc);
4319*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_qp_delta = %d\n", p->slice_qp_delta);
4320*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdisable_deblocking_filter_idc = %d\n", p->disable_deblocking_filter_idc);
4321*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_alpha_c0_offset_div2 = %d\n", p->slice_alpha_c0_offset_div2);
4322*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_beta_offset_div2 = %d\n", p->slice_beta_offset_div2);
4323*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
4324*54e60f84SAndroid Build Coastguard Worker 
4325*54e60f84SAndroid Build Coastguard Worker     return;
4326*54e60f84SAndroid Build Coastguard Worker }
4327*54e60f84SAndroid Build Coastguard Worker 
4328*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAEncPackedHeaderParameterBufferType(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)4329*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAEncPackedHeaderParameterBufferType(
4330*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
4331*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
4332*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
4333*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
4334*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
4335*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
4336*54e60f84SAndroid Build Coastguard Worker     void *data)
4337*54e60f84SAndroid Build Coastguard Worker {
4338*54e60f84SAndroid Build Coastguard Worker     VAEncPackedHeaderParameterBuffer* p = (VAEncPackedHeaderParameterBuffer*)data;
4339*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
4340*54e60f84SAndroid Build Coastguard Worker 
4341*54e60f84SAndroid Build Coastguard Worker     if (!p)
4342*54e60f84SAndroid Build Coastguard Worker         return;
4343*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAEncPackedHeaderParameterBuffer\n");
4344*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttype = 0x%08x\n", p->type);
4345*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbit_length = %d\n", p->bit_length);
4346*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\thas_emulation_bytes = %d\n", p->has_emulation_bytes);
4347*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
4348*54e60f84SAndroid Build Coastguard Worker 
4349*54e60f84SAndroid Build Coastguard Worker     return;
4350*54e60f84SAndroid Build Coastguard Worker }
4351*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAEncMiscParameterBuffer(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)4352*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAEncMiscParameterBuffer(
4353*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
4354*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
4355*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
4356*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
4357*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
4358*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
4359*54e60f84SAndroid Build Coastguard Worker     void *data)
4360*54e60f84SAndroid Build Coastguard Worker {
4361*54e60f84SAndroid Build Coastguard Worker     VAEncMiscParameterBuffer* tmp = (VAEncMiscParameterBuffer*)data;
4362*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
4363*54e60f84SAndroid Build Coastguard Worker 
4364*54e60f84SAndroid Build Coastguard Worker     switch (tmp->type) {
4365*54e60f84SAndroid Build Coastguard Worker     case VAEncMiscParameterTypeFrameRate: {
4366*54e60f84SAndroid Build Coastguard Worker         VAEncMiscParameterFrameRate *p = (VAEncMiscParameterFrameRate *)tmp->data;
4367*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterFrameRate\n");
4368*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tframerate = %d\n", p->framerate);
4369*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tframerate_flags.temporal_id = %d\n", p->framerate_flags.bits.temporal_id);
4370*54e60f84SAndroid Build Coastguard Worker         break;
4371*54e60f84SAndroid Build Coastguard Worker     }
4372*54e60f84SAndroid Build Coastguard Worker     case VAEncMiscParameterTypeRateControl: {
4373*54e60f84SAndroid Build Coastguard Worker         VAEncMiscParameterRateControl *p = (VAEncMiscParameterRateControl *)tmp->data;
4374*54e60f84SAndroid Build Coastguard Worker 
4375*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterRateControl\n");
4376*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tbits_per_second = %d\n", p->bits_per_second);
4377*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\ttarget_percentage = %d\n", p->target_percentage);
4378*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\twindow_size = %d\n", p->window_size);
4379*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tinitial_qp = %d\n", p->initial_qp);
4380*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tmin_qp = %d\n", p->min_qp);
4381*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tbasic_unit_size = %d\n", p->basic_unit_size);
4382*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\trc_flags.reset = %d \n", p->rc_flags.bits.reset);
4383*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\trc_flags.disable_frame_skip = %d\n", p->rc_flags.bits.disable_frame_skip);
4384*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\trc_flags.disable_bit_stuffing = %d\n", p->rc_flags.bits.disable_bit_stuffing);
4385*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\trc_flags.mb_rate_control = %d\n", p->rc_flags.bits.mb_rate_control);
4386*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\trc_flags.temporal_id = %d\n", p->rc_flags.bits.temporal_id);
4387*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\trc_flags.cfs_I_frames = %d\n", p->rc_flags.bits.cfs_I_frames);
4388*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\trc_flags.enable_parallel_brc = %d\n", p->rc_flags.bits.enable_parallel_brc);
4389*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\trc_flags.enable_dynamic_scaling = %d\n", p->rc_flags.bits.enable_dynamic_scaling);
4390*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\trc_flags.frame_tolerance_mode = %d\n", p->rc_flags.bits.frame_tolerance_mode);
4391*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tICQ_quality_factor = %d\n", p->ICQ_quality_factor);
4392*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tmax_qp = %d\n", p->max_qp);
4393*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tquality_factor = %d\n", p->quality_factor);
4394*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\ttarget_frame_size = %d\n", p->target_frame_size);
4395*54e60f84SAndroid Build Coastguard Worker         break;
4396*54e60f84SAndroid Build Coastguard Worker     }
4397*54e60f84SAndroid Build Coastguard Worker     case VAEncMiscParameterTypeMaxSliceSize: {
4398*54e60f84SAndroid Build Coastguard Worker         VAEncMiscParameterMaxSliceSize *p = (VAEncMiscParameterMaxSliceSize *)tmp->data;
4399*54e60f84SAndroid Build Coastguard Worker 
4400*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterTypeMaxSliceSize\n");
4401*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tmax_slice_size = %d\n", p->max_slice_size);
4402*54e60f84SAndroid Build Coastguard Worker         break;
4403*54e60f84SAndroid Build Coastguard Worker     }
4404*54e60f84SAndroid Build Coastguard Worker     case VAEncMiscParameterTypeAIR: {
4405*54e60f84SAndroid Build Coastguard Worker         VAEncMiscParameterAIR *p = (VAEncMiscParameterAIR *)tmp->data;
4406*54e60f84SAndroid Build Coastguard Worker 
4407*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterAIR\n");
4408*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tair_num_mbs = %d\n", p->air_num_mbs);
4409*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tair_threshold = %d\n", p->air_threshold);
4410*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tair_auto = %d\n", p->air_auto);
4411*54e60f84SAndroid Build Coastguard Worker         break;
4412*54e60f84SAndroid Build Coastguard Worker     }
4413*54e60f84SAndroid Build Coastguard Worker     case VAEncMiscParameterTypeHRD: {
4414*54e60f84SAndroid Build Coastguard Worker         VAEncMiscParameterHRD *p = (VAEncMiscParameterHRD *)tmp->data;
4415*54e60f84SAndroid Build Coastguard Worker 
4416*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterHRD\n");
4417*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tinitial_buffer_fullness = %d\n", p->initial_buffer_fullness);
4418*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tbuffer_size = %d\n", p->buffer_size);
4419*54e60f84SAndroid Build Coastguard Worker         break;
4420*54e60f84SAndroid Build Coastguard Worker     }
4421*54e60f84SAndroid Build Coastguard Worker     case VAEncMiscParameterTypeMaxFrameSize: {
4422*54e60f84SAndroid Build Coastguard Worker         VAEncMiscParameterBufferMaxFrameSize *p = (VAEncMiscParameterBufferMaxFrameSize *)tmp->data;
4423*54e60f84SAndroid Build Coastguard Worker 
4424*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterTypeMaxFrameSize\n");
4425*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tmax_frame_size = %d\n", p->max_frame_size);
4426*54e60f84SAndroid Build Coastguard Worker         break;
4427*54e60f84SAndroid Build Coastguard Worker     }
4428*54e60f84SAndroid Build Coastguard Worker     case VAEncMiscParameterTypeMultiPassFrameSize: {
4429*54e60f84SAndroid Build Coastguard Worker         int i;
4430*54e60f84SAndroid Build Coastguard Worker         VAEncMiscParameterBufferMultiPassFrameSize *p = (VAEncMiscParameterBufferMultiPassFrameSize *)tmp->data;
4431*54e60f84SAndroid Build Coastguard Worker 
4432*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterTypeMultiPassFrameSize\n");
4433*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tmax_frame_size = %d\n", p->max_frame_size);
4434*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tnum_passes = %d\n", p->num_passes);
4435*54e60f84SAndroid Build Coastguard Worker         for (i = 0; i < p->num_passes; ++i)
4436*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\tdelta_qp[%d] = %d\n", i, p->delta_qp[i]);
4437*54e60f84SAndroid Build Coastguard Worker         break;
4438*54e60f84SAndroid Build Coastguard Worker     }
4439*54e60f84SAndroid Build Coastguard Worker     case VAEncMiscParameterTypeQualityLevel: {
4440*54e60f84SAndroid Build Coastguard Worker         VAEncMiscParameterBufferQualityLevel *p = (VAEncMiscParameterBufferQualityLevel *)tmp->data;
4441*54e60f84SAndroid Build Coastguard Worker 
4442*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterBufferQualityLevel\n");
4443*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tquality_level = %d\n", p->quality_level);
4444*54e60f84SAndroid Build Coastguard Worker         break;
4445*54e60f84SAndroid Build Coastguard Worker     }
4446*54e60f84SAndroid Build Coastguard Worker     case VAEncMiscParameterTypeROI: {
4447*54e60f84SAndroid Build Coastguard Worker         int i;
4448*54e60f84SAndroid Build Coastguard Worker         VAEncMiscParameterBufferROI *p = (VAEncMiscParameterBufferROI *)tmp->data;
4449*54e60f84SAndroid Build Coastguard Worker 
4450*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterBufferROI\n");
4451*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tnum_roi = %d\n", p->num_roi);
4452*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tmax_delta_qp = %d\n", p->max_delta_qp);
4453*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tmin_delta_qp = %d\n", p->min_delta_qp);
4454*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\troi_flags.bits.roi_value_is_qp_delta = %d\n", p->roi_flags.bits.roi_value_is_qp_delta);
4455*54e60f84SAndroid Build Coastguard Worker         for (i = 0; i < p->num_roi; i++) {
4456*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\troi[%d].roi_rectangle.x      = %d\n", i, p->roi[i].roi_rectangle.x);
4457*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\troi[%d].roi_rectangle.y      = %d\n", i, p->roi[i].roi_rectangle.y);
4458*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\troi[%d].roi_rectangle.width  = %d\n", i, p->roi[i].roi_rectangle.width);
4459*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\troi[%d].roi_rectangle.height = %d\n", i, p->roi[i].roi_rectangle.height);
4460*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\troi[%d].roi_value            = %d\n", i, p->roi[i].roi_value);
4461*54e60f84SAndroid Build Coastguard Worker         }
4462*54e60f84SAndroid Build Coastguard Worker         break;
4463*54e60f84SAndroid Build Coastguard Worker     }
4464*54e60f84SAndroid Build Coastguard Worker     case VAEncMiscParameterTypeRIR: {
4465*54e60f84SAndroid Build Coastguard Worker         VAEncMiscParameterRIR *p = (VAEncMiscParameterRIR *)tmp->data;
4466*54e60f84SAndroid Build Coastguard Worker 
4467*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterRIR\n");
4468*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\trir_flags.bits.enable_rir_column = %d\n", p->rir_flags.bits.enable_rir_column);
4469*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\trir_flags.bits.enable_rir_row = %d\n", p->rir_flags.bits.enable_rir_row);
4470*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tintra_insertion_location = %d\n", p->intra_insertion_location);
4471*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tintra_insert_size = %d\n", p->intra_insert_size);
4472*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tqp_delta_for_inserted_intra = %d\n", p->qp_delta_for_inserted_intra);
4473*54e60f84SAndroid Build Coastguard Worker         break;
4474*54e60f84SAndroid Build Coastguard Worker     }
4475*54e60f84SAndroid Build Coastguard Worker     case VAEncMiscParameterTypeEncQuality: {
4476*54e60f84SAndroid Build Coastguard Worker         int i;
4477*54e60f84SAndroid Build Coastguard Worker         VAEncMiscParameterEncQuality *p = (VAEncMiscParameterEncQuality *)tmp->data;
4478*54e60f84SAndroid Build Coastguard Worker 
4479*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterEncQuality\n");
4480*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tuseRawPicForRef = %d\n", p->useRawPicForRef);
4481*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tskipCheckDisable = %d\n", p->skipCheckDisable);
4482*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tFTQOverride = %d\n", p->FTQOverride);
4483*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tFTQEnable = %d\n", p->FTQEnable);
4484*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tFTQSkipThresholdLUTInput = %d\n", p->FTQSkipThresholdLUTInput);
4485*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tNonFTQSkipThresholdLUTInput = %d\n", p->NonFTQSkipThresholdLUTInput);
4486*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tReservedBit = %d\n", p->ReservedBit);
4487*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tdirectBiasAdjustmentEnable = %d\n", p->directBiasAdjustmentEnable);
4488*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tglobalMotionBiasAdjustmentEnable = %d\n", p->globalMotionBiasAdjustmentEnable);
4489*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tHMEMVCostScalingFactor = %d\n", p->HMEMVCostScalingFactor);
4490*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tHMEDisable = %d\n", p->HMEDisable);
4491*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tSuperHMEDisable = %d\n", p->SuperHMEDisable);
4492*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tUltraHMEDisable = %d\n", p->UltraHMEDisable);
4493*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tPanicModeDisable = %d\n", p->PanicModeDisable);
4494*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tForceRepartitionCheck = %d\n", p->ForceRepartitionCheck);
4495*54e60f84SAndroid Build Coastguard Worker         if (p->FTQSkipThresholdLUTInput) {
4496*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\tFTQSkipThresholdLUT[52]=\n");
4497*54e60f84SAndroid Build Coastguard Worker             for (i = 0; i < 52; i++) {
4498*54e60f84SAndroid Build Coastguard Worker                 va_TraceMsg(trace_ctx, "\t%d", p->FTQSkipThresholdLUT[i]);
4499*54e60f84SAndroid Build Coastguard Worker                 if ((i + 1) % 8 == 0)
4500*54e60f84SAndroid Build Coastguard Worker                     TRACE_NEWLINE();
4501*54e60f84SAndroid Build Coastguard Worker             }
4502*54e60f84SAndroid Build Coastguard Worker             va_TracePrint(trace_ctx, "\n");
4503*54e60f84SAndroid Build Coastguard Worker         }
4504*54e60f84SAndroid Build Coastguard Worker         if (p->NonFTQSkipThresholdLUTInput) {
4505*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\tNonFTQSkipThresholdLUT[52]=\n");
4506*54e60f84SAndroid Build Coastguard Worker             for (i = 0; i < 52; i++) {
4507*54e60f84SAndroid Build Coastguard Worker                 va_TraceMsg(trace_ctx, "\t%d", p->NonFTQSkipThresholdLUT[i]);
4508*54e60f84SAndroid Build Coastguard Worker                 if ((i + 1) % 8 == 0)
4509*54e60f84SAndroid Build Coastguard Worker                     TRACE_NEWLINE();
4510*54e60f84SAndroid Build Coastguard Worker             }
4511*54e60f84SAndroid Build Coastguard Worker             va_TracePrint(trace_ctx, "\n");
4512*54e60f84SAndroid Build Coastguard Worker         }
4513*54e60f84SAndroid Build Coastguard Worker         break;
4514*54e60f84SAndroid Build Coastguard Worker     }
4515*54e60f84SAndroid Build Coastguard Worker     case VAEncMiscParameterTypeSkipFrame: {
4516*54e60f84SAndroid Build Coastguard Worker         VAEncMiscParameterSkipFrame *p = (VAEncMiscParameterSkipFrame *)tmp->data;
4517*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterSkipFrame\n");
4518*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tskip_frame_flag = %d\n", p->skip_frame_flag);
4519*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tnum_skip_frames = %d\n", p->num_skip_frames);
4520*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tsize_skip_frames = %d\n", p->size_skip_frames);
4521*54e60f84SAndroid Build Coastguard Worker         break;
4522*54e60f84SAndroid Build Coastguard Worker     }
4523*54e60f84SAndroid Build Coastguard Worker     case VAEncMiscParameterTypeTemporalLayerStructure: {
4524*54e60f84SAndroid Build Coastguard Worker         int i;
4525*54e60f84SAndroid Build Coastguard Worker         VAEncMiscParameterTemporalLayerStructure *p = (VAEncMiscParameterTemporalLayerStructure *)tmp->data;
4526*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterTemporalLayerStructure\n");
4527*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tnumber_of_layers = %d\n", p->number_of_layers);
4528*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tperiodicity = %d\n", p->periodicity);
4529*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tlayer_id =\n");
4530*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "");
4531*54e60f84SAndroid Build Coastguard Worker         for (i = 0; i < 32; i++) {
4532*54e60f84SAndroid Build Coastguard Worker             if (i % 8 == 0)
4533*54e60f84SAndroid Build Coastguard Worker                 va_TracePrint(trace_ctx, "\t");
4534*54e60f84SAndroid Build Coastguard Worker 
4535*54e60f84SAndroid Build Coastguard Worker             va_TracePrint(trace_ctx, "\t%u", p->layer_id[i]);
4536*54e60f84SAndroid Build Coastguard Worker             if ((i + 1) % 8 == 0) {
4537*54e60f84SAndroid Build Coastguard Worker                 if (i == 31)
4538*54e60f84SAndroid Build Coastguard Worker                     va_TracePrint(trace_ctx, "\n");
4539*54e60f84SAndroid Build Coastguard Worker                 else
4540*54e60f84SAndroid Build Coastguard Worker                     TRACE_NEWLINE();
4541*54e60f84SAndroid Build Coastguard Worker             }
4542*54e60f84SAndroid Build Coastguard Worker         }
4543*54e60f84SAndroid Build Coastguard Worker         break;
4544*54e60f84SAndroid Build Coastguard Worker     }
4545*54e60f84SAndroid Build Coastguard Worker     default:
4546*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "Unknown VAEncMiscParameterBuffer(type = %d):\n", tmp->type);
4547*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, data);
4548*54e60f84SAndroid Build Coastguard Worker         break;
4549*54e60f84SAndroid Build Coastguard Worker     }
4550*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
4551*54e60f84SAndroid Build Coastguard Worker 
4552*54e60f84SAndroid Build Coastguard Worker     return;
4553*54e60f84SAndroid Build Coastguard Worker }
4554*54e60f84SAndroid Build Coastguard Worker 
4555*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAPictureParameterBufferVC1(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)4556*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAPictureParameterBufferVC1(
4557*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
4558*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
4559*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
4560*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
4561*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
4562*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
4563*54e60f84SAndroid Build Coastguard Worker     void *data
4564*54e60f84SAndroid Build Coastguard Worker )
4565*54e60f84SAndroid Build Coastguard Worker {
4566*54e60f84SAndroid Build Coastguard Worker     VAPictureParameterBufferVC1* p = (VAPictureParameterBufferVC1*)data;
4567*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
4568*54e60f84SAndroid Build Coastguard Worker 
4569*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAPictureParameterBufferVC1\n");
4570*54e60f84SAndroid Build Coastguard Worker 
4571*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tforward_reference_picture = 0x%08x\n", p->forward_reference_picture);
4572*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbackward_reference_picture = 0x%08x\n", p->backward_reference_picture);
4573*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tinloop_decoded_picture = 0x%08x\n", p->inloop_decoded_picture);
4574*54e60f84SAndroid Build Coastguard Worker 
4575*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpulldown = %d\n", p->sequence_fields.bits.pulldown);
4576*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tinterlace = %d\n", p->sequence_fields.bits.interlace);
4577*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttfcntrflag = %d\n", p->sequence_fields.bits.tfcntrflag);
4578*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tfinterpflag = %d\n", p->sequence_fields.bits.finterpflag);
4579*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpsf = %d\n", p->sequence_fields.bits.psf);
4580*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmultires = %d\n", p->sequence_fields.bits.multires);
4581*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\toverlap = %d\n", p->sequence_fields.bits.overlap);
4582*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsyncmarker = %d\n", p->sequence_fields.bits.syncmarker);
4583*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\trangered = %d\n", p->sequence_fields.bits.rangered);
4584*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmax_b_frames = %d\n", p->sequence_fields.bits.max_b_frames);
4585*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tprofile = %d\n", p->sequence_fields.bits.profile);
4586*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcoded_width = %d\n", p->coded_width);
4587*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcoded_height = %d\n", p->coded_height);
4588*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tclosed_entry = %d\n", p->entrypoint_fields.bits.closed_entry);
4589*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbroken_link = %d\n", p->entrypoint_fields.bits.broken_link);
4590*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tclosed_entry = %d\n", p->entrypoint_fields.bits.closed_entry);
4591*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpanscan_flag = %d\n", p->entrypoint_fields.bits.panscan_flag);
4592*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tloopfilter = %d\n", p->entrypoint_fields.bits.loopfilter);
4593*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tconditional_overlap_flag = %d\n", p->conditional_overlap_flag);
4594*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tfast_uvmc_flag = %d\n", p->fast_uvmc_flag);
4595*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\trange_mapping_luma_flag = %d\n", p->range_mapping_fields.bits.luma_flag);
4596*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\trange_mapping_luma = %d\n", p->range_mapping_fields.bits.luma);
4597*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\trange_mapping_chroma_flag = %d\n", p->range_mapping_fields.bits.chroma_flag);
4598*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\trange_mapping_chroma = %d\n", p->range_mapping_fields.bits.chroma);
4599*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tb_picture_fraction = %d\n", p->b_picture_fraction);
4600*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcbp_table = %d\n", p->cbp_table);
4601*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmb_mode_table = %d\n", p->mb_mode_table);
4602*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\trange_reduction_frame = %d\n", p->range_reduction_frame);
4603*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\trounding_control = %d\n", p->rounding_control);
4604*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpost_processing = %d\n", p->post_processing);
4605*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpicture_resolution_index = %d\n", p->picture_resolution_index);
4606*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tluma_scale = %d\n", p->luma_scale);
4607*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tluma_shift = %d\n", p->luma_shift);
4608*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpicture_type = %d\n", p->picture_fields.bits.picture_type);
4609*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_coding_mode = %d\n", p->picture_fields.bits.frame_coding_mode);
4610*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttop_field_first = %d\n", p->picture_fields.bits.top_field_first);
4611*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tis_first_field = %d\n", p->picture_fields.bits.is_first_field);
4612*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tintensity_compensation = %d\n", p->picture_fields.bits.intensity_compensation);
4613*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmv_type_mb = %d\n", p->raw_coding.flags.mv_type_mb);
4614*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdirect_mb = %d\n", p->raw_coding.flags.direct_mb);
4615*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tskip_mb = %d\n", p->raw_coding.flags.skip_mb);
4616*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tfield_tx = %d\n", p->raw_coding.flags.field_tx);
4617*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tforward_mb = %d\n", p->raw_coding.flags.forward_mb);
4618*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tac_pred = %d\n", p->raw_coding.flags.ac_pred);
4619*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\toverflags = %d\n", p->raw_coding.flags.overflags);
4620*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbp_mv_type_mb = %d\n", p->bitplane_present.flags.bp_mv_type_mb);
4621*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbp_direct_mb = %d\n", p->bitplane_present.flags.bp_direct_mb);
4622*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbp_skip_mb = %d\n", p->bitplane_present.flags.bp_skip_mb);
4623*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbp_field_tx = %d\n", p->bitplane_present.flags.bp_field_tx);
4624*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbp_forward_mb = %d\n", p->bitplane_present.flags.bp_forward_mb);
4625*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbp_ac_pred = %d\n", p->bitplane_present.flags.bp_ac_pred);
4626*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbp_overflags = %d\n", p->bitplane_present.flags.bp_overflags);
4627*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treference_distance_flag = %d\n", p->reference_fields.bits.reference_distance_flag);
4628*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treference_distance = %d\n", p->reference_fields.bits.reference_distance);
4629*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_reference_pictures = %d\n", p->reference_fields.bits.num_reference_pictures);
4630*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treference_field_pic_indicator = %d\n", p->reference_fields.bits.reference_field_pic_indicator);
4631*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmv_mode = %d\n", p->mv_fields.bits.mv_mode);
4632*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmv_mode2 = %d\n", p->mv_fields.bits.mv_mode2);
4633*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmv_table = %d\n", p->mv_fields.bits.mv_table);
4634*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttwo_mv_block_pattern_table = %d\n", p->mv_fields.bits.two_mv_block_pattern_table);
4635*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tfour_mv_switch = %d\n", p->mv_fields.bits.four_mv_switch);
4636*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tfour_mv_block_pattern_table = %d\n", p->mv_fields.bits.four_mv_block_pattern_table);
4637*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\textended_mv_flag = %d\n", p->mv_fields.bits.extended_mv_flag);
4638*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\textended_mv_range = %d\n", p->mv_fields.bits.extended_mv_range);
4639*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\textended_dmv_flag = %d\n", p->mv_fields.bits.extended_dmv_flag);
4640*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\textended_dmv_range = %d\n", p->mv_fields.bits.extended_dmv_range);
4641*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdquant = %d\n", p->pic_quantizer_fields.bits.dquant);
4642*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tquantizer = %d\n", p->pic_quantizer_fields.bits.quantizer);
4643*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\thalf_qp = %d\n", p->pic_quantizer_fields.bits.half_qp);
4644*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_quantizer_scale = %d\n", p->pic_quantizer_fields.bits.pic_quantizer_scale);
4645*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_quantizer_type = %d\n", p->pic_quantizer_fields.bits.pic_quantizer_type);
4646*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdq_frame = %d\n", p->pic_quantizer_fields.bits.dq_frame);
4647*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdq_profile = %d\n", p->pic_quantizer_fields.bits.dq_profile);
4648*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdq_sb_edge = %d\n", p->pic_quantizer_fields.bits.dq_sb_edge);
4649*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdq_db_edge = %d\n", p->pic_quantizer_fields.bits.dq_db_edge);
4650*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdq_binary_level = %d\n", p->pic_quantizer_fields.bits.dq_binary_level);
4651*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\talt_pic_quantizer = %d\n", p->pic_quantizer_fields.bits.alt_pic_quantizer);
4652*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tvariable_sized_transform_flag = %d\n", p->transform_fields.bits.variable_sized_transform_flag);
4653*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmb_level_transform_type_flag = %d\n", p->transform_fields.bits.mb_level_transform_type_flag);
4654*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_level_transform_type = %d\n", p->transform_fields.bits.frame_level_transform_type);
4655*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttransform_ac_codingset_idx1 = %d\n", p->transform_fields.bits.transform_ac_codingset_idx1);
4656*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttransform_ac_codingset_idx2 = %d\n", p->transform_fields.bits.transform_ac_codingset_idx2);
4657*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tintra_transform_dc_table = %d\n", p->transform_fields.bits.intra_transform_dc_table);
4658*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
4659*54e60f84SAndroid Build Coastguard Worker }
4660*54e60f84SAndroid Build Coastguard Worker 
va_TraceVASliceParameterBufferVC1(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)4661*54e60f84SAndroid Build Coastguard Worker static void va_TraceVASliceParameterBufferVC1(
4662*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
4663*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
4664*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
4665*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
4666*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
4667*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
4668*54e60f84SAndroid Build Coastguard Worker     void* data
4669*54e60f84SAndroid Build Coastguard Worker )
4670*54e60f84SAndroid Build Coastguard Worker {
4671*54e60f84SAndroid Build Coastguard Worker     VASliceParameterBufferVC1 *p = (VASliceParameterBufferVC1*)data;
4672*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
4673*54e60f84SAndroid Build Coastguard Worker 
4674*54e60f84SAndroid Build Coastguard Worker     trace_ctx->trace_slice_no++;
4675*54e60f84SAndroid Build Coastguard Worker     trace_ctx->trace_slice_size = p->slice_data_size;
4676*54e60f84SAndroid Build Coastguard Worker 
4677*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VASliceParameterBufferVC1\n");
4678*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_data_size = %d\n", p->slice_data_size);
4679*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_data_offset = %d\n", p->slice_data_offset);
4680*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_data_flag = %d\n", p->slice_data_flag);
4681*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmacroblock_offset = %d\n", p->macroblock_offset);
4682*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_vertical_position = %d\n", p->slice_vertical_position);
4683*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
4684*54e60f84SAndroid Build Coastguard Worker }
4685*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAPictureParameterBufferVP8(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)4686*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAPictureParameterBufferVP8(
4687*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
4688*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
4689*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
4690*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
4691*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
4692*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
4693*54e60f84SAndroid Build Coastguard Worker     void *data)
4694*54e60f84SAndroid Build Coastguard Worker {
4695*54e60f84SAndroid Build Coastguard Worker     char tmp[1024];
4696*54e60f84SAndroid Build Coastguard Worker     VAPictureParameterBufferVP8 *p = (VAPictureParameterBufferVP8 *)data;
4697*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
4698*54e60f84SAndroid Build Coastguard Worker     int i, j;
4699*54e60f84SAndroid Build Coastguard Worker 
4700*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAPictureParameterBufferVP8\n");
4701*54e60f84SAndroid Build Coastguard Worker 
4702*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_width = %d\n", p->frame_width);
4703*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_height = %d\n", p->frame_height);
4704*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlast_ref_frame = %x\n", p->last_ref_frame);
4705*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tgolden_ref_frame = %x\n", p->golden_ref_frame);
4706*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\talt_ref_frame = %x\n", p->alt_ref_frame);
4707*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tout_of_loop_frame = %x\n", p->out_of_loop_frame);
4708*54e60f84SAndroid Build Coastguard Worker 
4709*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tkey_frame = %d\n", p->pic_fields.bits.key_frame);
4710*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tversion = %d\n", p->pic_fields.bits.version);
4711*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsegmentation_enabled = %d\n", p->pic_fields.bits.segmentation_enabled);
4712*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tupdate_mb_segmentation_map = %d\n", p->pic_fields.bits.update_mb_segmentation_map);
4713*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tupdate_segment_feature_data = %d\n", p->pic_fields.bits.update_segment_feature_data);
4714*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tfilter_type = %d\n", p->pic_fields.bits.filter_type);
4715*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsharpness_level = %d\n", p->pic_fields.bits.sharpness_level);
4716*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tloop_filter_adj_enable = %d\n", p->pic_fields.bits.loop_filter_adj_enable);
4717*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmode_ref_lf_delta_update = %d\n", p->pic_fields.bits.mode_ref_lf_delta_update);
4718*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsign_bias_golden = %d\n", p->pic_fields.bits.sign_bias_golden);
4719*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsign_bias_alternate = %d\n", p->pic_fields.bits.sign_bias_alternate);
4720*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmb_no_coeff_skip = %d\n", p->pic_fields.bits.mb_no_coeff_skip);
4721*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tloop_filter_disable = %d\n", p->pic_fields.bits.loop_filter_disable);
4722*54e60f84SAndroid Build Coastguard Worker 
4723*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmb_segment_tree_probs: 0x%2x, 0x%2x, 0x%2x\n",
4724*54e60f84SAndroid Build Coastguard Worker                 p->mb_segment_tree_probs[0], p->mb_segment_tree_probs[1], p->mb_segment_tree_probs[2]);
4725*54e60f84SAndroid Build Coastguard Worker 
4726*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tloop_filter_level: %d, %d, %d, %d\n",
4727*54e60f84SAndroid Build Coastguard Worker                 p->loop_filter_level[0], p->loop_filter_level[1], p->loop_filter_level[2], p->loop_filter_level[3]);
4728*54e60f84SAndroid Build Coastguard Worker 
4729*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tloop_filter_deltas_ref_frame: %d, %d, %d, %d\n",
4730*54e60f84SAndroid Build Coastguard Worker                 p->loop_filter_deltas_ref_frame[0], p->loop_filter_deltas_ref_frame[1], p->loop_filter_deltas_ref_frame[2], p->loop_filter_deltas_ref_frame[3]);
4731*54e60f84SAndroid Build Coastguard Worker 
4732*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tloop_filter_deltas_mode: %d, %d, %d, %d\n",
4733*54e60f84SAndroid Build Coastguard Worker                 p->loop_filter_deltas_mode[0], p->loop_filter_deltas_mode[1], p->loop_filter_deltas_mode[2], p->loop_filter_deltas_mode[3]);
4734*54e60f84SAndroid Build Coastguard Worker 
4735*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tprob_skip_false = %2x\n", p->prob_skip_false);
4736*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tprob_intra = %2x\n", p->prob_intra);
4737*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tprob_last = %2x\n", p->prob_last);
4738*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tprob_gf = %2x\n", p->prob_gf);
4739*54e60f84SAndroid Build Coastguard Worker 
4740*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ty_mode_probs: 0x%2x, 0x%2x, 0x%2x, 0x%2x\n",
4741*54e60f84SAndroid Build Coastguard Worker                 p->y_mode_probs[0], p->y_mode_probs[1], p->y_mode_probs[2], p->y_mode_probs[3]);
4742*54e60f84SAndroid Build Coastguard Worker 
4743*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tuv_mode_probs: 0x%2x, 0x%2x, 0x%2x\n",
4744*54e60f84SAndroid Build Coastguard Worker                 p->uv_mode_probs[0], p->uv_mode_probs[1], p->uv_mode_probs[2]);
4745*54e60f84SAndroid Build Coastguard Worker 
4746*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmv_probs[2][19]:\n");
4747*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 2; ++i) {
4748*54e60f84SAndroid Build Coastguard Worker         memset(tmp, 0, sizeof tmp);
4749*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 19; j++)
4750*54e60f84SAndroid Build Coastguard Worker             sprintf(tmp + strlen(tmp), "%2x ", p->mv_probs[i][j]);
4751*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\t[%d] = %s\n", i, tmp);
4752*54e60f84SAndroid Build Coastguard Worker     }
4753*54e60f84SAndroid Build Coastguard Worker 
4754*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbool_coder_ctx: range = %02x, value = %02x, count = %d\n",
4755*54e60f84SAndroid Build Coastguard Worker                 p->bool_coder_ctx.range, p->bool_coder_ctx.value, p->bool_coder_ctx.count);
4756*54e60f84SAndroid Build Coastguard Worker 
4757*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
4758*54e60f84SAndroid Build Coastguard Worker 
4759*54e60f84SAndroid Build Coastguard Worker     return;
4760*54e60f84SAndroid Build Coastguard Worker }
4761*54e60f84SAndroid Build Coastguard Worker 
va_TraceVASliceParameterBufferVP8(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)4762*54e60f84SAndroid Build Coastguard Worker static void va_TraceVASliceParameterBufferVP8(
4763*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
4764*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
4765*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
4766*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
4767*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
4768*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
4769*54e60f84SAndroid Build Coastguard Worker     void *data)
4770*54e60f84SAndroid Build Coastguard Worker {
4771*54e60f84SAndroid Build Coastguard Worker     VASliceParameterBufferVP8 *p = (VASliceParameterBufferVP8 *)data;
4772*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
4773*54e60f84SAndroid Build Coastguard Worker     int i;
4774*54e60f84SAndroid Build Coastguard Worker 
4775*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VASliceParameterBufferVP8\n");
4776*54e60f84SAndroid Build Coastguard Worker 
4777*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_data_size = %d\n", p->slice_data_size);
4778*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_data_offset = %d\n", p->slice_data_offset);
4779*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_data_flag = %d\n", p->slice_data_flag);
4780*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmacroblock_offset = %d\n", p->macroblock_offset);
4781*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_of_partitions = %d\n", p->num_of_partitions);
4782*54e60f84SAndroid Build Coastguard Worker 
4783*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 9; ++i)
4784*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tpartition_size[%d] = %d\n", i, p->partition_size[i]);
4785*54e60f84SAndroid Build Coastguard Worker 
4786*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
4787*54e60f84SAndroid Build Coastguard Worker 
4788*54e60f84SAndroid Build Coastguard Worker     return;
4789*54e60f84SAndroid Build Coastguard Worker }
4790*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAIQMatrixBufferVP8(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)4791*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAIQMatrixBufferVP8(
4792*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
4793*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
4794*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
4795*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
4796*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
4797*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
4798*54e60f84SAndroid Build Coastguard Worker     void *data)
4799*54e60f84SAndroid Build Coastguard Worker {
4800*54e60f84SAndroid Build Coastguard Worker     char tmp[1024];
4801*54e60f84SAndroid Build Coastguard Worker     VAIQMatrixBufferVP8 *p = (VAIQMatrixBufferVP8 *)data;
4802*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
4803*54e60f84SAndroid Build Coastguard Worker     int i, j;
4804*54e60f84SAndroid Build Coastguard Worker 
4805*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAIQMatrixBufferVP8\n");
4806*54e60f84SAndroid Build Coastguard Worker 
4807*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tquantization_index[4][6]=\n");
4808*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 4; i++) {
4809*54e60f84SAndroid Build Coastguard Worker         memset(tmp, 0, sizeof tmp);
4810*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 6; j++)
4811*54e60f84SAndroid Build Coastguard Worker             sprintf(tmp + strlen(tmp), "%4x, ", p->quantization_index[i][j]);
4812*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\t[%d] = %s\n", i, tmp);
4813*54e60f84SAndroid Build Coastguard Worker     }
4814*54e60f84SAndroid Build Coastguard Worker 
4815*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
4816*54e60f84SAndroid Build Coastguard Worker 
4817*54e60f84SAndroid Build Coastguard Worker     return;
4818*54e60f84SAndroid Build Coastguard Worker }
va_TraceVAProbabilityBufferVP8(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)4819*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAProbabilityBufferVP8(
4820*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
4821*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
4822*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
4823*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
4824*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
4825*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
4826*54e60f84SAndroid Build Coastguard Worker     void *data)
4827*54e60f84SAndroid Build Coastguard Worker {
4828*54e60f84SAndroid Build Coastguard Worker     char tmp[1024];
4829*54e60f84SAndroid Build Coastguard Worker     VAProbabilityDataBufferVP8 *p = (VAProbabilityDataBufferVP8 *)data;
4830*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
4831*54e60f84SAndroid Build Coastguard Worker     int i, j, k, l;
4832*54e60f84SAndroid Build Coastguard Worker 
4833*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAProbabilityDataBufferVP8\n");
4834*54e60f84SAndroid Build Coastguard Worker 
4835*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 4; i++)
4836*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 8; j++) {
4837*54e60f84SAndroid Build Coastguard Worker             memset(tmp, 0, sizeof tmp);
4838*54e60f84SAndroid Build Coastguard Worker             for (k = 0; k < 3; k++)
4839*54e60f84SAndroid Build Coastguard Worker                 for (l = 0; l < 11; l++)
4840*54e60f84SAndroid Build Coastguard Worker                     sprintf(tmp + strlen(tmp), "%2x, ", p->dct_coeff_probs[i][j][k][l]);
4841*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t\t[%d, %d] = %s\n", i, j, tmp);
4842*54e60f84SAndroid Build Coastguard Worker         }
4843*54e60f84SAndroid Build Coastguard Worker 
4844*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
4845*54e60f84SAndroid Build Coastguard Worker 
4846*54e60f84SAndroid Build Coastguard Worker     return;
4847*54e60f84SAndroid Build Coastguard Worker }
4848*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAEncSequenceParameterBufferVP8(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)4849*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAEncSequenceParameterBufferVP8(
4850*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
4851*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
4852*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
4853*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
4854*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
4855*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
4856*54e60f84SAndroid Build Coastguard Worker     void *data)
4857*54e60f84SAndroid Build Coastguard Worker {
4858*54e60f84SAndroid Build Coastguard Worker     VAEncSequenceParameterBufferVP8 *p = (VAEncSequenceParameterBufferVP8 *)data;
4859*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
4860*54e60f84SAndroid Build Coastguard Worker     int i;
4861*54e60f84SAndroid Build Coastguard Worker 
4862*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAEncSequenceParameterBufferVP8\n");
4863*54e60f84SAndroid Build Coastguard Worker 
4864*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbits_per_second = %d\n", p->bits_per_second);
4865*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\terror_resilient = %d\n", p->error_resilient);
4866*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_height = %d\n", p->frame_height);
4867*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_width = %d\n", p->frame_width);
4868*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_height_scale = %d\n", p->frame_height_scale);
4869*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_width_scale = %d\n", p->frame_width_scale);
4870*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tkf_auto = %d\n", p->kf_auto);
4871*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tkf_max_dist = %d\n", p->kf_max_dist);
4872*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tkf_min_dist = %d\n", p->kf_min_dist);
4873*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tintra_period = %d\n", p->intra_period);
4874*54e60f84SAndroid Build Coastguard Worker 
4875*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 4; ++i)
4876*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\treference_frames[%d] = 0x%08x\n", i, p->reference_frames[i]);
4877*54e60f84SAndroid Build Coastguard Worker 
4878*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
4879*54e60f84SAndroid Build Coastguard Worker 
4880*54e60f84SAndroid Build Coastguard Worker     return;
4881*54e60f84SAndroid Build Coastguard Worker }
4882*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAEncSequenceParameterBufferVP9(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)4883*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAEncSequenceParameterBufferVP9(
4884*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
4885*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
4886*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
4887*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
4888*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
4889*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
4890*54e60f84SAndroid Build Coastguard Worker     void *data)
4891*54e60f84SAndroid Build Coastguard Worker {
4892*54e60f84SAndroid Build Coastguard Worker     VAEncSequenceParameterBufferVP9 *p = (VAEncSequenceParameterBufferVP9 *)data;
4893*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
4894*54e60f84SAndroid Build Coastguard Worker 
4895*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAEncSequenceParameterBufferVP9\n");
4896*54e60f84SAndroid Build Coastguard Worker 
4897*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmax_frame_height = %d\n", p->max_frame_height);
4898*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmax_frame_width = %d\n", p->max_frame_width);
4899*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tkf_auto = %d\n", p->kf_auto);
4900*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tkf_min_dist = %d\n", p->kf_min_dist);
4901*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tkf_max_dist = %d\n", p->kf_max_dist);
4902*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbits_per_second = %d\n", p->bits_per_second);
4903*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tintra_period = %d\n", p->intra_period);
4904*54e60f84SAndroid Build Coastguard Worker 
4905*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
4906*54e60f84SAndroid Build Coastguard Worker 
4907*54e60f84SAndroid Build Coastguard Worker     return;
4908*54e60f84SAndroid Build Coastguard Worker }
4909*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAPictureParameterBufferVP9(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)4910*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAPictureParameterBufferVP9(
4911*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
4912*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
4913*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
4914*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
4915*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
4916*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
4917*54e60f84SAndroid Build Coastguard Worker     void *data)
4918*54e60f84SAndroid Build Coastguard Worker {
4919*54e60f84SAndroid Build Coastguard Worker     VADecPictureParameterBufferVP9 *p = (VADecPictureParameterBufferVP9 *)data;
4920*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
4921*54e60f84SAndroid Build Coastguard Worker     int i;
4922*54e60f84SAndroid Build Coastguard Worker 
4923*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAPictureParameterBufferVP9\n");
4924*54e60f84SAndroid Build Coastguard Worker 
4925*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_width = %d\n", p->frame_width);
4926*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_height = %d\n", p->frame_height);
4927*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treference_frames[8] =\n");
4928*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 8; i++) {
4929*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\t0x%x\n", p->reference_frames[i]);
4930*54e60f84SAndroid Build Coastguard Worker     }
4931*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsubsampling_x = %d\n", p->pic_fields.bits.subsampling_x);
4932*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsubsampling_y = %d\n", p->pic_fields.bits.subsampling_y);
4933*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_type = %d\n",    p->pic_fields.bits.frame_type);
4934*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tshow_frame = %d\n",    p->pic_fields.bits.show_frame);
4935*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\terror_resilient_mode = %d\n", p->pic_fields.bits.error_resilient_mode);
4936*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tintra_only = %d\n", p->pic_fields.bits.intra_only);
4937*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tallow_high_precision_mv = %d\n", p->pic_fields.bits.allow_high_precision_mv);
4938*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmcomp_filter_type = %d\n", p->pic_fields.bits.mcomp_filter_type);
4939*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_parallel_decoding_mode = %d\n", p->pic_fields.bits.frame_parallel_decoding_mode);
4940*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treset_frame_context = %d\n", p->pic_fields.bits.reset_frame_context);
4941*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\trefresh_frame_context = %d\n", p->pic_fields.bits.refresh_frame_context);
4942*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_context_idx = %d\n", p->pic_fields.bits.frame_context_idx);
4943*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsegmentation_enabled = %d\n", p->pic_fields.bits.segmentation_enabled);
4944*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsegmentation_temporal_update = %d\n", p->pic_fields.bits.segmentation_temporal_update);
4945*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsegmentation_update_map = %d\n", p->pic_fields.bits.segmentation_update_map);
4946*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlast_ref_frame = %d\n", p->pic_fields.bits.last_ref_frame);
4947*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlast_ref_frame_sign_bias = %d\n",    p->pic_fields.bits.last_ref_frame_sign_bias);
4948*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tgolden_ref_frame = %d\n",    p->pic_fields.bits.golden_ref_frame);
4949*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tgolden_ref_frame_sign_bias = %d\n", p->pic_fields.bits.golden_ref_frame_sign_bias);
4950*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\talt_ref_frame = %d\n", p->pic_fields.bits.alt_ref_frame);
4951*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\talt_ref_frame_sign_bias = %d\n", p->pic_fields.bits.alt_ref_frame_sign_bias);
4952*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlossless_flag = %d\n", p->pic_fields.bits.lossless_flag);
4953*54e60f84SAndroid Build Coastguard Worker 
4954*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tfilter_level = %d\n", p->filter_level);
4955*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsharpness_level = %d\n", p->sharpness_level);
4956*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlog2_tile_rows = %d\n", p->log2_tile_rows);
4957*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlog2_tile_columns = %d\n", p->log2_tile_columns);
4958*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_header_length_in_bytes = %d\n", p->frame_header_length_in_bytes);
4959*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tfirst_partition_size = %d\n", p->first_partition_size);
4960*54e60f84SAndroid Build Coastguard Worker 
4961*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmb_segment_tree_probs[7]: [0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x]\n",
4962*54e60f84SAndroid Build Coastguard Worker                 p->mb_segment_tree_probs[0], p->mb_segment_tree_probs[1],
4963*54e60f84SAndroid Build Coastguard Worker                 p->mb_segment_tree_probs[2], p->mb_segment_tree_probs[3],
4964*54e60f84SAndroid Build Coastguard Worker                 p->mb_segment_tree_probs[4], p->mb_segment_tree_probs[5],
4965*54e60f84SAndroid Build Coastguard Worker                 p->mb_segment_tree_probs[6]);
4966*54e60f84SAndroid Build Coastguard Worker 
4967*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsegment_pred_probs[3]: [0x%02x, 0x%02x, 0x%02x]\n", p->segment_pred_probs[0], p->segment_pred_probs[1], p->segment_pred_probs[2]);
4968*54e60f84SAndroid Build Coastguard Worker 
4969*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tprofile = %d\n", p->profile);
4970*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbit_depth = %d\n", p->bit_depth);
4971*54e60f84SAndroid Build Coastguard Worker 
4972*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
4973*54e60f84SAndroid Build Coastguard Worker 
4974*54e60f84SAndroid Build Coastguard Worker     return;
4975*54e60f84SAndroid Build Coastguard Worker }
4976*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAEncSequenceParameterBufferAV1(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)4977*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAEncSequenceParameterBufferAV1(
4978*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
4979*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
4980*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
4981*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
4982*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
4983*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
4984*54e60f84SAndroid Build Coastguard Worker     void *data)
4985*54e60f84SAndroid Build Coastguard Worker {
4986*54e60f84SAndroid Build Coastguard Worker     VAEncSequenceParameterBufferAV1 *p = (VAEncSequenceParameterBufferAV1 *)data;
4987*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
4988*54e60f84SAndroid Build Coastguard Worker 
4989*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAEncSequenceParameterBufferAV1\n");
4990*54e60f84SAndroid Build Coastguard Worker 
4991*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tseq_profile = %d\n", p->seq_profile);
4992*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tseq_level_idx = %d\n", p->seq_level_idx);
4993*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tseq_tier = %d\n", p->seq_tier);
4994*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\thierarchical_flag = %d\n", p->hierarchical_flag);
4995*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tintra_period = %d\n", p->intra_period);
4996*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tip_period = %d\n", p->ip_period);
4997*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbits_per_second = %d\n", p->bits_per_second);
4998*54e60f84SAndroid Build Coastguard Worker 
4999*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tseq_fields.still_picture = %d\n", p->seq_fields.bits.still_picture);
5000*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tseq_fields.use_128x128_superblock = %d\n", p->seq_fields.bits.use_128x128_superblock);
5001*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tseq_fields.enable_filter_intra = %d\n", p->seq_fields.bits.enable_filter_intra);
5002*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tseq_fields.enable_intra_edge_filter = %d\n", p->seq_fields.bits.enable_intra_edge_filter);
5003*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tseq_fields.enable_interintra_compound = %d\n", p->seq_fields.bits.enable_interintra_compound);
5004*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tseq_fields.enable_masked_compound = %d\n", p->seq_fields.bits.enable_masked_compound);
5005*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tseq_fields.enable_warped_motion = %d\n", p->seq_fields.bits.enable_warped_motion);
5006*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tseq_fields.enable_dual_filter = %d\n", p->seq_fields.bits.enable_dual_filter);
5007*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tseq_fields.enable_order_hint = %d\n", p->seq_fields.bits.enable_order_hint);
5008*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tseq_fields.enable_jnt_comp = %d\n", p->seq_fields.bits.enable_jnt_comp);
5009*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tseq_fields.enable_ref_frame_mvs = %d\n", p->seq_fields.bits.enable_ref_frame_mvs);
5010*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tseq_fields.enable_superres = %d\n", p->seq_fields.bits.enable_superres);
5011*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tseq_fields.enable_cdef = %d\n", p->seq_fields.bits.enable_cdef);
5012*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tseq_fields.enable_restoration = %d\n", p->seq_fields.bits.enable_restoration);
5013*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tseq_fields.bit_depth_minus8 = %d\n", p->seq_fields.bits.bit_depth_minus8);
5014*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tseq_fields.subsampling_x = %d\n", p->seq_fields.bits.subsampling_x);
5015*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tseq_fields.subsampling_y = %d\n", p->seq_fields.bits.subsampling_y);
5016*54e60f84SAndroid Build Coastguard Worker 
5017*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\torder_hint_bits_minus_1 = %d\n", p->order_hint_bits_minus_1);
5018*54e60f84SAndroid Build Coastguard Worker 
5019*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
5020*54e60f84SAndroid Build Coastguard Worker 
5021*54e60f84SAndroid Build Coastguard Worker     return;
5022*54e60f84SAndroid Build Coastguard Worker }
5023*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAEncPictureParameterBufferAV1(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)5024*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAEncPictureParameterBufferAV1(
5025*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
5026*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
5027*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
5028*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
5029*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
5030*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
5031*54e60f84SAndroid Build Coastguard Worker     void *data)
5032*54e60f84SAndroid Build Coastguard Worker {
5033*54e60f84SAndroid Build Coastguard Worker     VAEncPictureParameterBufferAV1 *p = (VAEncPictureParameterBufferAV1 *)data;
5034*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
5035*54e60f84SAndroid Build Coastguard Worker     int i, j;
5036*54e60f84SAndroid Build Coastguard Worker 
5037*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAEncPictureParameterBufferAV1\n");
5038*54e60f84SAndroid Build Coastguard Worker 
5039*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_width_minus_1 = %d\n", p->frame_width_minus_1);
5040*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_height_minus_1 = %d\n", p->frame_height_minus_1);
5041*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treconstructed_frame = 0x%08x\n", p->reconstructed_frame);
5042*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcoded_buf = 0x%08x\n", p->coded_buf);
5043*54e60f84SAndroid Build Coastguard Worker 
5044*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 8; i++)
5045*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\treference_frames[%d] = 0x%08x\n", i, p->reference_frames[i]);
5046*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 7; i++)
5047*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tref_frame_idx[%d] = %d\n", i, p->ref_frame_idx[i]);
5048*54e60f84SAndroid Build Coastguard Worker 
5049*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\thierarchical_level_plus1 = %d\n", p->hierarchical_level_plus1);
5050*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tprimary_ref_frame = %d\n", p->primary_ref_frame);
5051*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\torder_hint = %d\n", p->order_hint);
5052*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\trefresh_frame_flags = %d\n", p->refresh_frame_flags);
5053*54e60f84SAndroid Build Coastguard Worker 
5054*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tref_frame_ctrl_l0.fields.search_idx0 = %d\n", p->ref_frame_ctrl_l0.fields.search_idx0);
5055*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tref_frame_ctrl_l0.fields.search_idx1 = %d\n", p->ref_frame_ctrl_l0.fields.search_idx1);
5056*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tref_frame_ctrl_l0.fields.search_idx2 = %d\n", p->ref_frame_ctrl_l0.fields.search_idx2);
5057*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tref_frame_ctrl_l0.fields.search_idx3 = %d\n", p->ref_frame_ctrl_l0.fields.search_idx3);
5058*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tref_frame_ctrl_l0.fields.search_idx4 = %d\n", p->ref_frame_ctrl_l0.fields.search_idx4);
5059*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tref_frame_ctrl_l0.fields.search_idx5 = %d\n", p->ref_frame_ctrl_l0.fields.search_idx5);
5060*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tref_frame_ctrl_l0.fields.search_idx6 = %d\n", p->ref_frame_ctrl_l0.fields.search_idx6);
5061*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tref_frame_ctrl_l1.fields.search_idx0 = %d\n", p->ref_frame_ctrl_l1.fields.search_idx0);
5062*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tref_frame_ctrl_l1.fields.search_idx1 = %d\n", p->ref_frame_ctrl_l1.fields.search_idx1);
5063*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tref_frame_ctrl_l1.fields.search_idx2 = %d\n", p->ref_frame_ctrl_l1.fields.search_idx2);
5064*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tref_frame_ctrl_l1.fields.search_idx3 = %d\n", p->ref_frame_ctrl_l1.fields.search_idx3);
5065*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tref_frame_ctrl_l1.fields.search_idx4 = %d\n", p->ref_frame_ctrl_l1.fields.search_idx4);
5066*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tref_frame_ctrl_l1.fields.search_idx5 = %d\n", p->ref_frame_ctrl_l1.fields.search_idx5);
5067*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tref_frame_ctrl_l1.fields.search_idx6 = %d\n", p->ref_frame_ctrl_l1.fields.search_idx6);
5068*54e60f84SAndroid Build Coastguard Worker 
5069*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpicture_flags.bits.frame_type = %d\n", p->picture_flags.bits.frame_type);
5070*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpicture_flags.bits.error_resilient_mode = %d\n", p->picture_flags.bits.error_resilient_mode);
5071*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpicture_flags.bits.disable_cdf_update = %d\n", p->picture_flags.bits.disable_cdf_update);
5072*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpicture_flags.bits.use_superres = %d\n", p->picture_flags.bits.use_superres);
5073*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpicture_flags.bits.allow_high_precision_mv = %d\n", p->picture_flags.bits.allow_high_precision_mv);
5074*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpicture_flags.bits.use_ref_frame_mvs = %d\n", p->picture_flags.bits.use_ref_frame_mvs);
5075*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpicture_flags.bits.disable_frame_end_update_cdf = %d\n", p->picture_flags.bits.disable_frame_end_update_cdf);
5076*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpicture_flags.bits.reduced_tx_set = %d\n", p->picture_flags.bits.reduced_tx_set);
5077*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpicture_flags.bits.enable_frame_obu = %d\n", p->picture_flags.bits.enable_frame_obu);
5078*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpicture_flags.bits.long_term_reference = %d\n", p->picture_flags.bits.long_term_reference);
5079*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpicture_flags.bits.disable_frame_recon = %d\n", p->picture_flags.bits.disable_frame_recon);
5080*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpicture_flags.bits.allow_intrabc = %d\n", p->picture_flags.bits.allow_intrabc);
5081*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpicture_flags.bits.palette_mode_enable = %d\n", p->picture_flags.bits.palette_mode_enable);
5082*54e60f84SAndroid Build Coastguard Worker 
5083*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tseg_id_block_size = %d\n", p->seg_id_block_size);
5084*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_tile_groups_minus1 = %d\n", p->num_tile_groups_minus1);
5085*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttemporal_id = %d\n", p->temporal_id);
5086*54e60f84SAndroid Build Coastguard Worker 
5087*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 2; i++)
5088*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tfilter_level[%d] = %d\n", i, p->filter_level[i]);
5089*54e60f84SAndroid Build Coastguard Worker 
5090*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tfilter_level_u = %d\n", p->filter_level_u);
5091*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tfilter_level_v = %d\n", p->filter_level_v);
5092*54e60f84SAndroid Build Coastguard Worker 
5093*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tloop_filter_flags.bits.sharpness_level = %d\n", p->loop_filter_flags.bits.sharpness_level);
5094*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tloop_filter_flags.bits.mode_ref_delta_enabled = %d\n", p->loop_filter_flags.bits.mode_ref_delta_enabled);
5095*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tloop_filter_flags.bits.mode_ref_delta_update = %d\n", p->loop_filter_flags.bits.mode_ref_delta_update);
5096*54e60f84SAndroid Build Coastguard Worker 
5097*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsuperres_scale_denominator = %d\n", p->superres_scale_denominator);
5098*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tinterpolation_filter = %d\n", p->interpolation_filter);
5099*54e60f84SAndroid Build Coastguard Worker 
5100*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 8; i++)
5101*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tref_deltas[%d] = %d\n", i, p->ref_deltas[i]);
5102*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 2; i++)
5103*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tmode_deltas[%d] = %d\n", i, p->mode_deltas[i]);
5104*54e60f84SAndroid Build Coastguard Worker 
5105*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbase_qindex = %d\n", p->base_qindex);
5106*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ty_dc_delta_q = %d\n", p->y_dc_delta_q);
5107*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tu_dc_delta_q = %d\n", p->u_dc_delta_q);
5108*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tu_ac_delta_q = %d\n", p->u_ac_delta_q);
5109*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tv_dc_delta_q = %d\n", p->v_dc_delta_q);
5110*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tv_ac_delta_q = %d\n", p->v_ac_delta_q);
5111*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmin_base_qindex = %d\n", p->min_base_qindex);
5112*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmax_base_qindex = %d\n", p->max_base_qindex);
5113*54e60f84SAndroid Build Coastguard Worker 
5114*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tqmatrix_flags.bits.using_qmatrix = %d\n", p->qmatrix_flags.bits.using_qmatrix);
5115*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tqmatrix_flags.bits.qm_y = %d\n", p->qmatrix_flags.bits.qm_y);
5116*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tqmatrix_flags.bits.qm_u = %d\n", p->qmatrix_flags.bits.qm_u);
5117*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tqmatrix_flags.bits.qm_v = %d\n", p->qmatrix_flags.bits.qm_v);
5118*54e60f84SAndroid Build Coastguard Worker 
5119*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmode_control_flags.bits.delta_q_present = %d\n", p->mode_control_flags.bits.delta_q_present);
5120*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmode_control_flags.bits.delta_q_res = %d\n", p->mode_control_flags.bits.delta_q_res);
5121*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmode_control_flags.bits.delta_lf_present = %d\n", p->mode_control_flags.bits.delta_lf_present);
5122*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmode_control_flags.bits.delta_lf_res = %d\n", p->mode_control_flags.bits.delta_lf_res);
5123*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmode_control_flags.bits.delta_lf_multi = %d\n", p->mode_control_flags.bits.delta_lf_multi);
5124*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmode_control_flags.bits.tx_mode = %d\n", p->mode_control_flags.bits.tx_mode);
5125*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmode_control_flags.bits.reference_mode = %d\n", p->mode_control_flags.bits.reference_mode);
5126*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmode_control_flags.bits.skip_mode_present = %d\n", p->mode_control_flags.bits.skip_mode_present);
5127*54e60f84SAndroid Build Coastguard Worker 
5128*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsegments.seg_flags.bits.segmentation_enabled = %d\n", p->segments.seg_flags.bits.segmentation_enabled);
5129*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsegments.seg_flags.bits.segmentation_update_map = %d\n", p->segments.seg_flags.bits.segmentation_update_map);
5130*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsegments.seg_flags.bits.segmentation_temporal_update = %d\n", p->segments.seg_flags.bits.segmentation_temporal_update);
5131*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsegments.segment_number = %d\n", p->segments.segment_number);
5132*54e60f84SAndroid Build Coastguard Worker 
5133*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 8; i++) {
5134*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 8; j++)
5135*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\tsegments.feature_data[%d][%d] = %d\n", i, j, p->segments.feature_data[i][j]);
5136*54e60f84SAndroid Build Coastguard Worker     }
5137*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 8; i++)
5138*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tsegments.feature_mask[%d] = %d\n", i, p->segments.feature_mask[i]);
5139*54e60f84SAndroid Build Coastguard Worker 
5140*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttile_cols = %d\n", p->tile_cols);
5141*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttile_rows = %d\n", p->tile_rows);
5142*54e60f84SAndroid Build Coastguard Worker 
5143*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 63; i++)
5144*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\twidth_in_sbs_minus_1[%d] = %d\n", i, p->width_in_sbs_minus_1[i]);
5145*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 63; i++)
5146*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\theight_in_sbs_minus_1[%d] = %d\n", i, p->height_in_sbs_minus_1[i]);
5147*54e60f84SAndroid Build Coastguard Worker 
5148*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcontext_update_tile_id = %d\n", p->context_update_tile_id);
5149*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcdef_damping_minus_3 = %d\n", p->cdef_damping_minus_3);
5150*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcdef_bits= %d\n", p->cdef_bits);
5151*54e60f84SAndroid Build Coastguard Worker 
5152*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 8; i++)
5153*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tcdef_y_strengths[%d] = %d\n", i, p->cdef_y_strengths[i]);
5154*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 8; i++)
5155*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tcdef_uv_strengths[%d] = %d\n", i, p->cdef_uv_strengths[i]);
5156*54e60f84SAndroid Build Coastguard Worker 
5157*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tloop_restoration_flags.bits.yframe_restoration_type = %d\n", p->loop_restoration_flags.bits.yframe_restoration_type);
5158*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tloop_restoration_flags.bits.cbframe_restoration_type = %d\n", p->loop_restoration_flags.bits.cbframe_restoration_type);
5159*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tloop_restoration_flags.bits.crframe_restoration_type = %d\n", p->loop_restoration_flags.bits.crframe_restoration_type);
5160*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tloop_restoration_flags.bits.lr_unit_shift = %d\n", p->loop_restoration_flags.bits.lr_unit_shift);
5161*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tloop_restoration_flags.bits.lr_uv_shift = %d\n", p->loop_restoration_flags.bits.lr_uv_shift);
5162*54e60f84SAndroid Build Coastguard Worker 
5163*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 7; i++) {
5164*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\twm[%d].wmtype= %d\n", i, p->wm[i].wmtype);
5165*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 8; j++)
5166*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\twm[%d].wmmat[%d]= %d\n", i, j, p->wm[i].wmmat[j]);
5167*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\twm[%d].invalid= %d\n", i, p->wm[i].invalid);
5168*54e60f84SAndroid Build Coastguard Worker     }
5169*54e60f84SAndroid Build Coastguard Worker 
5170*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbit_offset_qindex = %d\n", p->bit_offset_qindex);
5171*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbit_offset_segmentation = %d\n", p->bit_offset_segmentation);
5172*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbit_offset_loopfilter_params = %d\n", p->bit_offset_loopfilter_params);
5173*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbit_offset_cdef_params = %d\n", p->bit_offset_cdef_params);
5174*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsize_in_bits_cdef_params = %d\n", p->size_in_bits_cdef_params);
5175*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbyte_offset_frame_hdr_obu_size = %d\n", p->byte_offset_frame_hdr_obu_size);
5176*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsize_in_bits_frame_hdr_obu = %d\n", p->size_in_bits_frame_hdr_obu);
5177*54e60f84SAndroid Build Coastguard Worker 
5178*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttile_group_obu_hdr_info.bits.obu_extension_flag = %d\n", p->tile_group_obu_hdr_info.bits.obu_extension_flag);
5179*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttile_group_obu_hdr_info.bits.obu_has_size_field = %d\n", p->tile_group_obu_hdr_info.bits.obu_has_size_field);
5180*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttile_group_obu_hdr_info.bits.temporal_id = %d\n", p->tile_group_obu_hdr_info.bits.temporal_id);
5181*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttile_group_obu_hdr_info.bits.spatial_id = %d\n", p->tile_group_obu_hdr_info.bits.spatial_id);
5182*54e60f84SAndroid Build Coastguard Worker 
5183*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnumber_skip_frames = %d\n", p->number_skip_frames);
5184*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tskip_frames_reduced_size = %d\n", p->skip_frames_reduced_size);
5185*54e60f84SAndroid Build Coastguard Worker 
5186*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
5187*54e60f84SAndroid Build Coastguard Worker 
5188*54e60f84SAndroid Build Coastguard Worker     return;
5189*54e60f84SAndroid Build Coastguard Worker }
5190*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAEncSliceParameterBufferAV1(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)5191*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAEncSliceParameterBufferAV1(
5192*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
5193*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
5194*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
5195*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
5196*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
5197*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
5198*54e60f84SAndroid Build Coastguard Worker     void *data)
5199*54e60f84SAndroid Build Coastguard Worker {
5200*54e60f84SAndroid Build Coastguard Worker     VAEncTileGroupBufferAV1* p = (VAEncTileGroupBufferAV1*)data;
5201*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
5202*54e60f84SAndroid Build Coastguard Worker 
5203*54e60f84SAndroid Build Coastguard Worker     if (!p)
5204*54e60f84SAndroid Build Coastguard Worker         return;
5205*54e60f84SAndroid Build Coastguard Worker 
5206*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAEncTileGroupBufferAV1\n");
5207*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttg_start = %u\n", p->tg_start);
5208*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttg_end = %u\n", p->tg_end);
5209*54e60f84SAndroid Build Coastguard Worker 
5210*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
5211*54e60f84SAndroid Build Coastguard Worker 
5212*54e60f84SAndroid Build Coastguard Worker     return;
5213*54e60f84SAndroid Build Coastguard Worker }
5214*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAPictureParameterBufferAV1(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)5215*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAPictureParameterBufferAV1(
5216*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
5217*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
5218*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
5219*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
5220*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
5221*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
5222*54e60f84SAndroid Build Coastguard Worker     void *data)
5223*54e60f84SAndroid Build Coastguard Worker {
5224*54e60f84SAndroid Build Coastguard Worker     VADecPictureParameterBufferAV1 *p = (VADecPictureParameterBufferAV1 *)data;
5225*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
5226*54e60f84SAndroid Build Coastguard Worker     int i, j;
5227*54e60f84SAndroid Build Coastguard Worker 
5228*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAPictureParameterBufferAV1\n");
5229*54e60f84SAndroid Build Coastguard Worker 
5230*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tprofile = %d\n", p->profile);
5231*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\torder_hint_bits_minus_1 = %d\n", p->order_hint_bits_minus_1);
5232*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbit_depth_idx = %d\n", p->bit_depth_idx);
5233*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmatrix_coefficients = %d\n", p->matrix_coefficients);
5234*54e60f84SAndroid Build Coastguard Worker 
5235*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tseq_info_fields = %X\n", p->seq_info_fields.value);
5236*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tseq_info_fields.still_picture = %d\n", p->seq_info_fields.fields.still_picture);
5237*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tseq_info_fields.use_128x128_superblock = %d\n", p->seq_info_fields.fields.use_128x128_superblock);
5238*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tseq_info_fields.enable_filter_intra = %d\n", p->seq_info_fields.fields.enable_filter_intra);
5239*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tseq_info_fields.enable_intra_edge_filter = %d\n", p->seq_info_fields.fields.enable_intra_edge_filter);
5240*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tseq_info_fields.enable_interintra_compound = %d\n", p->seq_info_fields.fields.enable_interintra_compound);
5241*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tseq_info_fields.enable_masked_compound = %d\n", p->seq_info_fields.fields.enable_masked_compound);
5242*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tseq_info_fields.enable_dual_filter = %d\n", p->seq_info_fields.fields.enable_dual_filter);
5243*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tseq_info_fields.enable_order_hint = %d\n", p->seq_info_fields.fields.enable_order_hint);
5244*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tseq_info_fields.enable_jnt_comp = %d\n", p->seq_info_fields.fields.enable_jnt_comp);
5245*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tseq_info_fields.enable_cdef = %d\n", p->seq_info_fields.fields.enable_cdef);
5246*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tseq_info_fields.mono_chrome = %d\n", p->seq_info_fields.fields.mono_chrome);
5247*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tseq_info_fields.color_range = %d\n", p->seq_info_fields.fields.color_range);
5248*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tseq_info_fields.subsampling_x = %d\n", p->seq_info_fields.fields.subsampling_x);
5249*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tseq_info_fields.subsampling_y = %d\n", p->seq_info_fields.fields.subsampling_y);
5250*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tseq_info_fields.film_grain_params_present = %d\n", p->seq_info_fields.fields.film_grain_params_present);
5251*54e60f84SAndroid Build Coastguard Worker 
5252*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcurrent_frame = %X\n", p->current_frame);
5253*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcurrent_display_picture = %X\n", p->current_display_picture);
5254*54e60f84SAndroid Build Coastguard Worker 
5255*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tanchor_frames_num = %d\n", p->anchor_frames_num);
5256*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < p->anchor_frames_num; i++)
5257*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\tanchor_frames_list[%d] = %X\n", i, p->anchor_frames_list[i]);
5258*54e60f84SAndroid Build Coastguard Worker 
5259*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_width_minus_1 = %d\n", p->frame_width_minus1);
5260*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_height_minus1 = %d\n", p->frame_height_minus1);
5261*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\toutput_frame_width_in_tiles_minus_1 = %d\n", p->output_frame_width_in_tiles_minus_1);
5262*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\toutput_frame_height_in_tiles_minus_1 = %d\n", p->output_frame_height_in_tiles_minus_1);
5263*54e60f84SAndroid Build Coastguard Worker 
5264*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 8; i++)
5265*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tref_frame_map[%d] = %X\n", i, p->ref_frame_map[i]);
5266*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 7; i++)
5267*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tref_frame_idx[%d] = %d\n", i, p->ref_frame_idx[i]);
5268*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tprimary_ref_frame = %d\n", p->primary_ref_frame);
5269*54e60f84SAndroid Build Coastguard Worker 
5270*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\torder_hint = %d\n", p->order_hint);
5271*54e60f84SAndroid Build Coastguard Worker 
5272*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tseg_info:\n");
5273*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tseg_info.segment_info_fields = %d\n", p->seg_info.segment_info_fields.value);
5274*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\t\tseg_info.segment_info_fields.bits.enabled = %d\n", p->seg_info.segment_info_fields.bits.enabled);
5275*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\t\tseg_info.segment_info_fields.bits.update_map = %d\n", p->seg_info.segment_info_fields.bits.update_map);
5276*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\t\tseg_info.segment_info_fields.bits.temporal_update = %d\n", p->seg_info.segment_info_fields.bits.temporal_update);
5277*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\t\tseg_info.segment_info_fields.bits.update_data = %d\n", p->seg_info.segment_info_fields.bits.update_data);
5278*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 8; i++)
5279*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 8; j++)
5280*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t\tseg_info.feature_data[%d][%d] = %d\n", i, j, p->seg_info.feature_data[i][j]);
5281*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 8; i++)
5282*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\tseg_info.feature_mask[%d] = %d\n", i, p->seg_info.feature_mask[i]);
5283*54e60f84SAndroid Build Coastguard Worker 
5284*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tfilm_grain_info:\n");
5285*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tfilm_grain_info.film_grain_info_fields = %d\n", p->film_grain_info.film_grain_info_fields.value);
5286*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\t\tfilm_grain_info.film_grain_info_fields.apply_grain = %d\n", p->film_grain_info.film_grain_info_fields.bits.apply_grain);
5287*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\t\tfilm_grain_info.film_grain_info_fields.chroma_scaling_from_luma = %d\n", p->film_grain_info.film_grain_info_fields.bits.chroma_scaling_from_luma);
5288*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\t\tfilm_grain_info.film_grain_info_fields.grain_scaling_minus_8 = %d\n", p->film_grain_info.film_grain_info_fields.bits.grain_scaling_minus_8);
5289*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\t\tfilm_grain_info.film_grain_info_fields.ar_coeff_lag = %d\n", p->film_grain_info.film_grain_info_fields.bits.ar_coeff_lag);
5290*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\t\tfilm_grain_info.film_grain_info_fields.ar_coeff_shift_minus_6 = %d\n", p->film_grain_info.film_grain_info_fields.bits.ar_coeff_shift_minus_6);
5291*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\t\tfilm_grain_info.film_grain_info_fields.grain_scale_shift = %d\n", p->film_grain_info.film_grain_info_fields.bits.grain_scale_shift);
5292*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\t\tfilm_grain_info.film_grain_info_fields.overlap_flag = %d\n", p->film_grain_info.film_grain_info_fields.bits.overlap_flag);
5293*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\t\tfilm_grain_info.film_grain_info_fields.clip_to_restricted_range = %d\n", p->film_grain_info.film_grain_info_fields.bits.clip_to_restricted_range);
5294*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tfilm_grain_info.grain_seed = %d\n", p->film_grain_info.grain_seed);
5295*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tfilm_grain_info.num_y_points = %d\n", p->film_grain_info.num_y_points);
5296*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 14; i++)
5297*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\tfilm_grain_info.point_y_value[%d] = %d\n", i, p->film_grain_info.point_y_value[i]);
5298*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 14; i++)
5299*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\tfilm_grain_info.point_y_scaling[%d] = %d\n", i, p->film_grain_info.point_y_scaling[i]);
5300*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tfilm_grain_info.num_cb_points = %d\n", p->film_grain_info.num_cb_points);
5301*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 10; i++)
5302*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\tfilm_grain_info.point_cb_value[%d] = %d\n", i, p->film_grain_info.point_cb_value[i]);
5303*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 10; i++)
5304*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\tfilm_grain_info.point_cb_scaling[%d] = %d\n", i, p->film_grain_info.point_cb_scaling[i]);
5305*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tfilm_grain_info.num_cr_points = %d\n", p->film_grain_info.num_cr_points);
5306*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 10; i++)
5307*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\tfilm_grain_info.point_cr_value[%d] = %d\n", i, p->film_grain_info.point_cr_value[i]);
5308*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 10; i++)
5309*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\tfilm_grain_info.point_cr_scaling[%d] = %d\n", i, p->film_grain_info.point_cr_scaling[i]);
5310*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 24; i++)
5311*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\tfilm_grain_info.ar_coeffs_y[%d] = %d\n", i, p->film_grain_info.ar_coeffs_y[i]);
5312*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 25; i++)
5313*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\tfilm_grain_info.ar_coeffs_cb[%d] = %d\n", i, p->film_grain_info.ar_coeffs_cb[i]);
5314*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 25; i++)
5315*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\tfilm_grain_info.ar_coeffs_cr[%d] = %d\n", i, p->film_grain_info.ar_coeffs_cr[i]);
5316*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tfilm_grain_info.cb_mult = %d\n", p->film_grain_info.cb_mult);
5317*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tfilm_grain_info.cb_luma_mult = %d\n", p->film_grain_info.cb_luma_mult);
5318*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tfilm_grain_info.cb_offset = %d\n", p->film_grain_info.cb_offset);
5319*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tfilm_grain_info.cr_mult = %d\n", p->film_grain_info.cr_mult);
5320*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tfilm_grain_info.cr_luma_mult = %d\n", p->film_grain_info.cr_luma_mult);
5321*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tfilm_grain_info.cr_offset = %d\n", p->film_grain_info.cr_offset);
5322*54e60f84SAndroid Build Coastguard Worker 
5323*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttile_cols = %d\n", p->tile_cols);
5324*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttile_rows = %d\n", p->tile_rows);
5325*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 63; i++)
5326*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\twidth_in_sbs_minus_1[%d] = %d\n", i, p->width_in_sbs_minus_1[i]);
5327*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 63; i++)
5328*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\theight_in_sbs_minus_1[%d] = %d\n", i, p->height_in_sbs_minus_1[i]);
5329*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttile_count_minus_1 = %d\n", p->tile_count_minus_1);
5330*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcontext_update_tile_id = %d\n", p->context_update_tile_id);
5331*54e60f84SAndroid Build Coastguard Worker 
5332*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_info_fields = %X\n", p->pic_info_fields.value);
5333*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tpic_info_fields.frame_type = %d\n", p->pic_info_fields.bits.frame_type);
5334*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tpic_info_fields.show_frame = %d\n", p->pic_info_fields.bits.show_frame);
5335*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tpic_info_fields.showable_frame = %d\n", p->pic_info_fields.bits.showable_frame);
5336*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tpic_info_fields.error_resilient_mode = %d\n", p->pic_info_fields.bits.error_resilient_mode);
5337*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tpic_info_fields.disable_cdf_update = %d\n", p->pic_info_fields.bits.disable_cdf_update);
5338*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tpic_info_fields.allow_screen_content_tools = %d\n", p->pic_info_fields.bits.allow_screen_content_tools);
5339*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tpic_info_fields.force_integer_mv = %d\n", p->pic_info_fields.bits.force_integer_mv);
5340*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tpic_info_fields.allow_intrabc = %d\n", p->pic_info_fields.bits.allow_intrabc);
5341*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tpic_info_fields.use_superres = %d\n", p->pic_info_fields.bits.use_superres);
5342*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tpic_info_fields.allow_high_precision_mv = %d\n", p->pic_info_fields.bits.allow_high_precision_mv);
5343*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tpic_info_fields.is_motion_mode_switchable = %d\n", p->pic_info_fields.bits.is_motion_mode_switchable);
5344*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tpic_info_fields.use_ref_frame_mvs = %d\n", p->pic_info_fields.bits.use_ref_frame_mvs);
5345*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tpic_info_fields.disable_frame_end_update_cdf = %d\n", p->pic_info_fields.bits.disable_frame_end_update_cdf);
5346*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tpic_info_fields.uniform_tile_spacing_flag = %d\n", p->pic_info_fields.bits.uniform_tile_spacing_flag);
5347*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tpic_info_fields.allow_warped_motion = %d\n", p->pic_info_fields.bits.allow_warped_motion);
5348*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tpic_info_fields.large_scale_tile = %d\n", p->pic_info_fields.bits.large_scale_tile);
5349*54e60f84SAndroid Build Coastguard Worker 
5350*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsuperres_scale_denominator = %d\n", p->superres_scale_denominator);
5351*54e60f84SAndroid Build Coastguard Worker 
5352*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tinterp_filter = %d\n", p->interp_filter);
5353*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tfilter_level[0] = %d\n", p->filter_level[0]);
5354*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tfilter_level[1] = %d\n", p->filter_level[1]);
5355*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tfilter_level_u = %d\n", p->filter_level_u);
5356*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tfilter_level_v = %d\n", p->filter_level_v);
5357*54e60f84SAndroid Build Coastguard Worker 
5358*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tloop_filter_info_fields = %X\n", p->loop_filter_info_fields.value);
5359*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tloop_filter_info_fields.bits.sharpness_level = %d\n", p->loop_filter_info_fields.bits.sharpness_level);
5360*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tloop_filter_info_fields.bits.mode_ref_delta_enabled = %d\n", p->loop_filter_info_fields.bits.mode_ref_delta_enabled);
5361*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tloop_filter_info_fields.bits.mode_ref_delta_update = %d\n", p->loop_filter_info_fields.bits.mode_ref_delta_update);
5362*54e60f84SAndroid Build Coastguard Worker 
5363*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 8; i++)
5364*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tref_deltas[%d] = %d\n", i, p->ref_deltas[i]);
5365*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 2; i++)
5366*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tmode_deltas[%d] = %d\n", i, p->mode_deltas[i]);
5367*54e60f84SAndroid Build Coastguard Worker 
5368*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbase_qindex = %d\n", p->base_qindex);
5369*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ty_dc_delta_q = %d\n", p->y_dc_delta_q);
5370*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tu_dc_delta_q = %d\n", p->u_dc_delta_q);
5371*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tu_ac_delta_q = %d\n", p->u_ac_delta_q);
5372*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tv_dc_delta_q = %d\n", p->v_dc_delta_q);
5373*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tv_ac_delta_q = %d\n", p->v_ac_delta_q);
5374*54e60f84SAndroid Build Coastguard Worker 
5375*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tqmatrix_fields = %X\n", p->qmatrix_fields.value);
5376*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tqmatrix_fields.bits.using_qmatrix = %d\n", p->qmatrix_fields.bits.using_qmatrix);
5377*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tqmatrix_fields.bits.qm_y = %d\n", p->qmatrix_fields.bits.qm_y);
5378*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tqmatrix_fields.bits.qm_u = %d\n", p->qmatrix_fields.bits.qm_u);
5379*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tqmatrix_fields.bits.qm_v = %d\n", p->qmatrix_fields.bits.qm_v);
5380*54e60f84SAndroid Build Coastguard Worker 
5381*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmode_control_fields = %X\n", p->mode_control_fields.value);
5382*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tmode_control_fields.delta_q_present_flag = %d\n", p->mode_control_fields.bits.delta_q_present_flag);
5383*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tmode_control_fields.log2_delta_q_res = %d\n", p->mode_control_fields.bits.log2_delta_q_res);
5384*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tmode_control_fields.delta_lf_present_flag = %d\n", p->mode_control_fields.bits.delta_lf_present_flag);
5385*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tmode_control_fields.log2_delta_lf_res = %d\n", p->mode_control_fields.bits.log2_delta_lf_res);
5386*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tmode_control_fields.delta_lf_multi = %d\n", p->mode_control_fields.bits.delta_lf_multi);
5387*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tmode_control_fields.tx_mode = %d\n", p->mode_control_fields.bits.tx_mode);
5388*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tmode_control_fields.reference_select = %d\n", p->mode_control_fields.bits.reference_select);
5389*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tmode_control_fields.reduced_tx_set_used = %d\n", p->mode_control_fields.bits.reduced_tx_set_used);
5390*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tmode_control_fields.skip_mode_present = %d\n", p->mode_control_fields.bits.skip_mode_present);
5391*54e60f84SAndroid Build Coastguard Worker 
5392*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcdef_damping_minus_3 = %X\n", p->cdef_damping_minus_3);
5393*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcdef_bits = %X\n", p->cdef_bits);
5394*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 8; i++)
5395*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tcdef_y_strengths[%d] = %d\n", i, p->cdef_y_strengths[i]);
5396*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 8; i++)
5397*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tcdef_uv_strengths[%d] = %d\n", i, p->cdef_uv_strengths[i]);
5398*54e60f84SAndroid Build Coastguard Worker 
5399*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tloop_restoration_fields = %X\n", p->loop_restoration_fields.value);
5400*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tloop_restoration_fields.bits.yframe_restoration_type = %d\n", p->loop_restoration_fields.bits.yframe_restoration_type);
5401*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tloop_restoration_fields.bits.cbframe_restoration_type = %d\n", p->loop_restoration_fields.bits.cbframe_restoration_type);
5402*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tloop_restoration_fields.bits.crframe_restoration_type = %d\n", p->loop_restoration_fields.bits.crframe_restoration_type);
5403*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tloop_restoration_fields.bits.lr_unit_shift = %d\n", p->loop_restoration_fields.bits.lr_unit_shift);
5404*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t\tloop_restoration_fields.bits.lr_uv_shift = %d\n", p->loop_restoration_fields.bits.lr_uv_shift);
5405*54e60f84SAndroid Build Coastguard Worker 
5406*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 7; i++) {
5407*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\twm[%d]:\n", i);
5408*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\twm[%d].wmtype = %d:\n", i, p->wm[i].wmtype);
5409*54e60f84SAndroid Build Coastguard Worker         for (j = 0; j < 8; j++)
5410*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t\twm[%d].wmmat[%d] = %d:\n", i, j, p->wm[i].wmmat[j]);
5411*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\twm[%d].invalid = %d:\n", i, p->wm[i].invalid);
5412*54e60f84SAndroid Build Coastguard Worker     }
5413*54e60f84SAndroid Build Coastguard Worker 
5414*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
5415*54e60f84SAndroid Build Coastguard Worker 
5416*54e60f84SAndroid Build Coastguard Worker     return;
5417*54e60f84SAndroid Build Coastguard Worker }
5418*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAEncPictureParameterBufferVP8(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)5419*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAEncPictureParameterBufferVP8(
5420*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
5421*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
5422*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
5423*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
5424*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
5425*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
5426*54e60f84SAndroid Build Coastguard Worker     void *data)
5427*54e60f84SAndroid Build Coastguard Worker {
5428*54e60f84SAndroid Build Coastguard Worker     VAEncPictureParameterBufferVP8 *p = (VAEncPictureParameterBufferVP8 *)data;
5429*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
5430*54e60f84SAndroid Build Coastguard Worker     int i;
5431*54e60f84SAndroid Build Coastguard Worker 
5432*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAEncPictureParameterBufferVP8\n");
5433*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treconstructed_frame = 0x%08x\n", p->reconstructed_frame);
5434*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tref_last_frame = 0x%08x\n", p->ref_last_frame);
5435*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tref_gf_frame = 0x%08x\n", p->ref_gf_frame);
5436*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tref_arf_frame = 0x%08x\n", p->ref_arf_frame);
5437*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcoded_buf = 0x%08x\n", p->coded_buf);
5438*54e60f84SAndroid Build Coastguard Worker 
5439*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tref_flags.bits.force_kf = %d\n", p->ref_flags.bits.force_kf);
5440*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tref_flags.bits.no_ref_last = %d\n", p->ref_flags.bits.no_ref_last);
5441*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tref_flags.bits.no_ref_gf = %d\n", p->ref_flags.bits.no_ref_gf);
5442*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tref_flags.bits.no_ref_arf = %d\n", p->ref_flags.bits.no_ref_arf);
5443*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tref_flags.bits.no_ref_arf = 0x%08x\n", p->ref_flags.bits.reserved);
5444*54e60f84SAndroid Build Coastguard Worker 
5445*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.frame_type = %d\n", p->pic_flags.bits.frame_type);
5446*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.version = %d\n", p->pic_flags.bits.version);
5447*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.show_frame = %d\n", p->pic_flags.bits.show_frame);
5448*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.color_space = %d\n", p->pic_flags.bits.color_space);
5449*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.recon_filter_type = %d\n", p->pic_flags.bits.recon_filter_type);
5450*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.loop_filter_type = %d\n", p->pic_flags.bits.loop_filter_type);
5451*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.auto_partitions = %d\n", p->pic_flags.bits.auto_partitions);
5452*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.num_token_partitions = %d\n", p->pic_flags.bits.num_token_partitions);
5453*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.clamping_type = %d\n", p->pic_flags.bits.clamping_type);
5454*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.segmentation_enabled = %d\n", p->pic_flags.bits.segmentation_enabled);
5455*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.update_mb_segmentation_map = %d\n", p->pic_flags.bits.update_mb_segmentation_map);
5456*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.update_segment_feature_data = %d\n", p->pic_flags.bits.update_segment_feature_data);
5457*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.loop_filter_adj_enable = %d\n", p->pic_flags.bits.loop_filter_adj_enable);
5458*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.refresh_entropy_probs = %d\n", p->pic_flags.bits.refresh_entropy_probs);
5459*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.refresh_golden_frame = %d\n", p->pic_flags.bits.refresh_golden_frame);
5460*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.refresh_alternate_frame = %d\n", p->pic_flags.bits.refresh_alternate_frame);
5461*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.refresh_last = %d\n", p->pic_flags.bits.refresh_last);
5462*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.copy_buffer_to_golden = %d\n", p->pic_flags.bits.copy_buffer_to_golden);
5463*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.copy_buffer_to_alternate = %d\n", p->pic_flags.bits.copy_buffer_to_alternate);
5464*54e60f84SAndroid Build Coastguard Worker 
5465*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.sign_bias_golden = %d\n", p->pic_flags.bits.sign_bias_golden);
5466*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.sign_bias_alternate = %d\n", p->pic_flags.bits.sign_bias_alternate);
5467*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.mb_no_coeff_skip = %d\n", p->pic_flags.bits.mb_no_coeff_skip);
5468*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.forced_lf_adjustment = %d\n", p->pic_flags.bits.forced_lf_adjustment);
5469*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.reserved = %d\n", p->pic_flags.bits.reserved);
5470*54e60f84SAndroid Build Coastguard Worker 
5471*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 4; i++)
5472*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tloop_filter_level[%d] = %d\n", i, p->loop_filter_level[i]);
5473*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 4; i++)
5474*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tref_lf_delta[%d] = %d\n", i, p->ref_lf_delta[i]);
5475*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 4; i++)
5476*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tmode_lf_delta[%d] = %d\n", i, p->mode_lf_delta[i]);
5477*54e60f84SAndroid Build Coastguard Worker 
5478*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsharpness_level = %d\n", p->sharpness_level);
5479*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tclamp_qindex_high = %d\n", p->clamp_qindex_high);
5480*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tclamp_qindex_low = %d\n", p->clamp_qindex_low);
5481*54e60f84SAndroid Build Coastguard Worker 
5482*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
5483*54e60f84SAndroid Build Coastguard Worker 
5484*54e60f84SAndroid Build Coastguard Worker     return;
5485*54e60f84SAndroid Build Coastguard Worker }
5486*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAEncPictureParameterBufferVP9(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)5487*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAEncPictureParameterBufferVP9(
5488*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
5489*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
5490*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
5491*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
5492*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
5493*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
5494*54e60f84SAndroid Build Coastguard Worker     void *data)
5495*54e60f84SAndroid Build Coastguard Worker {
5496*54e60f84SAndroid Build Coastguard Worker     VAEncPictureParameterBufferVP9 *p = (VAEncPictureParameterBufferVP9 *)data;
5497*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
5498*54e60f84SAndroid Build Coastguard Worker     int i;
5499*54e60f84SAndroid Build Coastguard Worker 
5500*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAEncPictureParameterBufferVP9\n");
5501*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_width_src = %d\n", p->frame_width_src);
5502*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_height_src = %d\n", p->frame_height_src);
5503*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_width_dst = %d\n", p->frame_width_dst);
5504*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_height_dst = %d\n", p->frame_height_dst);
5505*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treconstructed_frame = 0x%08x\n", p->reconstructed_frame);
5506*54e60f84SAndroid Build Coastguard Worker 
5507*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 8; i++)
5508*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\treference_frames[%d] = 0x%08x\n", i, p->reference_frames[i]);
5509*54e60f84SAndroid Build Coastguard Worker 
5510*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcoded_buf = 0x%x\n", p->coded_buf);
5511*54e60f84SAndroid Build Coastguard Worker 
5512*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tref_flags.bits.force_kf = %d\n", p->ref_flags.bits.force_kf);
5513*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tref_flags.bits.ref_frame_ctrl_l0 = %d\n", p->ref_flags.bits.ref_frame_ctrl_l0);
5514*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tref_flags.bits.ref_frame_ctrl_l1 = %d\n", p->ref_flags.bits.ref_frame_ctrl_l1);
5515*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tref_flags.bits.ref_last_idx = %d\n", p->ref_flags.bits.ref_last_idx);
5516*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tref_flags.bits.ref_last_sign_bias = %d\n", p->ref_flags.bits.ref_last_sign_bias);
5517*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tref_flags.bits.ref_gf_idx = %d\n", p->ref_flags.bits.ref_gf_idx);
5518*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tref_flags.bits.ref_gf_sign_bias = %d\n", p->ref_flags.bits.ref_gf_sign_bias);
5519*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tref_flags.bits.ref_arf_idx = %d\n", p->ref_flags.bits.ref_arf_idx);
5520*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tref_flags.bits.ref_arf_sign_bias = %d\n", p->ref_flags.bits.ref_arf_sign_bias);
5521*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tref_flags.bits.temporal_id = %d\n", p->ref_flags.bits.temporal_id);
5522*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tref_flags.bits.reserved = %d\n", p->ref_flags.bits.reserved);
5523*54e60f84SAndroid Build Coastguard Worker 
5524*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.frame_type = %d\n", p->pic_flags.bits.frame_type);
5525*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.show_frame = %d\n", p->pic_flags.bits.show_frame);
5526*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.error_resilient_mode = %d\n", p->pic_flags.bits.error_resilient_mode);
5527*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.intra_only = %d\n", p->pic_flags.bits.intra_only);
5528*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.allow_high_precision_mv = %d\n", p->pic_flags.bits.allow_high_precision_mv);
5529*54e60f84SAndroid Build Coastguard Worker 
5530*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.mcomp_filter_type = %d\n", p->pic_flags.bits.mcomp_filter_type);
5531*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.frame_parallel_decoding_mode = %d\n", p->pic_flags.bits.frame_parallel_decoding_mode);
5532*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.reset_frame_context = %d\n", p->pic_flags.bits.reset_frame_context);
5533*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.refresh_frame_context = %d\n", p->pic_flags.bits.refresh_frame_context);
5534*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.frame_context_idx = %d\n", p->pic_flags.bits.frame_context_idx);
5535*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.segmentation_enabled = %d\n", p->pic_flags.bits.segmentation_enabled);
5536*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.segmentation_temporal_update = %d\n", p->pic_flags.bits.segmentation_temporal_update);
5537*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.segmentation_update_map = %d\n", p->pic_flags.bits.segmentation_update_map);
5538*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.lossless_mode = %d\n", p->pic_flags.bits.lossless_mode);
5539*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.comp_prediction_mode = %d\n", p->pic_flags.bits.comp_prediction_mode);
5540*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.auto_segmentation = %d\n", p->pic_flags.bits.auto_segmentation);
5541*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.super_frame_flag = %d\n", p->pic_flags.bits.super_frame_flag);
5542*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.reserved = %d\n", p->pic_flags.bits.reserved);
5543*54e60f84SAndroid Build Coastguard Worker 
5544*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\trefresh_frame_flags = %d\n", p->refresh_frame_flags);
5545*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tluma_ac_qindex = %d\n", p->luma_ac_qindex);
5546*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tluma_dc_qindex_delta = %d\n", p->luma_dc_qindex_delta);
5547*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tchroma_ac_qindex_delta = %d\n", p->chroma_ac_qindex_delta);
5548*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tchroma_dc_qindex_delta = %d\n", p->chroma_dc_qindex_delta);
5549*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tfilter_level = %d\n", p->filter_level);
5550*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsharpness_level = %d\n", p->sharpness_level);
5551*54e60f84SAndroid Build Coastguard Worker 
5552*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 4; i++)
5553*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tref_lf_delta[%d] = %d\n", i, p->ref_lf_delta[i]);
5554*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 2; i++)
5555*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tmode_lf_delta[%d] = %d\n", i, p->mode_lf_delta[i]);
5556*54e60f84SAndroid Build Coastguard Worker 
5557*54e60f84SAndroid Build Coastguard Worker 
5558*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbit_offset_ref_lf_delta = %d\n", p->bit_offset_ref_lf_delta);
5559*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbit_offset_mode_lf_delta = %d\n", p->bit_offset_mode_lf_delta);
5560*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbit_offset_lf_level = %d\n", p->bit_offset_lf_level);
5561*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbit_offset_qindex = %d\n", p->bit_offset_qindex);
5562*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbit_offset_first_partition_size = %d\n", p->bit_offset_first_partition_size);
5563*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbit_offset_segmentation = %d\n", p->bit_offset_segmentation);
5564*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbit_size_segmentation = %d\n", p->bit_size_segmentation);
5565*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlog2_tile_rows = %d\n", p->log2_tile_rows);
5566*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tlog2_tile_columns = %d\n", p->log2_tile_columns);
5567*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tskip_frame_flag = %d\n", p->skip_frame_flag);
5568*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnumber_skip_frames = %d\n", p->number_skip_frames);
5569*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tskip_frames_size = %d\n", p->skip_frames_size);
5570*54e60f84SAndroid Build Coastguard Worker 
5571*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
5572*54e60f84SAndroid Build Coastguard Worker 
5573*54e60f84SAndroid Build Coastguard Worker     return;
5574*54e60f84SAndroid Build Coastguard Worker }
5575*54e60f84SAndroid Build Coastguard Worker 
va_TraceVASliceParameterBufferVP9(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)5576*54e60f84SAndroid Build Coastguard Worker static void va_TraceVASliceParameterBufferVP9(
5577*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
5578*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
5579*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
5580*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
5581*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
5582*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
5583*54e60f84SAndroid Build Coastguard Worker     void *data)
5584*54e60f84SAndroid Build Coastguard Worker {
5585*54e60f84SAndroid Build Coastguard Worker 
5586*54e60f84SAndroid Build Coastguard Worker     VASliceParameterBufferVP9 *p = (VASliceParameterBufferVP9 *)data;
5587*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
5588*54e60f84SAndroid Build Coastguard Worker     int i, j;
5589*54e60f84SAndroid Build Coastguard Worker 
5590*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VASliceParameterBufferVP9\n");
5591*54e60f84SAndroid Build Coastguard Worker 
5592*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_data_size = %d\n", p->slice_data_size);
5593*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_data_offset = %d\n", p->slice_data_offset);
5594*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_data_flag = %d\n", p->slice_data_flag);
5595*54e60f84SAndroid Build Coastguard Worker 
5596*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 8; i++) {
5597*54e60f84SAndroid Build Coastguard Worker         VASegmentParameterVP9* seg = p->seg_param + i;
5598*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tseg_param[%d] = \n",  i);
5599*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\tsegment_reference_enabled = %d\n", seg->segment_flags.fields.segment_reference_enabled);
5600*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\tsegment_reference = %d\n", seg->segment_flags.fields.segment_reference);
5601*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\tsegment_reference_skipped = %d\n", seg->segment_flags.fields.segment_reference_skipped);
5602*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\tfilter_level[4][2] = \n");
5603*54e60f84SAndroid Build Coastguard Worker         for (j  = 0; j < 4; j++) {
5604*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t\t\t[%3d, %3d]\n", seg->filter_level[j][0], seg->filter_level[j][1]);
5605*54e60f84SAndroid Build Coastguard Worker         }
5606*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\tluma_ac_quant_scale = %d\n", seg->luma_ac_quant_scale);
5607*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\tluma_dc_quant_scale = %d\n", seg->luma_dc_quant_scale);
5608*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\tchroma_ac_quant_scale = %d\n", seg->chroma_ac_quant_scale);
5609*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\tchroma_dc_quant_scale = %d\n", seg->chroma_dc_quant_scale);
5610*54e60f84SAndroid Build Coastguard Worker     }
5611*54e60f84SAndroid Build Coastguard Worker 
5612*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
5613*54e60f84SAndroid Build Coastguard Worker 
5614*54e60f84SAndroid Build Coastguard Worker     return;
5615*54e60f84SAndroid Build Coastguard Worker }
5616*54e60f84SAndroid Build Coastguard Worker 
va_TraceVASliceParameterBufferAV1(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)5617*54e60f84SAndroid Build Coastguard Worker static void va_TraceVASliceParameterBufferAV1(
5618*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
5619*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
5620*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
5621*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
5622*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
5623*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
5624*54e60f84SAndroid Build Coastguard Worker     void *data)
5625*54e60f84SAndroid Build Coastguard Worker {
5626*54e60f84SAndroid Build Coastguard Worker 
5627*54e60f84SAndroid Build Coastguard Worker     VASliceParameterBufferAV1 *p = (VASliceParameterBufferAV1 *)data;
5628*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
5629*54e60f84SAndroid Build Coastguard Worker 
5630*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VASliceParameterBufferAV1\n");
5631*54e60f84SAndroid Build Coastguard Worker 
5632*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_data_size = %d\n", p->slice_data_size);
5633*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_data_offset = %d\n", p->slice_data_offset);
5634*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tslice_data_flag = %d\n", p->slice_data_flag);
5635*54e60f84SAndroid Build Coastguard Worker 
5636*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttile_row = %d\n", p->tile_row);
5637*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttile_column = %d\n", p->tile_column);
5638*54e60f84SAndroid Build Coastguard Worker 
5639*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tanchor_frame_idx = %d\n", p->anchor_frame_idx);
5640*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttile_idx_in_tile_list = %d\n", p->tile_idx_in_tile_list);
5641*54e60f84SAndroid Build Coastguard Worker 
5642*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
5643*54e60f84SAndroid Build Coastguard Worker 
5644*54e60f84SAndroid Build Coastguard Worker     return;
5645*54e60f84SAndroid Build Coastguard Worker }
5646*54e60f84SAndroid Build Coastguard Worker 
va_TraceBeginPicture(VADisplay dpy,VAContextID context,VASurfaceID render_target)5647*54e60f84SAndroid Build Coastguard Worker void va_TraceBeginPicture(
5648*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
5649*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
5650*54e60f84SAndroid Build Coastguard Worker     VASurfaceID render_target
5651*54e60f84SAndroid Build Coastguard Worker )
5652*54e60f84SAndroid Build Coastguard Worker {
5653*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
5654*54e60f84SAndroid Build Coastguard Worker 
5655*54e60f84SAndroid Build Coastguard Worker     TRACE_FUNCNAME(idx);
5656*54e60f84SAndroid Build Coastguard Worker 
5657*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcontext = 0x%08x\n", context);
5658*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\trender_targets = 0x%08x\n", render_target);
5659*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_count  = #%d\n", trace_ctx->trace_frame_no);
5660*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
5661*54e60f84SAndroid Build Coastguard Worker 
5662*54e60f84SAndroid Build Coastguard Worker     trace_ctx->trace_rendertarget = render_target; /* for surface data dump after vaEndPicture */
5663*54e60f84SAndroid Build Coastguard Worker 
5664*54e60f84SAndroid Build Coastguard Worker     trace_ctx->trace_frame_no++;
5665*54e60f84SAndroid Build Coastguard Worker     trace_ctx->trace_slice_no = 0;
5666*54e60f84SAndroid Build Coastguard Worker }
5667*54e60f84SAndroid Build Coastguard Worker 
va_TraceMPEG2Buf(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * pbuf)5668*54e60f84SAndroid Build Coastguard Worker static void va_TraceMPEG2Buf(
5669*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
5670*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
5671*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
5672*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
5673*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
5674*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
5675*54e60f84SAndroid Build Coastguard Worker     void *pbuf
5676*54e60f84SAndroid Build Coastguard Worker )
5677*54e60f84SAndroid Build Coastguard Worker {
5678*54e60f84SAndroid Build Coastguard Worker     switch (type) {
5679*54e60f84SAndroid Build Coastguard Worker     case VAPictureParameterBufferType:
5680*54e60f84SAndroid Build Coastguard Worker         va_TraceVAPictureParameterBufferMPEG2(dpy, context, buffer, type, size, num_elements, pbuf);
5681*54e60f84SAndroid Build Coastguard Worker         break;
5682*54e60f84SAndroid Build Coastguard Worker     case VAIQMatrixBufferType:
5683*54e60f84SAndroid Build Coastguard Worker         va_TraceVAIQMatrixBufferMPEG2(dpy, context, buffer, type, size, num_elements, pbuf);
5684*54e60f84SAndroid Build Coastguard Worker         break;
5685*54e60f84SAndroid Build Coastguard Worker     case VABitPlaneBufferType:
5686*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
5687*54e60f84SAndroid Build Coastguard Worker         break;
5688*54e60f84SAndroid Build Coastguard Worker     case VASliceGroupMapBufferType:
5689*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
5690*54e60f84SAndroid Build Coastguard Worker         break;
5691*54e60f84SAndroid Build Coastguard Worker     case VASliceParameterBufferType:
5692*54e60f84SAndroid Build Coastguard Worker         va_TraceVASliceParameterBufferMPEG2(dpy, context, buffer, type, size, num_elements, pbuf);
5693*54e60f84SAndroid Build Coastguard Worker         break;
5694*54e60f84SAndroid Build Coastguard Worker     case VASliceDataBufferType:
5695*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
5696*54e60f84SAndroid Build Coastguard Worker         break;
5697*54e60f84SAndroid Build Coastguard Worker     case VAMacroblockParameterBufferType:
5698*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
5699*54e60f84SAndroid Build Coastguard Worker         break;
5700*54e60f84SAndroid Build Coastguard Worker     case VAResidualDataBufferType:
5701*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
5702*54e60f84SAndroid Build Coastguard Worker         break;
5703*54e60f84SAndroid Build Coastguard Worker     case VADeblockingParameterBufferType:
5704*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
5705*54e60f84SAndroid Build Coastguard Worker         break;
5706*54e60f84SAndroid Build Coastguard Worker     case VAImageBufferType:
5707*54e60f84SAndroid Build Coastguard Worker         break;
5708*54e60f84SAndroid Build Coastguard Worker     case VAProtectedSliceDataBufferType:
5709*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
5710*54e60f84SAndroid Build Coastguard Worker         break;
5711*54e60f84SAndroid Build Coastguard Worker     case VAEncCodedBufferType:
5712*54e60f84SAndroid Build Coastguard Worker         break;
5713*54e60f84SAndroid Build Coastguard Worker     case VAEncSequenceParameterBufferType:
5714*54e60f84SAndroid Build Coastguard Worker         va_TraceVAEncSequenceParameterBufferMPEG2(dpy, context, buffer, type, size, num_elements, pbuf);
5715*54e60f84SAndroid Build Coastguard Worker         break;
5716*54e60f84SAndroid Build Coastguard Worker     case VAEncPictureParameterBufferType:
5717*54e60f84SAndroid Build Coastguard Worker         break;
5718*54e60f84SAndroid Build Coastguard Worker     case VAEncSliceParameterBufferType:
5719*54e60f84SAndroid Build Coastguard Worker         break;
5720*54e60f84SAndroid Build Coastguard Worker     case VAEncMiscParameterBufferType:
5721*54e60f84SAndroid Build Coastguard Worker         va_TraceVAEncMiscParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf);
5722*54e60f84SAndroid Build Coastguard Worker         break;
5723*54e60f84SAndroid Build Coastguard Worker     default:
5724*54e60f84SAndroid Build Coastguard Worker         break;
5725*54e60f84SAndroid Build Coastguard Worker     }
5726*54e60f84SAndroid Build Coastguard Worker }
5727*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAEncSequenceParameterBufferH263(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)5728*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAEncSequenceParameterBufferH263(
5729*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
5730*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
5731*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
5732*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
5733*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
5734*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
5735*54e60f84SAndroid Build Coastguard Worker     void *data)
5736*54e60f84SAndroid Build Coastguard Worker {
5737*54e60f84SAndroid Build Coastguard Worker     VAEncSequenceParameterBufferH263 *p = (VAEncSequenceParameterBufferH263 *)data;
5738*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
5739*54e60f84SAndroid Build Coastguard Worker 
5740*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAEncSequenceParameterBufferH263\n");
5741*54e60f84SAndroid Build Coastguard Worker 
5742*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tintra_period = %d\n", p->intra_period);
5743*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbits_per_second = %d\n", p->bits_per_second);
5744*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tframe_rate = %d\n", p->frame_rate);
5745*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tinitial_qp = %d\n", p->initial_qp);
5746*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmin_qp = %d\n", p->min_qp);
5747*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
5748*54e60f84SAndroid Build Coastguard Worker 
5749*54e60f84SAndroid Build Coastguard Worker     return;
5750*54e60f84SAndroid Build Coastguard Worker }
5751*54e60f84SAndroid Build Coastguard Worker 
5752*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAEncPictureParameterBufferH263(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)5753*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAEncPictureParameterBufferH263(
5754*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
5755*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
5756*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
5757*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
5758*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
5759*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
5760*54e60f84SAndroid Build Coastguard Worker     void *data)
5761*54e60f84SAndroid Build Coastguard Worker {
5762*54e60f84SAndroid Build Coastguard Worker     VAEncPictureParameterBufferH263 *p = (VAEncPictureParameterBufferH263 *)data;
5763*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
5764*54e60f84SAndroid Build Coastguard Worker 
5765*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAEncPictureParameterBufferH263\n");
5766*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treference_picture = 0x%08x\n", p->reference_picture);
5767*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treconstructed_picture = 0x%08x\n", p->reconstructed_picture);
5768*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcoded_buf = %08x\n", p->coded_buf);
5769*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpicture_width = %d\n", p->picture_width);
5770*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpicture_height = %d\n", p->picture_height);
5771*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpicture_type = 0x%08x\n", p->picture_type);
5772*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
5773*54e60f84SAndroid Build Coastguard Worker 
5774*54e60f84SAndroid Build Coastguard Worker     return;
5775*54e60f84SAndroid Build Coastguard Worker }
5776*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAEncPictureParameterBufferJPEG(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)5777*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAEncPictureParameterBufferJPEG(
5778*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
5779*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
5780*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
5781*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
5782*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
5783*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
5784*54e60f84SAndroid Build Coastguard Worker     void *data)
5785*54e60f84SAndroid Build Coastguard Worker {
5786*54e60f84SAndroid Build Coastguard Worker     VAEncPictureParameterBufferJPEG *p = (VAEncPictureParameterBufferJPEG *)data;
5787*54e60f84SAndroid Build Coastguard Worker     int i;
5788*54e60f84SAndroid Build Coastguard Worker 
5789*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
5790*54e60f84SAndroid Build Coastguard Worker 
5791*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAEncPictureParameterBufferJPEG\n");
5792*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\treconstructed_picture = 0x%08x\n", p->reconstructed_picture);
5793*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcoded_buf = %08x\n", p->coded_buf);
5794*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpicture_width = %d\n", p->picture_width);
5795*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpicture_height = %d\n", p->picture_height);
5796*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.profile = %d\n", p->pic_flags.bits.profile);
5797*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.progressive = %d\n", p->pic_flags.bits.profile);
5798*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.huffman = %d\n", p->pic_flags.bits.huffman);
5799*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.interleaved = %d\n", p->pic_flags.bits.interleaved);
5800*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tpic_flags.bits.differential = %d\n", p->pic_flags.bits.differential);
5801*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsample_bit_depth = %d\n", p->sample_bit_depth);
5802*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_scan = %d\n", p->num_scan);
5803*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_components = %d\n", p->num_components);
5804*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < p->num_components; i++)
5805*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tcomponent_id[%d] = %d\n", i, p->component_id[i]);
5806*54e60f84SAndroid Build Coastguard Worker 
5807*54e60f84SAndroid Build Coastguard Worker     if (p->quality > 0)
5808*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tquality = %d\n", p->quality);
5809*54e60f84SAndroid Build Coastguard Worker     else
5810*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tquantiser_table_selector[] = %d %d %d %d\n",
5811*54e60f84SAndroid Build Coastguard Worker                     p->quantiser_table_selector[0],
5812*54e60f84SAndroid Build Coastguard Worker                     p->quantiser_table_selector[1],
5813*54e60f84SAndroid Build Coastguard Worker                     p->quantiser_table_selector[2],
5814*54e60f84SAndroid Build Coastguard Worker                     p->quantiser_table_selector[3]);
5815*54e60f84SAndroid Build Coastguard Worker 
5816*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
5817*54e60f84SAndroid Build Coastguard Worker 
5818*54e60f84SAndroid Build Coastguard Worker     return;
5819*54e60f84SAndroid Build Coastguard Worker }
5820*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAEncQMatrixBufferJPEG(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)5821*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAEncQMatrixBufferJPEG(
5822*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
5823*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
5824*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
5825*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
5826*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
5827*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
5828*54e60f84SAndroid Build Coastguard Worker     void *data)
5829*54e60f84SAndroid Build Coastguard Worker {
5830*54e60f84SAndroid Build Coastguard Worker     VAQMatrixBufferJPEG *p = (VAQMatrixBufferJPEG *)data;
5831*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
5832*54e60f84SAndroid Build Coastguard Worker 
5833*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAQMatrixBufferJPEG\n");
5834*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tload_lum_quantiser_matrix = %d", p->load_lum_quantiser_matrix);
5835*54e60f84SAndroid Build Coastguard Worker     if (p->load_lum_quantiser_matrix) {
5836*54e60f84SAndroid Build Coastguard Worker         int i;
5837*54e60f84SAndroid Build Coastguard Worker         for (i = 0; i < 64; i++) {
5838*54e60f84SAndroid Build Coastguard Worker             if ((i % 8) == 0)
5839*54e60f84SAndroid Build Coastguard Worker                 va_TraceMsg(trace_ctx, "\n\t");
5840*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t0x%02x", p->lum_quantiser_matrix[i]);
5841*54e60f84SAndroid Build Coastguard Worker         }
5842*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\n");
5843*54e60f84SAndroid Build Coastguard Worker     }
5844*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tload_chroma_quantiser_matrix = %08x\n", p->load_chroma_quantiser_matrix);
5845*54e60f84SAndroid Build Coastguard Worker     if (p->load_chroma_quantiser_matrix) {
5846*54e60f84SAndroid Build Coastguard Worker         int i;
5847*54e60f84SAndroid Build Coastguard Worker         for (i = 0; i < 64; i++) {
5848*54e60f84SAndroid Build Coastguard Worker             if ((i % 8) == 0)
5849*54e60f84SAndroid Build Coastguard Worker                 va_TraceMsg(trace_ctx, "\n\t");
5850*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t0x%02x", p->chroma_quantiser_matrix[i]);
5851*54e60f84SAndroid Build Coastguard Worker         }
5852*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\n");
5853*54e60f84SAndroid Build Coastguard Worker     }
5854*54e60f84SAndroid Build Coastguard Worker 
5855*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
5856*54e60f84SAndroid Build Coastguard Worker 
5857*54e60f84SAndroid Build Coastguard Worker     return;
5858*54e60f84SAndroid Build Coastguard Worker }
5859*54e60f84SAndroid Build Coastguard Worker 
5860*54e60f84SAndroid Build Coastguard Worker 
va_TraceVAEncSliceParameterBufferJPEG(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)5861*54e60f84SAndroid Build Coastguard Worker static void va_TraceVAEncSliceParameterBufferJPEG(
5862*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
5863*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
5864*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
5865*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
5866*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
5867*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
5868*54e60f84SAndroid Build Coastguard Worker     void *data)
5869*54e60f84SAndroid Build Coastguard Worker {
5870*54e60f84SAndroid Build Coastguard Worker     VAEncSliceParameterBufferJPEG *p = (VAEncSliceParameterBufferJPEG *)data;
5871*54e60f84SAndroid Build Coastguard Worker     int i;
5872*54e60f84SAndroid Build Coastguard Worker 
5873*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
5874*54e60f84SAndroid Build Coastguard Worker 
5875*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAEncSliceParameterBufferJPEG\n");
5876*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\trestart_interval = 0x%04x\n", p->restart_interval);
5877*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_components = 0x%08x\n", p->num_components);
5878*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < 4; i++) {
5879*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tcomponents[%i] =\n", i);
5880*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\tcomponent_selector = %d\n", p->components[i].component_selector);
5881*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\tdc_table_selector = %d\n", p->components[i].dc_table_selector);
5882*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t\tac_table_selector = %d\n", p->components[i].ac_table_selector);
5883*54e60f84SAndroid Build Coastguard Worker     }
5884*54e60f84SAndroid Build Coastguard Worker 
5885*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
5886*54e60f84SAndroid Build Coastguard Worker 
5887*54e60f84SAndroid Build Coastguard Worker     return;
5888*54e60f84SAndroid Build Coastguard Worker }
5889*54e60f84SAndroid Build Coastguard Worker 
5890*54e60f84SAndroid Build Coastguard Worker 
va_TraceH263Buf(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * pbuf)5891*54e60f84SAndroid Build Coastguard Worker static void va_TraceH263Buf(
5892*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
5893*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
5894*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
5895*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
5896*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
5897*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
5898*54e60f84SAndroid Build Coastguard Worker     void *pbuf
5899*54e60f84SAndroid Build Coastguard Worker )
5900*54e60f84SAndroid Build Coastguard Worker {
5901*54e60f84SAndroid Build Coastguard Worker     switch (type) {
5902*54e60f84SAndroid Build Coastguard Worker     case VAPictureParameterBufferType:/* print MPEG4 buffer */
5903*54e60f84SAndroid Build Coastguard Worker         va_TraceVAPictureParameterBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf);
5904*54e60f84SAndroid Build Coastguard Worker         break;
5905*54e60f84SAndroid Build Coastguard Worker     case VAIQMatrixBufferType:/* print MPEG4 buffer */
5906*54e60f84SAndroid Build Coastguard Worker         va_TraceVAIQMatrixBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf);
5907*54e60f84SAndroid Build Coastguard Worker         break;
5908*54e60f84SAndroid Build Coastguard Worker     case VABitPlaneBufferType:/* print MPEG4 buffer */
5909*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
5910*54e60f84SAndroid Build Coastguard Worker         break;
5911*54e60f84SAndroid Build Coastguard Worker     case VASliceGroupMapBufferType:
5912*54e60f84SAndroid Build Coastguard Worker         break;
5913*54e60f84SAndroid Build Coastguard Worker     case VASliceParameterBufferType:/* print MPEG4 buffer */
5914*54e60f84SAndroid Build Coastguard Worker         va_TraceVASliceParameterBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf);
5915*54e60f84SAndroid Build Coastguard Worker         break;
5916*54e60f84SAndroid Build Coastguard Worker     case VASliceDataBufferType:
5917*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
5918*54e60f84SAndroid Build Coastguard Worker         break;
5919*54e60f84SAndroid Build Coastguard Worker     case VAMacroblockParameterBufferType:
5920*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
5921*54e60f84SAndroid Build Coastguard Worker         break;
5922*54e60f84SAndroid Build Coastguard Worker     case VAResidualDataBufferType:
5923*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
5924*54e60f84SAndroid Build Coastguard Worker         break;
5925*54e60f84SAndroid Build Coastguard Worker     case VADeblockingParameterBufferType:
5926*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
5927*54e60f84SAndroid Build Coastguard Worker         break;
5928*54e60f84SAndroid Build Coastguard Worker     case VAImageBufferType:
5929*54e60f84SAndroid Build Coastguard Worker         break;
5930*54e60f84SAndroid Build Coastguard Worker     case VAProtectedSliceDataBufferType:
5931*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
5932*54e60f84SAndroid Build Coastguard Worker         break;
5933*54e60f84SAndroid Build Coastguard Worker     case VAEncCodedBufferType:
5934*54e60f84SAndroid Build Coastguard Worker         break;
5935*54e60f84SAndroid Build Coastguard Worker     case VAEncSequenceParameterBufferType:
5936*54e60f84SAndroid Build Coastguard Worker         va_TraceVAEncSequenceParameterBufferH263(dpy, context, buffer, type, size, num_elements, pbuf);
5937*54e60f84SAndroid Build Coastguard Worker         break;
5938*54e60f84SAndroid Build Coastguard Worker     case VAEncPictureParameterBufferType:
5939*54e60f84SAndroid Build Coastguard Worker         va_TraceVAEncPictureParameterBufferH263(dpy, context, buffer, type, size, num_elements, pbuf);
5940*54e60f84SAndroid Build Coastguard Worker         break;
5941*54e60f84SAndroid Build Coastguard Worker     case VAEncSliceParameterBufferType:
5942*54e60f84SAndroid Build Coastguard Worker         va_TraceVAEncSliceParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf);
5943*54e60f84SAndroid Build Coastguard Worker         break;
5944*54e60f84SAndroid Build Coastguard Worker     case VAEncPackedHeaderParameterBufferType:
5945*54e60f84SAndroid Build Coastguard Worker         va_TraceVAEncPackedHeaderParameterBufferType(dpy, context, buffer, type, size, num_elements, pbuf);
5946*54e60f84SAndroid Build Coastguard Worker         break;
5947*54e60f84SAndroid Build Coastguard Worker     default:
5948*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
5949*54e60f84SAndroid Build Coastguard Worker         break;
5950*54e60f84SAndroid Build Coastguard Worker     }
5951*54e60f84SAndroid Build Coastguard Worker }
5952*54e60f84SAndroid Build Coastguard Worker 
5953*54e60f84SAndroid Build Coastguard Worker 
va_TraceJPEGBuf(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * pbuf)5954*54e60f84SAndroid Build Coastguard Worker static void va_TraceJPEGBuf(
5955*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
5956*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
5957*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
5958*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
5959*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
5960*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
5961*54e60f84SAndroid Build Coastguard Worker     void *pbuf
5962*54e60f84SAndroid Build Coastguard Worker )
5963*54e60f84SAndroid Build Coastguard Worker {
5964*54e60f84SAndroid Build Coastguard Worker     switch (type) {
5965*54e60f84SAndroid Build Coastguard Worker     case VABitPlaneBufferType:
5966*54e60f84SAndroid Build Coastguard Worker     case VASliceGroupMapBufferType:
5967*54e60f84SAndroid Build Coastguard Worker     case VASliceDataBufferType:
5968*54e60f84SAndroid Build Coastguard Worker     case VAMacroblockParameterBufferType:
5969*54e60f84SAndroid Build Coastguard Worker     case VAResidualDataBufferType:
5970*54e60f84SAndroid Build Coastguard Worker     case VADeblockingParameterBufferType:
5971*54e60f84SAndroid Build Coastguard Worker     case VAImageBufferType:
5972*54e60f84SAndroid Build Coastguard Worker     case VAProtectedSliceDataBufferType:
5973*54e60f84SAndroid Build Coastguard Worker     case VAEncCodedBufferType:
5974*54e60f84SAndroid Build Coastguard Worker     case VAEncSequenceParameterBufferType:
5975*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
5976*54e60f84SAndroid Build Coastguard Worker         break;
5977*54e60f84SAndroid Build Coastguard Worker     case VAEncSliceParameterBufferType:
5978*54e60f84SAndroid Build Coastguard Worker         va_TraceVAEncSliceParameterBufferJPEG(dpy, context, buffer, type, size, num_elements, pbuf);
5979*54e60f84SAndroid Build Coastguard Worker         break;
5980*54e60f84SAndroid Build Coastguard Worker     case VAPictureParameterBufferType:
5981*54e60f84SAndroid Build Coastguard Worker         va_TraceVAPictureParameterBufferJPEG(dpy, context, buffer, type, size, num_elements, pbuf);
5982*54e60f84SAndroid Build Coastguard Worker         break;
5983*54e60f84SAndroid Build Coastguard Worker     case VAIQMatrixBufferType:
5984*54e60f84SAndroid Build Coastguard Worker         va_TraceVAIQMatrixBufferJPEG(dpy, context, buffer, type, size, num_elements, pbuf);
5985*54e60f84SAndroid Build Coastguard Worker         break;
5986*54e60f84SAndroid Build Coastguard Worker     case VASliceParameterBufferType:
5987*54e60f84SAndroid Build Coastguard Worker         va_TraceVASliceParameterBufferJPEG(dpy, context, buffer, type, size, num_elements, pbuf);
5988*54e60f84SAndroid Build Coastguard Worker         break;
5989*54e60f84SAndroid Build Coastguard Worker     case VAHuffmanTableBufferType:
5990*54e60f84SAndroid Build Coastguard Worker         va_TraceVAHuffmanTableBufferJPEG(dpy, context, buffer, type, size, num_elements, pbuf);
5991*54e60f84SAndroid Build Coastguard Worker         break;
5992*54e60f84SAndroid Build Coastguard Worker     case VAEncPictureParameterBufferType:
5993*54e60f84SAndroid Build Coastguard Worker         va_TraceVAEncPictureParameterBufferJPEG(dpy, context, buffer, type, size, num_elements, pbuf);
5994*54e60f84SAndroid Build Coastguard Worker         break;
5995*54e60f84SAndroid Build Coastguard Worker     case VAQMatrixBufferType:
5996*54e60f84SAndroid Build Coastguard Worker         va_TraceVAEncQMatrixBufferJPEG(dpy, context, buffer, type, size, num_elements, pbuf);
5997*54e60f84SAndroid Build Coastguard Worker         break;
5998*54e60f84SAndroid Build Coastguard Worker     default:
5999*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
6000*54e60f84SAndroid Build Coastguard Worker         break;
6001*54e60f84SAndroid Build Coastguard Worker     }
6002*54e60f84SAndroid Build Coastguard Worker }
6003*54e60f84SAndroid Build Coastguard Worker 
va_TraceMPEG4Buf(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * pbuf)6004*54e60f84SAndroid Build Coastguard Worker static void va_TraceMPEG4Buf(
6005*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
6006*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
6007*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
6008*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
6009*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
6010*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
6011*54e60f84SAndroid Build Coastguard Worker     void *pbuf
6012*54e60f84SAndroid Build Coastguard Worker )
6013*54e60f84SAndroid Build Coastguard Worker {
6014*54e60f84SAndroid Build Coastguard Worker     switch (type) {
6015*54e60f84SAndroid Build Coastguard Worker     case VAPictureParameterBufferType:
6016*54e60f84SAndroid Build Coastguard Worker         va_TraceVAPictureParameterBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf);
6017*54e60f84SAndroid Build Coastguard Worker         break;
6018*54e60f84SAndroid Build Coastguard Worker     case VAIQMatrixBufferType:
6019*54e60f84SAndroid Build Coastguard Worker         va_TraceVAIQMatrixBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf);
6020*54e60f84SAndroid Build Coastguard Worker         break;
6021*54e60f84SAndroid Build Coastguard Worker     case VABitPlaneBufferType:
6022*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
6023*54e60f84SAndroid Build Coastguard Worker         break;
6024*54e60f84SAndroid Build Coastguard Worker     case VASliceGroupMapBufferType:
6025*54e60f84SAndroid Build Coastguard Worker         break;
6026*54e60f84SAndroid Build Coastguard Worker     case VASliceParameterBufferType:
6027*54e60f84SAndroid Build Coastguard Worker         va_TraceVASliceParameterBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf);
6028*54e60f84SAndroid Build Coastguard Worker         break;
6029*54e60f84SAndroid Build Coastguard Worker     case VASliceDataBufferType:
6030*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
6031*54e60f84SAndroid Build Coastguard Worker         break;
6032*54e60f84SAndroid Build Coastguard Worker     case VAMacroblockParameterBufferType:
6033*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
6034*54e60f84SAndroid Build Coastguard Worker         break;
6035*54e60f84SAndroid Build Coastguard Worker     case VAResidualDataBufferType:
6036*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
6037*54e60f84SAndroid Build Coastguard Worker         break;
6038*54e60f84SAndroid Build Coastguard Worker     case VADeblockingParameterBufferType:
6039*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
6040*54e60f84SAndroid Build Coastguard Worker         break;
6041*54e60f84SAndroid Build Coastguard Worker     case VAImageBufferType:
6042*54e60f84SAndroid Build Coastguard Worker         break;
6043*54e60f84SAndroid Build Coastguard Worker     case VAProtectedSliceDataBufferType:
6044*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
6045*54e60f84SAndroid Build Coastguard Worker         break;
6046*54e60f84SAndroid Build Coastguard Worker     case VAEncCodedBufferType:
6047*54e60f84SAndroid Build Coastguard Worker         break;
6048*54e60f84SAndroid Build Coastguard Worker     case VAEncSequenceParameterBufferType:
6049*54e60f84SAndroid Build Coastguard Worker         va_TraceVAEncSequenceParameterBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf);
6050*54e60f84SAndroid Build Coastguard Worker         break;
6051*54e60f84SAndroid Build Coastguard Worker     case VAEncPictureParameterBufferType:
6052*54e60f84SAndroid Build Coastguard Worker         va_TraceVAEncPictureParameterBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf);
6053*54e60f84SAndroid Build Coastguard Worker         break;
6054*54e60f84SAndroid Build Coastguard Worker     case VAEncSliceParameterBufferType:
6055*54e60f84SAndroid Build Coastguard Worker         va_TraceVAEncSliceParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf);
6056*54e60f84SAndroid Build Coastguard Worker         break;
6057*54e60f84SAndroid Build Coastguard Worker     default:
6058*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
6059*54e60f84SAndroid Build Coastguard Worker         break;
6060*54e60f84SAndroid Build Coastguard Worker     }
6061*54e60f84SAndroid Build Coastguard Worker }
6062*54e60f84SAndroid Build Coastguard Worker 
va_TraceVVCBuf(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * pbuf)6063*54e60f84SAndroid Build Coastguard Worker static void va_TraceVVCBuf(
6064*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
6065*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
6066*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
6067*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
6068*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
6069*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
6070*54e60f84SAndroid Build Coastguard Worker     void* pbuf
6071*54e60f84SAndroid Build Coastguard Worker )
6072*54e60f84SAndroid Build Coastguard Worker {
6073*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
6074*54e60f84SAndroid Build Coastguard Worker 
6075*54e60f84SAndroid Build Coastguard Worker     switch (type) {
6076*54e60f84SAndroid Build Coastguard Worker     case VAPictureParameterBufferType:
6077*54e60f84SAndroid Build Coastguard Worker         va_TraceVAPictureParameterBufferVVC(dpy, context, buffer, type, size, num_elements, pbuf);
6078*54e60f84SAndroid Build Coastguard Worker         break;
6079*54e60f84SAndroid Build Coastguard Worker     case VASliceParameterBufferType:
6080*54e60f84SAndroid Build Coastguard Worker         va_TraceVASliceParameterBufferVVC(dpy, context, buffer, type, size, num_elements, pbuf);
6081*54e60f84SAndroid Build Coastguard Worker         break;
6082*54e60f84SAndroid Build Coastguard Worker     case VAIQMatrixBufferType:
6083*54e60f84SAndroid Build Coastguard Worker         va_TraceVAScalingListBufferVVC(dpy, context, buffer, type, size, num_elements, pbuf);
6084*54e60f84SAndroid Build Coastguard Worker         break;
6085*54e60f84SAndroid Build Coastguard Worker     case VAAlfBufferType:
6086*54e60f84SAndroid Build Coastguard Worker         va_TraceVAAlfBufferVVC(dpy, context, buffer, type, size, num_elements, pbuf);
6087*54e60f84SAndroid Build Coastguard Worker         break;
6088*54e60f84SAndroid Build Coastguard Worker     case VALmcsBufferType:
6089*54e60f84SAndroid Build Coastguard Worker         va_TraceVALmcsBufferVVC(dpy, context, buffer, type, size, num_elements, pbuf);
6090*54e60f84SAndroid Build Coastguard Worker         break;
6091*54e60f84SAndroid Build Coastguard Worker     case VASubPicBufferType:
6092*54e60f84SAndroid Build Coastguard Worker         va_TraceVASubPicBufferVVC(dpy, context, buffer, type, size, num_elements, pbuf);
6093*54e60f84SAndroid Build Coastguard Worker         break;
6094*54e60f84SAndroid Build Coastguard Worker     case VATileBufferType:
6095*54e60f84SAndroid Build Coastguard Worker         va_TraceVATileBufferVVC(dpy, context, buffer, type, size, num_elements, pbuf);
6096*54e60f84SAndroid Build Coastguard Worker         break;
6097*54e60f84SAndroid Build Coastguard Worker     case VASliceStructBufferType:
6098*54e60f84SAndroid Build Coastguard Worker         va_TraceVASliceStructBufferVVC(dpy, context, buffer, type, size, num_elements, pbuf);
6099*54e60f84SAndroid Build Coastguard Worker         break;
6100*54e60f84SAndroid Build Coastguard Worker     default:
6101*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
6102*54e60f84SAndroid Build Coastguard Worker         break;
6103*54e60f84SAndroid Build Coastguard Worker     }
6104*54e60f84SAndroid Build Coastguard Worker }
6105*54e60f84SAndroid Build Coastguard Worker 
va_TraceHEVCBuf(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * pbuf)6106*54e60f84SAndroid Build Coastguard Worker static void va_TraceHEVCBuf(
6107*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
6108*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
6109*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
6110*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
6111*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
6112*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
6113*54e60f84SAndroid Build Coastguard Worker     void *pbuf
6114*54e60f84SAndroid Build Coastguard Worker )
6115*54e60f84SAndroid Build Coastguard Worker {
6116*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
6117*54e60f84SAndroid Build Coastguard Worker 
6118*54e60f84SAndroid Build Coastguard Worker     switch (type) {
6119*54e60f84SAndroid Build Coastguard Worker     case VAPictureParameterBufferType:
6120*54e60f84SAndroid Build Coastguard Worker         va_TraceVAPictureParameterBufferHEVC(dpy, context, buffer, type, size, num_elements, pbuf);
6121*54e60f84SAndroid Build Coastguard Worker         break;
6122*54e60f84SAndroid Build Coastguard Worker     case VASliceParameterBufferType:
6123*54e60f84SAndroid Build Coastguard Worker         va_TraceVASliceParameterBufferHEVC(dpy, context, buffer, type, size, num_elements, pbuf);
6124*54e60f84SAndroid Build Coastguard Worker         break;
6125*54e60f84SAndroid Build Coastguard Worker     case VAIQMatrixBufferType:
6126*54e60f84SAndroid Build Coastguard Worker         va_TraceVAIQMatrixBufferHEVC(dpy, context, buffer, type, size, num_elements, pbuf);
6127*54e60f84SAndroid Build Coastguard Worker         break;
6128*54e60f84SAndroid Build Coastguard Worker     case VAEncSequenceParameterBufferType:
6129*54e60f84SAndroid Build Coastguard Worker         va_TraceVAEncSequenceParameterBufferHEVC(dpy, context, buffer, type, size, num_elements, pbuf);
6130*54e60f84SAndroid Build Coastguard Worker         break;
6131*54e60f84SAndroid Build Coastguard Worker     case VAEncPictureParameterBufferType:
6132*54e60f84SAndroid Build Coastguard Worker         va_TraceVAEncPictureParameterBufferHEVC(dpy, context, buffer, type, size, num_elements, pbuf);
6133*54e60f84SAndroid Build Coastguard Worker         break;
6134*54e60f84SAndroid Build Coastguard Worker     case VAEncSliceParameterBufferType:
6135*54e60f84SAndroid Build Coastguard Worker         va_TraceVAEncSliceParameterBufferHEVC(dpy, context, buffer, type, size, num_elements, pbuf);
6136*54e60f84SAndroid Build Coastguard Worker         break;
6137*54e60f84SAndroid Build Coastguard Worker     case VAEncMiscParameterBufferType:
6138*54e60f84SAndroid Build Coastguard Worker         va_TraceVAEncMiscParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf);
6139*54e60f84SAndroid Build Coastguard Worker         break;
6140*54e60f84SAndroid Build Coastguard Worker     default:
6141*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
6142*54e60f84SAndroid Build Coastguard Worker         break;
6143*54e60f84SAndroid Build Coastguard Worker     }
6144*54e60f84SAndroid Build Coastguard Worker }
6145*54e60f84SAndroid Build Coastguard Worker 
va_TraceH264Buf(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * pbuf)6146*54e60f84SAndroid Build Coastguard Worker static void va_TraceH264Buf(
6147*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
6148*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
6149*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
6150*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
6151*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
6152*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
6153*54e60f84SAndroid Build Coastguard Worker     void *pbuf
6154*54e60f84SAndroid Build Coastguard Worker )
6155*54e60f84SAndroid Build Coastguard Worker {
6156*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
6157*54e60f84SAndroid Build Coastguard Worker 
6158*54e60f84SAndroid Build Coastguard Worker     switch (type) {
6159*54e60f84SAndroid Build Coastguard Worker     case VAPictureParameterBufferType:
6160*54e60f84SAndroid Build Coastguard Worker         va_TraceVAPictureParameterBufferH264(dpy, context, buffer, type, size, num_elements, pbuf);
6161*54e60f84SAndroid Build Coastguard Worker         break;
6162*54e60f84SAndroid Build Coastguard Worker     case VAIQMatrixBufferType:
6163*54e60f84SAndroid Build Coastguard Worker         va_TraceVAIQMatrixBufferH264(dpy, context, buffer, type, size, num_elements, pbuf);
6164*54e60f84SAndroid Build Coastguard Worker         break;
6165*54e60f84SAndroid Build Coastguard Worker     case VABitPlaneBufferType:
6166*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
6167*54e60f84SAndroid Build Coastguard Worker         break;
6168*54e60f84SAndroid Build Coastguard Worker     case VASliceGroupMapBufferType:
6169*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
6170*54e60f84SAndroid Build Coastguard Worker         break;
6171*54e60f84SAndroid Build Coastguard Worker     case VASliceParameterBufferType:
6172*54e60f84SAndroid Build Coastguard Worker         va_TraceVASliceParameterBufferH264(dpy, context, buffer, type, size, num_elements, pbuf);
6173*54e60f84SAndroid Build Coastguard Worker         break;
6174*54e60f84SAndroid Build Coastguard Worker     case VASliceDataBufferType:
6175*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, trace_ctx->trace_slice_size, num_elements, pbuf);
6176*54e60f84SAndroid Build Coastguard Worker         break;
6177*54e60f84SAndroid Build Coastguard Worker     case VAMacroblockParameterBufferType:
6178*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
6179*54e60f84SAndroid Build Coastguard Worker         break;
6180*54e60f84SAndroid Build Coastguard Worker     case VAResidualDataBufferType:
6181*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
6182*54e60f84SAndroid Build Coastguard Worker         break;
6183*54e60f84SAndroid Build Coastguard Worker     case VADeblockingParameterBufferType:
6184*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
6185*54e60f84SAndroid Build Coastguard Worker         break;
6186*54e60f84SAndroid Build Coastguard Worker     case VAImageBufferType:
6187*54e60f84SAndroid Build Coastguard Worker         break;
6188*54e60f84SAndroid Build Coastguard Worker     case VAProtectedSliceDataBufferType:
6189*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
6190*54e60f84SAndroid Build Coastguard Worker         break;
6191*54e60f84SAndroid Build Coastguard Worker     case VAEncCodedBufferType:
6192*54e60f84SAndroid Build Coastguard Worker         break;
6193*54e60f84SAndroid Build Coastguard Worker     case VAEncSequenceParameterBufferType:
6194*54e60f84SAndroid Build Coastguard Worker         va_TraceVAEncSequenceParameterBufferH264(dpy, context, buffer, type, size, num_elements, pbuf);
6195*54e60f84SAndroid Build Coastguard Worker         break;
6196*54e60f84SAndroid Build Coastguard Worker     case VAEncPictureParameterBufferType:
6197*54e60f84SAndroid Build Coastguard Worker         va_TraceVAEncPictureParameterBufferH264(dpy, context, buffer, type, size, num_elements, pbuf);
6198*54e60f84SAndroid Build Coastguard Worker         break;
6199*54e60f84SAndroid Build Coastguard Worker     case VAEncSliceParameterBufferType:
6200*54e60f84SAndroid Build Coastguard Worker         if (size == sizeof(VAEncSliceParameterBuffer))
6201*54e60f84SAndroid Build Coastguard Worker             va_TraceVAEncSliceParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf);
6202*54e60f84SAndroid Build Coastguard Worker         else
6203*54e60f84SAndroid Build Coastguard Worker             va_TraceVAEncSliceParameterBufferH264(dpy, context, buffer, type, size, num_elements, pbuf);
6204*54e60f84SAndroid Build Coastguard Worker         break;
6205*54e60f84SAndroid Build Coastguard Worker     case VAEncPackedHeaderParameterBufferType:
6206*54e60f84SAndroid Build Coastguard Worker         va_TraceVAEncPackedHeaderParameterBufferType(dpy, context, buffer, type, size, num_elements, pbuf);
6207*54e60f84SAndroid Build Coastguard Worker         break;
6208*54e60f84SAndroid Build Coastguard Worker 
6209*54e60f84SAndroid Build Coastguard Worker     case VAEncMiscParameterBufferType:
6210*54e60f84SAndroid Build Coastguard Worker         va_TraceVAEncMiscParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf);
6211*54e60f84SAndroid Build Coastguard Worker         break;
6212*54e60f84SAndroid Build Coastguard Worker     default:
6213*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
6214*54e60f84SAndroid Build Coastguard Worker         break;
6215*54e60f84SAndroid Build Coastguard Worker     }
6216*54e60f84SAndroid Build Coastguard Worker }
6217*54e60f84SAndroid Build Coastguard Worker 
va_TraceVP8Buf(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * pbuf)6218*54e60f84SAndroid Build Coastguard Worker static void va_TraceVP8Buf(
6219*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
6220*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
6221*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
6222*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
6223*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
6224*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
6225*54e60f84SAndroid Build Coastguard Worker     void *pbuf
6226*54e60f84SAndroid Build Coastguard Worker )
6227*54e60f84SAndroid Build Coastguard Worker {
6228*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
6229*54e60f84SAndroid Build Coastguard Worker 
6230*54e60f84SAndroid Build Coastguard Worker     switch (type) {
6231*54e60f84SAndroid Build Coastguard Worker     case VAPictureParameterBufferType:
6232*54e60f84SAndroid Build Coastguard Worker         va_TraceVAPictureParameterBufferVP8(dpy, context, buffer, type, size, num_elements, pbuf);
6233*54e60f84SAndroid Build Coastguard Worker         break;
6234*54e60f84SAndroid Build Coastguard Worker     case VAIQMatrixBufferType:
6235*54e60f84SAndroid Build Coastguard Worker         va_TraceVAIQMatrixBufferVP8(dpy, context, buffer, type, size, num_elements, pbuf);
6236*54e60f84SAndroid Build Coastguard Worker         break;
6237*54e60f84SAndroid Build Coastguard Worker     case VAQMatrixBufferType:
6238*54e60f84SAndroid Build Coastguard Worker         break;
6239*54e60f84SAndroid Build Coastguard Worker     case VABitPlaneBufferType:
6240*54e60f84SAndroid Build Coastguard Worker         break;
6241*54e60f84SAndroid Build Coastguard Worker     case VASliceGroupMapBufferType:
6242*54e60f84SAndroid Build Coastguard Worker         break;
6243*54e60f84SAndroid Build Coastguard Worker     case VASliceParameterBufferType:
6244*54e60f84SAndroid Build Coastguard Worker         va_TraceVASliceParameterBufferVP8(dpy, context, buffer, type, size, num_elements, pbuf);
6245*54e60f84SAndroid Build Coastguard Worker         break;
6246*54e60f84SAndroid Build Coastguard Worker     case VASliceDataBufferType:
6247*54e60f84SAndroid Build Coastguard Worker         break;
6248*54e60f84SAndroid Build Coastguard Worker     case VAProbabilityBufferType:
6249*54e60f84SAndroid Build Coastguard Worker         va_TraceVAProbabilityBufferVP8(dpy, context, buffer, type, size, num_elements, pbuf);
6250*54e60f84SAndroid Build Coastguard Worker         break;
6251*54e60f84SAndroid Build Coastguard Worker     case VAMacroblockParameterBufferType:
6252*54e60f84SAndroid Build Coastguard Worker         break;
6253*54e60f84SAndroid Build Coastguard Worker     case VAResidualDataBufferType:
6254*54e60f84SAndroid Build Coastguard Worker         break;
6255*54e60f84SAndroid Build Coastguard Worker     case VADeblockingParameterBufferType:
6256*54e60f84SAndroid Build Coastguard Worker         break;
6257*54e60f84SAndroid Build Coastguard Worker     case VAImageBufferType:
6258*54e60f84SAndroid Build Coastguard Worker         break;
6259*54e60f84SAndroid Build Coastguard Worker     case VAProtectedSliceDataBufferType:
6260*54e60f84SAndroid Build Coastguard Worker         break;
6261*54e60f84SAndroid Build Coastguard Worker     case VAEncCodedBufferType:
6262*54e60f84SAndroid Build Coastguard Worker         break;
6263*54e60f84SAndroid Build Coastguard Worker     case VAEncSequenceParameterBufferType:
6264*54e60f84SAndroid Build Coastguard Worker         va_TraceVAEncSequenceParameterBufferVP8(dpy, context, buffer, type, size, num_elements, pbuf);
6265*54e60f84SAndroid Build Coastguard Worker         break;
6266*54e60f84SAndroid Build Coastguard Worker     case VAEncPictureParameterBufferType:
6267*54e60f84SAndroid Build Coastguard Worker         va_TraceVAEncPictureParameterBufferVP8(dpy, context, buffer, type, size, num_elements, pbuf);
6268*54e60f84SAndroid Build Coastguard Worker         break;
6269*54e60f84SAndroid Build Coastguard Worker     case VAEncSliceParameterBufferType:
6270*54e60f84SAndroid Build Coastguard Worker         break;
6271*54e60f84SAndroid Build Coastguard Worker     case VAEncPackedHeaderParameterBufferType:
6272*54e60f84SAndroid Build Coastguard Worker         break;
6273*54e60f84SAndroid Build Coastguard Worker     case VAEncMiscParameterBufferType:
6274*54e60f84SAndroid Build Coastguard Worker         va_TraceVAEncMiscParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf);
6275*54e60f84SAndroid Build Coastguard Worker         break;
6276*54e60f84SAndroid Build Coastguard Worker     default:
6277*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
6278*54e60f84SAndroid Build Coastguard Worker         break;
6279*54e60f84SAndroid Build Coastguard Worker     }
6280*54e60f84SAndroid Build Coastguard Worker }
6281*54e60f84SAndroid Build Coastguard Worker 
va_TraceVP9Buf(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * pbuf)6282*54e60f84SAndroid Build Coastguard Worker static void va_TraceVP9Buf(
6283*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
6284*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
6285*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
6286*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
6287*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
6288*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
6289*54e60f84SAndroid Build Coastguard Worker     void *pbuf
6290*54e60f84SAndroid Build Coastguard Worker )
6291*54e60f84SAndroid Build Coastguard Worker {
6292*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
6293*54e60f84SAndroid Build Coastguard Worker 
6294*54e60f84SAndroid Build Coastguard Worker     switch (type) {
6295*54e60f84SAndroid Build Coastguard Worker     case VAPictureParameterBufferType:
6296*54e60f84SAndroid Build Coastguard Worker         va_TraceVAPictureParameterBufferVP9(dpy, context, buffer, type, size, num_elements, pbuf);
6297*54e60f84SAndroid Build Coastguard Worker         break;
6298*54e60f84SAndroid Build Coastguard Worker     case VAEncSequenceParameterBufferType:
6299*54e60f84SAndroid Build Coastguard Worker         va_TraceVAEncSequenceParameterBufferVP9(dpy, context, buffer, type, size, num_elements, pbuf);
6300*54e60f84SAndroid Build Coastguard Worker         break;
6301*54e60f84SAndroid Build Coastguard Worker     case VAEncPictureParameterBufferType:
6302*54e60f84SAndroid Build Coastguard Worker         va_TraceVAEncPictureParameterBufferVP9(dpy, context, buffer, type, size, num_elements, pbuf);
6303*54e60f84SAndroid Build Coastguard Worker         break;
6304*54e60f84SAndroid Build Coastguard Worker     case VASliceParameterBufferType:
6305*54e60f84SAndroid Build Coastguard Worker         va_TraceVASliceParameterBufferVP9(dpy, context, buffer, type, size, num_elements, pbuf);
6306*54e60f84SAndroid Build Coastguard Worker         break;
6307*54e60f84SAndroid Build Coastguard Worker     case VAEncMiscParameterBufferType:
6308*54e60f84SAndroid Build Coastguard Worker         va_TraceVAEncMiscParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf);
6309*54e60f84SAndroid Build Coastguard Worker         break;
6310*54e60f84SAndroid Build Coastguard Worker     default:
6311*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
6312*54e60f84SAndroid Build Coastguard Worker         break;
6313*54e60f84SAndroid Build Coastguard Worker     }
6314*54e60f84SAndroid Build Coastguard Worker }
6315*54e60f84SAndroid Build Coastguard Worker 
va_TraceAV1Buf(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * pbuf)6316*54e60f84SAndroid Build Coastguard Worker static void va_TraceAV1Buf(
6317*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
6318*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
6319*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
6320*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
6321*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
6322*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
6323*54e60f84SAndroid Build Coastguard Worker     void *pbuf
6324*54e60f84SAndroid Build Coastguard Worker )
6325*54e60f84SAndroid Build Coastguard Worker {
6326*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
6327*54e60f84SAndroid Build Coastguard Worker 
6328*54e60f84SAndroid Build Coastguard Worker     switch (type) {
6329*54e60f84SAndroid Build Coastguard Worker     case VAPictureParameterBufferType:
6330*54e60f84SAndroid Build Coastguard Worker         va_TraceVAPictureParameterBufferAV1(dpy, context, buffer, type, size, num_elements, pbuf);
6331*54e60f84SAndroid Build Coastguard Worker         break;
6332*54e60f84SAndroid Build Coastguard Worker     case VASliceParameterBufferType:
6333*54e60f84SAndroid Build Coastguard Worker         va_TraceVASliceParameterBufferAV1(dpy, context, buffer, type, size, num_elements, pbuf);
6334*54e60f84SAndroid Build Coastguard Worker         break;
6335*54e60f84SAndroid Build Coastguard Worker     case VAEncSequenceParameterBufferType:
6336*54e60f84SAndroid Build Coastguard Worker         va_TraceVAEncSequenceParameterBufferAV1(dpy, context, buffer, type, size, num_elements, pbuf);
6337*54e60f84SAndroid Build Coastguard Worker         break;
6338*54e60f84SAndroid Build Coastguard Worker     case VAEncPictureParameterBufferType:
6339*54e60f84SAndroid Build Coastguard Worker         va_TraceVAEncPictureParameterBufferAV1(dpy, context, buffer, type, size, num_elements, pbuf);
6340*54e60f84SAndroid Build Coastguard Worker         break;
6341*54e60f84SAndroid Build Coastguard Worker     case VAEncSliceParameterBufferType:
6342*54e60f84SAndroid Build Coastguard Worker         va_TraceVAEncSliceParameterBufferAV1(dpy, context, buffer, type, size, num_elements, pbuf);
6343*54e60f84SAndroid Build Coastguard Worker         break;
6344*54e60f84SAndroid Build Coastguard Worker     case VAEncMiscParameterBufferType:
6345*54e60f84SAndroid Build Coastguard Worker         va_TraceVAEncMiscParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf);
6346*54e60f84SAndroid Build Coastguard Worker         break;
6347*54e60f84SAndroid Build Coastguard Worker     case VAEncPackedHeaderParameterBufferType:
6348*54e60f84SAndroid Build Coastguard Worker         va_TraceVAEncPackedHeaderParameterBufferType(dpy, context, buffer, type, size, num_elements, pbuf);
6349*54e60f84SAndroid Build Coastguard Worker         break;
6350*54e60f84SAndroid Build Coastguard Worker     default:
6351*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
6352*54e60f84SAndroid Build Coastguard Worker         break;
6353*54e60f84SAndroid Build Coastguard Worker     }
6354*54e60f84SAndroid Build Coastguard Worker }
6355*54e60f84SAndroid Build Coastguard Worker 
va_TraceVC1Buf(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * pbuf)6356*54e60f84SAndroid Build Coastguard Worker static void va_TraceVC1Buf(
6357*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
6358*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
6359*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
6360*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
6361*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
6362*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
6363*54e60f84SAndroid Build Coastguard Worker     void *pbuf
6364*54e60f84SAndroid Build Coastguard Worker )
6365*54e60f84SAndroid Build Coastguard Worker {
6366*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
6367*54e60f84SAndroid Build Coastguard Worker 
6368*54e60f84SAndroid Build Coastguard Worker     switch (type) {
6369*54e60f84SAndroid Build Coastguard Worker     case VAPictureParameterBufferType:
6370*54e60f84SAndroid Build Coastguard Worker         va_TraceVAPictureParameterBufferVC1(dpy, context, buffer, type, size, num_elements, pbuf);
6371*54e60f84SAndroid Build Coastguard Worker         break;
6372*54e60f84SAndroid Build Coastguard Worker     case VAIQMatrixBufferType:
6373*54e60f84SAndroid Build Coastguard Worker         break;
6374*54e60f84SAndroid Build Coastguard Worker     case VABitPlaneBufferType:
6375*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
6376*54e60f84SAndroid Build Coastguard Worker         break;
6377*54e60f84SAndroid Build Coastguard Worker     case VASliceGroupMapBufferType:
6378*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
6379*54e60f84SAndroid Build Coastguard Worker         break;
6380*54e60f84SAndroid Build Coastguard Worker     case VASliceParameterBufferType:
6381*54e60f84SAndroid Build Coastguard Worker         va_TraceVASliceParameterBufferVC1(dpy, context, buffer, type, size, num_elements, pbuf);
6382*54e60f84SAndroid Build Coastguard Worker         break;
6383*54e60f84SAndroid Build Coastguard Worker     case VASliceDataBufferType:
6384*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, trace_ctx->trace_slice_size, num_elements, pbuf);
6385*54e60f84SAndroid Build Coastguard Worker         break;
6386*54e60f84SAndroid Build Coastguard Worker     case VAMacroblockParameterBufferType:
6387*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
6388*54e60f84SAndroid Build Coastguard Worker         break;
6389*54e60f84SAndroid Build Coastguard Worker     case VAResidualDataBufferType:
6390*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
6391*54e60f84SAndroid Build Coastguard Worker         break;
6392*54e60f84SAndroid Build Coastguard Worker     case VADeblockingParameterBufferType:
6393*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
6394*54e60f84SAndroid Build Coastguard Worker         break;
6395*54e60f84SAndroid Build Coastguard Worker     case VAImageBufferType:
6396*54e60f84SAndroid Build Coastguard Worker         break;
6397*54e60f84SAndroid Build Coastguard Worker     case VAProtectedSliceDataBufferType:
6398*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
6399*54e60f84SAndroid Build Coastguard Worker         break;
6400*54e60f84SAndroid Build Coastguard Worker     case VAEncCodedBufferType:
6401*54e60f84SAndroid Build Coastguard Worker         break;
6402*54e60f84SAndroid Build Coastguard Worker     case VAEncSequenceParameterBufferType:
6403*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
6404*54e60f84SAndroid Build Coastguard Worker         break;
6405*54e60f84SAndroid Build Coastguard Worker     case VAEncPictureParameterBufferType:
6406*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
6407*54e60f84SAndroid Build Coastguard Worker         break;
6408*54e60f84SAndroid Build Coastguard Worker     case VAEncSliceParameterBufferType:
6409*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
6410*54e60f84SAndroid Build Coastguard Worker         break;
6411*54e60f84SAndroid Build Coastguard Worker     default:
6412*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
6413*54e60f84SAndroid Build Coastguard Worker         break;
6414*54e60f84SAndroid Build Coastguard Worker     }
6415*54e60f84SAndroid Build Coastguard Worker }
6416*54e60f84SAndroid Build Coastguard Worker 
6417*54e60f84SAndroid Build Coastguard Worker static void
va_TraceProcFilterParameterBufferDeinterlacing(VADisplay dpy,VAContextID context,VAProcFilterParameterBufferBase * base)6418*54e60f84SAndroid Build Coastguard Worker va_TraceProcFilterParameterBufferDeinterlacing(
6419*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
6420*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
6421*54e60f84SAndroid Build Coastguard Worker     VAProcFilterParameterBufferBase *base
6422*54e60f84SAndroid Build Coastguard Worker )
6423*54e60f84SAndroid Build Coastguard Worker {
6424*54e60f84SAndroid Build Coastguard Worker     VAProcFilterParameterBufferDeinterlacing *deint = (VAProcFilterParameterBufferDeinterlacing *)base;
6425*54e60f84SAndroid Build Coastguard Worker 
6426*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
6427*54e60f84SAndroid Build Coastguard Worker 
6428*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t    type = %d\n", deint->type);
6429*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t    algorithm = %d\n", deint->algorithm);
6430*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t    flags = %d\n", deint->flags);
6431*54e60f84SAndroid Build Coastguard Worker }
6432*54e60f84SAndroid Build Coastguard Worker 
6433*54e60f84SAndroid Build Coastguard Worker static void
va_TraceProcFilterParameterBufferColorBalance(VADisplay dpy,VAContextID context,VAProcFilterParameterBufferBase * base)6434*54e60f84SAndroid Build Coastguard Worker va_TraceProcFilterParameterBufferColorBalance(
6435*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
6436*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
6437*54e60f84SAndroid Build Coastguard Worker     VAProcFilterParameterBufferBase *base
6438*54e60f84SAndroid Build Coastguard Worker )
6439*54e60f84SAndroid Build Coastguard Worker {
6440*54e60f84SAndroid Build Coastguard Worker     VAProcFilterParameterBufferColorBalance *color_balance = (VAProcFilterParameterBufferColorBalance *)base;
6441*54e60f84SAndroid Build Coastguard Worker 
6442*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
6443*54e60f84SAndroid Build Coastguard Worker 
6444*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t    type = %d\n", color_balance->type);
6445*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t    attrib = %d\n", color_balance->attrib);
6446*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t    value = %f\n", color_balance->value);
6447*54e60f84SAndroid Build Coastguard Worker }
6448*54e60f84SAndroid Build Coastguard Worker 
6449*54e60f84SAndroid Build Coastguard Worker static void
va_TraceProcFilterParameterBufferBase(VADisplay dpy,VAContextID context,VAProcFilterParameterBufferBase * base)6450*54e60f84SAndroid Build Coastguard Worker va_TraceProcFilterParameterBufferBase(
6451*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
6452*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
6453*54e60f84SAndroid Build Coastguard Worker     VAProcFilterParameterBufferBase *base
6454*54e60f84SAndroid Build Coastguard Worker )
6455*54e60f84SAndroid Build Coastguard Worker {
6456*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
6457*54e60f84SAndroid Build Coastguard Worker 
6458*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t    type = %d\n", base->type);
6459*54e60f84SAndroid Build Coastguard Worker }
6460*54e60f84SAndroid Build Coastguard Worker 
6461*54e60f84SAndroid Build Coastguard Worker static void
va_TraceProcFilterParameterBuffer(VADisplay dpy,VAContextID context,VABufferID * filters,unsigned int num_filters)6462*54e60f84SAndroid Build Coastguard Worker va_TraceProcFilterParameterBuffer(
6463*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
6464*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
6465*54e60f84SAndroid Build Coastguard Worker     VABufferID *filters,
6466*54e60f84SAndroid Build Coastguard Worker     unsigned int num_filters
6467*54e60f84SAndroid Build Coastguard Worker )
6468*54e60f84SAndroid Build Coastguard Worker {
6469*54e60f84SAndroid Build Coastguard Worker     VABufferType type;
6470*54e60f84SAndroid Build Coastguard Worker     unsigned int size;
6471*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements;
6472*54e60f84SAndroid Build Coastguard Worker     VAProcFilterParameterBufferBase *base_filter = NULL;
6473*54e60f84SAndroid Build Coastguard Worker     unsigned int i;
6474*54e60f84SAndroid Build Coastguard Worker 
6475*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
6476*54e60f84SAndroid Build Coastguard Worker 
6477*54e60f84SAndroid Build Coastguard Worker     if (num_filters == 0 || filters == NULL) {
6478*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t  num_filters = %d\n", num_filters);
6479*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t  filters = %p\n", filters);
6480*54e60f84SAndroid Build Coastguard Worker         return;
6481*54e60f84SAndroid Build Coastguard Worker     }
6482*54e60f84SAndroid Build Coastguard Worker 
6483*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t  num_filters = %d\n", num_filters);
6484*54e60f84SAndroid Build Coastguard Worker 
6485*54e60f84SAndroid Build Coastguard Worker     /* get buffer type information */
6486*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < num_filters; i++) {
6487*54e60f84SAndroid Build Coastguard Worker         vaBufferInfo(dpy, context, filters[i], &type, &size, &num_elements);
6488*54e60f84SAndroid Build Coastguard Worker 
6489*54e60f84SAndroid Build Coastguard Worker         if (type != VAProcFilterParameterBufferType) {
6490*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t  filters[%d] = 0x%08x (INVALID)\n", i, filters[i]);
6491*54e60f84SAndroid Build Coastguard Worker             return;
6492*54e60f84SAndroid Build Coastguard Worker         } else {
6493*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t  filters[%d] = 0x%08x\n", i, filters[i]);
6494*54e60f84SAndroid Build Coastguard Worker         }
6495*54e60f84SAndroid Build Coastguard Worker 
6496*54e60f84SAndroid Build Coastguard Worker         base_filter = NULL;
6497*54e60f84SAndroid Build Coastguard Worker         vaMapBuffer(dpy, filters[i], (void **)&base_filter);
6498*54e60f84SAndroid Build Coastguard Worker 
6499*54e60f84SAndroid Build Coastguard Worker         if (base_filter == NULL) {
6500*54e60f84SAndroid Build Coastguard Worker             vaUnmapBuffer(dpy, filters[i]);
6501*54e60f84SAndroid Build Coastguard Worker             return;
6502*54e60f84SAndroid Build Coastguard Worker         }
6503*54e60f84SAndroid Build Coastguard Worker 
6504*54e60f84SAndroid Build Coastguard Worker         switch (base_filter->type) {
6505*54e60f84SAndroid Build Coastguard Worker         case VAProcFilterDeinterlacing:
6506*54e60f84SAndroid Build Coastguard Worker             va_TraceProcFilterParameterBufferDeinterlacing(dpy,
6507*54e60f84SAndroid Build Coastguard Worker                     context,
6508*54e60f84SAndroid Build Coastguard Worker                     base_filter);
6509*54e60f84SAndroid Build Coastguard Worker             break;
6510*54e60f84SAndroid Build Coastguard Worker         case VAProcFilterColorBalance:
6511*54e60f84SAndroid Build Coastguard Worker             va_TraceProcFilterParameterBufferColorBalance(dpy,
6512*54e60f84SAndroid Build Coastguard Worker                     context,
6513*54e60f84SAndroid Build Coastguard Worker                     base_filter);
6514*54e60f84SAndroid Build Coastguard Worker             break;
6515*54e60f84SAndroid Build Coastguard Worker         default:
6516*54e60f84SAndroid Build Coastguard Worker             va_TraceProcFilterParameterBufferBase(dpy,
6517*54e60f84SAndroid Build Coastguard Worker                                                   context,
6518*54e60f84SAndroid Build Coastguard Worker                                                   base_filter);
6519*54e60f84SAndroid Build Coastguard Worker             break;
6520*54e60f84SAndroid Build Coastguard Worker         }
6521*54e60f84SAndroid Build Coastguard Worker 
6522*54e60f84SAndroid Build Coastguard Worker         vaUnmapBuffer(dpy, filters[i]);
6523*54e60f84SAndroid Build Coastguard Worker     }
6524*54e60f84SAndroid Build Coastguard Worker }
6525*54e60f84SAndroid Build Coastguard Worker 
6526*54e60f84SAndroid Build Coastguard Worker static void
va_TraceVAProcPipelineParameterBuffer(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * data)6527*54e60f84SAndroid Build Coastguard Worker va_TraceVAProcPipelineParameterBuffer(
6528*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
6529*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
6530*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
6531*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
6532*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
6533*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
6534*54e60f84SAndroid Build Coastguard Worker     void *data
6535*54e60f84SAndroid Build Coastguard Worker )
6536*54e60f84SAndroid Build Coastguard Worker {
6537*54e60f84SAndroid Build Coastguard Worker     VAProcPipelineParameterBuffer *p = (VAProcPipelineParameterBuffer *)data;
6538*54e60f84SAndroid Build Coastguard Worker     uint32_t i;
6539*54e60f84SAndroid Build Coastguard Worker 
6540*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
6541*54e60f84SAndroid Build Coastguard Worker 
6542*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t--VAProcPipelineParameterBuffer\n");
6543*54e60f84SAndroid Build Coastguard Worker 
6544*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t  surface = 0x%08x\n", p->surface);
6545*54e60f84SAndroid Build Coastguard Worker 
6546*54e60f84SAndroid Build Coastguard Worker     if (p->surface_region) {
6547*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t  surface_region\n");
6548*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t    x = %d\n", p->surface_region->x);
6549*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t    y = %d\n", p->surface_region->y);
6550*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t    width = %d\n", p->surface_region->width);
6551*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t    height = %d\n", p->surface_region->height);
6552*54e60f84SAndroid Build Coastguard Worker     } else {
6553*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t  surface_region = (NULL)\n");
6554*54e60f84SAndroid Build Coastguard Worker     }
6555*54e60f84SAndroid Build Coastguard Worker 
6556*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t  surface_color_standard = %d\n", p->surface_color_standard);
6557*54e60f84SAndroid Build Coastguard Worker 
6558*54e60f84SAndroid Build Coastguard Worker     if (p->output_region) {
6559*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t  output_region\n");
6560*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t    x = %d\n", p->output_region->x);
6561*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t    y = %d\n", p->output_region->y);
6562*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t    width = %d\n", p->output_region->width);
6563*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t    height = %d\n", p->output_region->height);
6564*54e60f84SAndroid Build Coastguard Worker     } else {
6565*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t  output_region = (NULL)\n");
6566*54e60f84SAndroid Build Coastguard Worker     }
6567*54e60f84SAndroid Build Coastguard Worker 
6568*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t  output_background_color = 0x%08x\n", p->output_background_color);
6569*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t  output_color_standard = %d\n", p->output_color_standard);
6570*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t  pipeline_flags = 0x%08x\n", p->pipeline_flags);
6571*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t  filter_flags = 0x%08x\n", p->filter_flags);
6572*54e60f84SAndroid Build Coastguard Worker 
6573*54e60f84SAndroid Build Coastguard Worker     va_TraceProcFilterParameterBuffer(dpy, context, p->filters, p->num_filters);
6574*54e60f84SAndroid Build Coastguard Worker 
6575*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t  num_forward_references = 0x%08x\n", p->num_forward_references);
6576*54e60f84SAndroid Build Coastguard Worker 
6577*54e60f84SAndroid Build Coastguard Worker     if (p->num_forward_references) {
6578*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t  forward_references\n");
6579*54e60f84SAndroid Build Coastguard Worker 
6580*54e60f84SAndroid Build Coastguard Worker         if (p->forward_references) {
6581*54e60f84SAndroid Build Coastguard Worker             /* only dump the first 5 forward references */
6582*54e60f84SAndroid Build Coastguard Worker             for (i = 0; i < p->num_forward_references && i < 5; i++) {
6583*54e60f84SAndroid Build Coastguard Worker                 va_TraceMsg(trace_ctx, "\t    forward_references[%d] = 0x%08x\n", i, p->forward_references[i]);
6584*54e60f84SAndroid Build Coastguard Worker             }
6585*54e60f84SAndroid Build Coastguard Worker         } else {
6586*54e60f84SAndroid Build Coastguard Worker             for (i = 0; i < p->num_forward_references && i < 5; i++) {
6587*54e60f84SAndroid Build Coastguard Worker                 va_TraceMsg(trace_ctx, "\t    forward_references[%d] = (NULL)\n", i);
6588*54e60f84SAndroid Build Coastguard Worker             }
6589*54e60f84SAndroid Build Coastguard Worker         }
6590*54e60f84SAndroid Build Coastguard Worker     }
6591*54e60f84SAndroid Build Coastguard Worker 
6592*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\t  num_backward_references = 0x%08x\n", p->num_backward_references);
6593*54e60f84SAndroid Build Coastguard Worker 
6594*54e60f84SAndroid Build Coastguard Worker     if (p->num_backward_references) {
6595*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t  backward_references\n");
6596*54e60f84SAndroid Build Coastguard Worker 
6597*54e60f84SAndroid Build Coastguard Worker         if (p->backward_references) {
6598*54e60f84SAndroid Build Coastguard Worker             /* only dump the first 5 backward references */
6599*54e60f84SAndroid Build Coastguard Worker             for (i = 0; i < p->num_backward_references && i < 5; i++) {
6600*54e60f84SAndroid Build Coastguard Worker                 va_TraceMsg(trace_ctx, "\t    backward_references[%d] = 0x%08x\n", i, p->backward_references[i]);
6601*54e60f84SAndroid Build Coastguard Worker             }
6602*54e60f84SAndroid Build Coastguard Worker         } else {
6603*54e60f84SAndroid Build Coastguard Worker             for (i = 0; i < p->num_backward_references && i < 5; i++) {
6604*54e60f84SAndroid Build Coastguard Worker                 va_TraceMsg(trace_ctx, "\t    backward_references[%d] = (NULL)\n", i);
6605*54e60f84SAndroid Build Coastguard Worker             }
6606*54e60f84SAndroid Build Coastguard Worker         }
6607*54e60f84SAndroid Build Coastguard Worker     }
6608*54e60f84SAndroid Build Coastguard Worker 
6609*54e60f84SAndroid Build Coastguard Worker     /* FIXME: add other info later */
6610*54e60f84SAndroid Build Coastguard Worker 
6611*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
6612*54e60f84SAndroid Build Coastguard Worker }
6613*54e60f84SAndroid Build Coastguard Worker 
6614*54e60f84SAndroid Build Coastguard Worker static void
va_TraceNoneBuf(VADisplay dpy,VAContextID context,VABufferID buffer,VABufferType type,unsigned int size,unsigned int num_elements,void * pbuf)6615*54e60f84SAndroid Build Coastguard Worker va_TraceNoneBuf(
6616*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
6617*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
6618*54e60f84SAndroid Build Coastguard Worker     VABufferID buffer,
6619*54e60f84SAndroid Build Coastguard Worker     VABufferType type,
6620*54e60f84SAndroid Build Coastguard Worker     unsigned int size,
6621*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,
6622*54e60f84SAndroid Build Coastguard Worker     void *pbuf
6623*54e60f84SAndroid Build Coastguard Worker )
6624*54e60f84SAndroid Build Coastguard Worker {
6625*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
6626*54e60f84SAndroid Build Coastguard Worker 
6627*54e60f84SAndroid Build Coastguard Worker     switch (type) {
6628*54e60f84SAndroid Build Coastguard Worker     case VAProcPipelineParameterBufferType:
6629*54e60f84SAndroid Build Coastguard Worker         va_TraceVAProcPipelineParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf);
6630*54e60f84SAndroid Build Coastguard Worker         break;
6631*54e60f84SAndroid Build Coastguard Worker     default:
6632*54e60f84SAndroid Build Coastguard Worker         va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
6633*54e60f84SAndroid Build Coastguard Worker         break;
6634*54e60f84SAndroid Build Coastguard Worker     }
6635*54e60f84SAndroid Build Coastguard Worker }
6636*54e60f84SAndroid Build Coastguard Worker 
va_TraceRenderPicture(VADisplay dpy,VAContextID context,VABufferID * buffers,int num_buffers)6637*54e60f84SAndroid Build Coastguard Worker void va_TraceRenderPicture(
6638*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
6639*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
6640*54e60f84SAndroid Build Coastguard Worker     VABufferID *buffers,
6641*54e60f84SAndroid Build Coastguard Worker     int num_buffers
6642*54e60f84SAndroid Build Coastguard Worker )
6643*54e60f84SAndroid Build Coastguard Worker {
6644*54e60f84SAndroid Build Coastguard Worker     VABufferType type;
6645*54e60f84SAndroid Build Coastguard Worker     unsigned int size;
6646*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements;
6647*54e60f84SAndroid Build Coastguard Worker     int i;
6648*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
6649*54e60f84SAndroid Build Coastguard Worker 
6650*54e60f84SAndroid Build Coastguard Worker     TRACE_FUNCNAME(idx);
6651*54e60f84SAndroid Build Coastguard Worker 
6652*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcontext = 0x%08x\n", context);
6653*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_buffers = %d\n", num_buffers);
6654*54e60f84SAndroid Build Coastguard Worker     if (buffers == NULL)
6655*54e60f84SAndroid Build Coastguard Worker         return;
6656*54e60f84SAndroid Build Coastguard Worker 
6657*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < num_buffers; i++) {
6658*54e60f84SAndroid Build Coastguard Worker         unsigned char *pbuf = NULL;
6659*54e60f84SAndroid Build Coastguard Worker         unsigned int j;
6660*54e60f84SAndroid Build Coastguard Worker 
6661*54e60f84SAndroid Build Coastguard Worker         /* get buffer type information */
6662*54e60f84SAndroid Build Coastguard Worker         vaBufferInfo(dpy, context, buffers[i], &type, &size, &num_elements);
6663*54e60f84SAndroid Build Coastguard Worker 
6664*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t---------------------------\n");
6665*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tbuffers[%d] = 0x%08x\n", i, buffers[i]);
6666*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t  type = %s\n", vaBufferTypeStr(type));
6667*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t  size = %d\n", size);
6668*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t  num_elements = %d\n", num_elements);
6669*54e60f84SAndroid Build Coastguard Worker 
6670*54e60f84SAndroid Build Coastguard Worker         vaMapBuffer(dpy, buffers[i], (void **)&pbuf);
6671*54e60f84SAndroid Build Coastguard Worker         if (pbuf == NULL)
6672*54e60f84SAndroid Build Coastguard Worker             continue;
6673*54e60f84SAndroid Build Coastguard Worker 
6674*54e60f84SAndroid Build Coastguard Worker         switch (trace_ctx->trace_profile) {
6675*54e60f84SAndroid Build Coastguard Worker         case VAProfileMPEG2Simple:
6676*54e60f84SAndroid Build Coastguard Worker         case VAProfileMPEG2Main:
6677*54e60f84SAndroid Build Coastguard Worker             for (j = 0; j < num_elements; j++) {
6678*54e60f84SAndroid Build Coastguard Worker                 va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
6679*54e60f84SAndroid Build Coastguard Worker                 va_TraceMPEG2Buf(dpy, context, buffers[i], type, size, num_elements, pbuf + size * j);
6680*54e60f84SAndroid Build Coastguard Worker             }
6681*54e60f84SAndroid Build Coastguard Worker             break;
6682*54e60f84SAndroid Build Coastguard Worker         case VAProfileMPEG4Simple:
6683*54e60f84SAndroid Build Coastguard Worker         case VAProfileMPEG4AdvancedSimple:
6684*54e60f84SAndroid Build Coastguard Worker         case VAProfileMPEG4Main:
6685*54e60f84SAndroid Build Coastguard Worker             for (j = 0; j < num_elements; j++) {
6686*54e60f84SAndroid Build Coastguard Worker                 va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
6687*54e60f84SAndroid Build Coastguard Worker                 va_TraceMPEG4Buf(dpy, context, buffers[i], type, size, num_elements, pbuf + size * j);
6688*54e60f84SAndroid Build Coastguard Worker             }
6689*54e60f84SAndroid Build Coastguard Worker             break;
6690*54e60f84SAndroid Build Coastguard Worker         case VAProfileH264High10:
6691*54e60f84SAndroid Build Coastguard Worker         case VAProfileH264Main:
6692*54e60f84SAndroid Build Coastguard Worker         case VAProfileH264High:
6693*54e60f84SAndroid Build Coastguard Worker         case VAProfileH264ConstrainedBaseline:
6694*54e60f84SAndroid Build Coastguard Worker             for (j = 0; j < num_elements; j++) {
6695*54e60f84SAndroid Build Coastguard Worker                 va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
6696*54e60f84SAndroid Build Coastguard Worker 
6697*54e60f84SAndroid Build Coastguard Worker                 va_TraceH264Buf(dpy, context, buffers[i], type, size, num_elements, pbuf + size * j);
6698*54e60f84SAndroid Build Coastguard Worker             }
6699*54e60f84SAndroid Build Coastguard Worker             break;
6700*54e60f84SAndroid Build Coastguard Worker         case VAProfileVC1Simple:
6701*54e60f84SAndroid Build Coastguard Worker         case VAProfileVC1Main:
6702*54e60f84SAndroid Build Coastguard Worker         case VAProfileVC1Advanced:
6703*54e60f84SAndroid Build Coastguard Worker             for (j = 0; j < num_elements; j++) {
6704*54e60f84SAndroid Build Coastguard Worker                 va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
6705*54e60f84SAndroid Build Coastguard Worker 
6706*54e60f84SAndroid Build Coastguard Worker                 va_TraceVC1Buf(dpy, context, buffers[i], type, size, num_elements, pbuf + size * j);
6707*54e60f84SAndroid Build Coastguard Worker             }
6708*54e60f84SAndroid Build Coastguard Worker             break;
6709*54e60f84SAndroid Build Coastguard Worker         case VAProfileH263Baseline:
6710*54e60f84SAndroid Build Coastguard Worker             for (j = 0; j < num_elements; j++) {
6711*54e60f84SAndroid Build Coastguard Worker                 va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
6712*54e60f84SAndroid Build Coastguard Worker 
6713*54e60f84SAndroid Build Coastguard Worker                 va_TraceH263Buf(dpy, context, buffers[i], type, size, num_elements, pbuf + size * j);
6714*54e60f84SAndroid Build Coastguard Worker             }
6715*54e60f84SAndroid Build Coastguard Worker             break;
6716*54e60f84SAndroid Build Coastguard Worker         case VAProfileJPEGBaseline:
6717*54e60f84SAndroid Build Coastguard Worker             for (j = 0; j < num_elements; j++) {
6718*54e60f84SAndroid Build Coastguard Worker                 va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
6719*54e60f84SAndroid Build Coastguard Worker 
6720*54e60f84SAndroid Build Coastguard Worker                 va_TraceJPEGBuf(dpy, context, buffers[i], type, size, num_elements, pbuf + size * j);
6721*54e60f84SAndroid Build Coastguard Worker             }
6722*54e60f84SAndroid Build Coastguard Worker             break;
6723*54e60f84SAndroid Build Coastguard Worker 
6724*54e60f84SAndroid Build Coastguard Worker         case VAProfileNone:
6725*54e60f84SAndroid Build Coastguard Worker             for (j = 0; j < num_elements; j++) {
6726*54e60f84SAndroid Build Coastguard Worker                 va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
6727*54e60f84SAndroid Build Coastguard Worker 
6728*54e60f84SAndroid Build Coastguard Worker                 va_TraceNoneBuf(dpy, context, buffers[i], type, size, num_elements, pbuf + size * j);
6729*54e60f84SAndroid Build Coastguard Worker             }
6730*54e60f84SAndroid Build Coastguard Worker             break;
6731*54e60f84SAndroid Build Coastguard Worker 
6732*54e60f84SAndroid Build Coastguard Worker         case VAProfileVP8Version0_3:
6733*54e60f84SAndroid Build Coastguard Worker             for (j = 0; j < num_elements; j++) {
6734*54e60f84SAndroid Build Coastguard Worker                 va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
6735*54e60f84SAndroid Build Coastguard Worker 
6736*54e60f84SAndroid Build Coastguard Worker                 va_TraceVP8Buf(dpy, context, buffers[i], type, size, num_elements, pbuf + size * j);
6737*54e60f84SAndroid Build Coastguard Worker             }
6738*54e60f84SAndroid Build Coastguard Worker             break;
6739*54e60f84SAndroid Build Coastguard Worker 
6740*54e60f84SAndroid Build Coastguard Worker         case VAProfileHEVCMain12:
6741*54e60f84SAndroid Build Coastguard Worker         case VAProfileHEVCMain422_10:
6742*54e60f84SAndroid Build Coastguard Worker         case VAProfileHEVCMain422_12:
6743*54e60f84SAndroid Build Coastguard Worker         case VAProfileHEVCMain444:
6744*54e60f84SAndroid Build Coastguard Worker         case VAProfileHEVCMain444_10:
6745*54e60f84SAndroid Build Coastguard Worker         case VAProfileHEVCMain444_12:
6746*54e60f84SAndroid Build Coastguard Worker         case VAProfileHEVCMain:
6747*54e60f84SAndroid Build Coastguard Worker         case VAProfileHEVCMain10:
6748*54e60f84SAndroid Build Coastguard Worker         case VAProfileHEVCSccMain:
6749*54e60f84SAndroid Build Coastguard Worker         case VAProfileHEVCSccMain10:
6750*54e60f84SAndroid Build Coastguard Worker         case VAProfileHEVCSccMain444:
6751*54e60f84SAndroid Build Coastguard Worker         case VAProfileHEVCSccMain444_10:
6752*54e60f84SAndroid Build Coastguard Worker             for (j = 0; j < num_elements; j++) {
6753*54e60f84SAndroid Build Coastguard Worker                 va_TraceMsg(trace_ctx, "\telement[%d] = \n", j);
6754*54e60f84SAndroid Build Coastguard Worker 
6755*54e60f84SAndroid Build Coastguard Worker                 va_TraceHEVCBuf(dpy, context, buffers[i], type, size, num_elements, pbuf + size * j);
6756*54e60f84SAndroid Build Coastguard Worker             }
6757*54e60f84SAndroid Build Coastguard Worker             break;
6758*54e60f84SAndroid Build Coastguard Worker         case VAProfileVVCMain10:
6759*54e60f84SAndroid Build Coastguard Worker         case VAProfileVVCMultilayerMain10:
6760*54e60f84SAndroid Build Coastguard Worker             for (j = 0; j < num_elements; j++) {
6761*54e60f84SAndroid Build Coastguard Worker                 va_TraceMsg(trace_ctx, "\telement[%d] = \n", j);
6762*54e60f84SAndroid Build Coastguard Worker 
6763*54e60f84SAndroid Build Coastguard Worker                 va_TraceVVCBuf(dpy, context, buffers[i], type, size, num_elements, pbuf + size * j);
6764*54e60f84SAndroid Build Coastguard Worker             }
6765*54e60f84SAndroid Build Coastguard Worker             break;
6766*54e60f84SAndroid Build Coastguard Worker         case VAProfileVP9Profile0:
6767*54e60f84SAndroid Build Coastguard Worker         case VAProfileVP9Profile1:
6768*54e60f84SAndroid Build Coastguard Worker         case VAProfileVP9Profile2:
6769*54e60f84SAndroid Build Coastguard Worker         case VAProfileVP9Profile3:
6770*54e60f84SAndroid Build Coastguard Worker             for (j = 0; j < num_elements; j++) {
6771*54e60f84SAndroid Build Coastguard Worker                 va_TraceMsg(trace_ctx, "\telement[%d] = \n", j);
6772*54e60f84SAndroid Build Coastguard Worker 
6773*54e60f84SAndroid Build Coastguard Worker                 va_TraceVP9Buf(dpy, context, buffers[i], type, size, num_elements, pbuf + size * j);
6774*54e60f84SAndroid Build Coastguard Worker             }
6775*54e60f84SAndroid Build Coastguard Worker             break;
6776*54e60f84SAndroid Build Coastguard Worker         case VAProfileAV1Profile0:
6777*54e60f84SAndroid Build Coastguard Worker         case VAProfileAV1Profile1:
6778*54e60f84SAndroid Build Coastguard Worker             for (j = 0; j < num_elements; j++) {
6779*54e60f84SAndroid Build Coastguard Worker                 va_TraceMsg(trace_ctx, "\telement[%d] = \n", j);
6780*54e60f84SAndroid Build Coastguard Worker 
6781*54e60f84SAndroid Build Coastguard Worker                 va_TraceAV1Buf(dpy, context, buffers[i], type, size, num_elements, pbuf + size * j);
6782*54e60f84SAndroid Build Coastguard Worker             }
6783*54e60f84SAndroid Build Coastguard Worker             break;
6784*54e60f84SAndroid Build Coastguard Worker         default:
6785*54e60f84SAndroid Build Coastguard Worker             break;
6786*54e60f84SAndroid Build Coastguard Worker         }
6787*54e60f84SAndroid Build Coastguard Worker 
6788*54e60f84SAndroid Build Coastguard Worker         vaUnmapBuffer(dpy, buffers[i]);
6789*54e60f84SAndroid Build Coastguard Worker     }
6790*54e60f84SAndroid Build Coastguard Worker 
6791*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
6792*54e60f84SAndroid Build Coastguard Worker }
6793*54e60f84SAndroid Build Coastguard Worker 
va_TraceEndPicture(VADisplay dpy,VAContextID context,int endpic_done)6794*54e60f84SAndroid Build Coastguard Worker void va_TraceEndPicture(
6795*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
6796*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
6797*54e60f84SAndroid Build Coastguard Worker     int endpic_done
6798*54e60f84SAndroid Build Coastguard Worker )
6799*54e60f84SAndroid Build Coastguard Worker {
6800*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
6801*54e60f84SAndroid Build Coastguard Worker 
6802*54e60f84SAndroid Build Coastguard Worker     TRACE_FUNCNAME(idx);
6803*54e60f84SAndroid Build Coastguard Worker 
6804*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcontext = 0x%08x\n", context);
6805*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\trender_targets = 0x%08x\n", trace_ctx->trace_rendertarget);
6806*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
6807*54e60f84SAndroid Build Coastguard Worker }
6808*54e60f84SAndroid Build Coastguard Worker 
va_TraceEndPictureExt(VADisplay dpy,VAContextID context,int endpic_done)6809*54e60f84SAndroid Build Coastguard Worker void va_TraceEndPictureExt(
6810*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
6811*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
6812*54e60f84SAndroid Build Coastguard Worker     int endpic_done
6813*54e60f84SAndroid Build Coastguard Worker )
6814*54e60f84SAndroid Build Coastguard Worker {
6815*54e60f84SAndroid Build Coastguard Worker     int encode, decode, jpeg;
6816*54e60f84SAndroid Build Coastguard Worker     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
6817*54e60f84SAndroid Build Coastguard Worker     /* avoid to create so many empty files */
6818*54e60f84SAndroid Build Coastguard Worker     encode = (trace_ctx->trace_entrypoint == VAEntrypointEncSlice);
6819*54e60f84SAndroid Build Coastguard Worker     decode = (trace_ctx->trace_entrypoint == VAEntrypointVLD);
6820*54e60f84SAndroid Build Coastguard Worker     jpeg = (trace_ctx->trace_entrypoint == VAEntrypointEncPicture);
6821*54e60f84SAndroid Build Coastguard Worker 
6822*54e60f84SAndroid Build Coastguard Worker     /* trace encode source surface, can do it before HW completes rendering */
6823*54e60f84SAndroid Build Coastguard Worker     if ((encode && (va_trace_flag & VA_TRACE_FLAG_SURFACE_ENCODE)) ||
6824*54e60f84SAndroid Build Coastguard Worker         (jpeg && (va_trace_flag & VA_TRACE_FLAG_SURFACE_JPEG)))
6825*54e60f84SAndroid Build Coastguard Worker         va_TraceSurface(dpy, context);
6826*54e60f84SAndroid Build Coastguard Worker 
6827*54e60f84SAndroid Build Coastguard Worker     /* trace decoded surface, do it after HW completes rendering */
6828*54e60f84SAndroid Build Coastguard Worker     if (decode && ((va_trace_flag & VA_TRACE_FLAG_SURFACE_DECODE))) {
6829*54e60f84SAndroid Build Coastguard Worker         vaSyncSurface(dpy, trace_ctx->trace_rendertarget);
6830*54e60f84SAndroid Build Coastguard Worker         va_TraceSurface(dpy, context);
6831*54e60f84SAndroid Build Coastguard Worker     }
6832*54e60f84SAndroid Build Coastguard Worker }
6833*54e60f84SAndroid Build Coastguard Worker 
6834*54e60f84SAndroid Build Coastguard Worker 
va_TraceSyncSurface(VADisplay dpy,VASurfaceID render_target)6835*54e60f84SAndroid Build Coastguard Worker void va_TraceSyncSurface(
6836*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
6837*54e60f84SAndroid Build Coastguard Worker     VASurfaceID render_target
6838*54e60f84SAndroid Build Coastguard Worker )
6839*54e60f84SAndroid Build Coastguard Worker {
6840*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX(dpy);
6841*54e60f84SAndroid Build Coastguard Worker 
6842*54e60f84SAndroid Build Coastguard Worker     TRACE_FUNCNAME(idx);
6843*54e60f84SAndroid Build Coastguard Worker 
6844*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\trender_target = 0x%08x\n", render_target);
6845*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
6846*54e60f84SAndroid Build Coastguard Worker 
6847*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX_EXIT(pva_trace);
6848*54e60f84SAndroid Build Coastguard Worker }
6849*54e60f84SAndroid Build Coastguard Worker 
va_TraceSyncSurface2(VADisplay dpy,VASurfaceID surface,uint64_t timeout_ns)6850*54e60f84SAndroid Build Coastguard Worker void va_TraceSyncSurface2(
6851*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
6852*54e60f84SAndroid Build Coastguard Worker     VASurfaceID surface,
6853*54e60f84SAndroid Build Coastguard Worker     uint64_t timeout_ns
6854*54e60f84SAndroid Build Coastguard Worker )
6855*54e60f84SAndroid Build Coastguard Worker {
6856*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX(dpy);
6857*54e60f84SAndroid Build Coastguard Worker 
6858*54e60f84SAndroid Build Coastguard Worker     TRACE_FUNCNAME(idx);
6859*54e60f84SAndroid Build Coastguard Worker 
6860*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsurface = 0x%08x\n", surface);
6861*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttimeout_ns = %lld\n", timeout_ns);
6862*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
6863*54e60f84SAndroid Build Coastguard Worker 
6864*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX_EXIT(pva_trace);
6865*54e60f84SAndroid Build Coastguard Worker }
6866*54e60f84SAndroid Build Coastguard Worker 
va_TraceQuerySurfaceAttributes(VADisplay dpy,VAConfigID config,VASurfaceAttrib * attrib_list,unsigned int * num_attribs)6867*54e60f84SAndroid Build Coastguard Worker void va_TraceQuerySurfaceAttributes(
6868*54e60f84SAndroid Build Coastguard Worker     VADisplay           dpy,
6869*54e60f84SAndroid Build Coastguard Worker     VAConfigID          config,
6870*54e60f84SAndroid Build Coastguard Worker     VASurfaceAttrib    *attrib_list,
6871*54e60f84SAndroid Build Coastguard Worker     unsigned int       *num_attribs
6872*54e60f84SAndroid Build Coastguard Worker )
6873*54e60f84SAndroid Build Coastguard Worker {
6874*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX(dpy);
6875*54e60f84SAndroid Build Coastguard Worker 
6876*54e60f84SAndroid Build Coastguard Worker     TRACE_FUNCNAME(idx);
6877*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tconfig = 0x%08x\n", config);
6878*54e60f84SAndroid Build Coastguard Worker     va_TraceSurfaceAttributes(trace_ctx, attrib_list, num_attribs, 0);
6879*54e60f84SAndroid Build Coastguard Worker 
6880*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
6881*54e60f84SAndroid Build Coastguard Worker 
6882*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX_EXIT(pva_trace);
6883*54e60f84SAndroid Build Coastguard Worker }
6884*54e60f84SAndroid Build Coastguard Worker 
6885*54e60f84SAndroid Build Coastguard Worker 
va_TraceQuerySurfaceStatus(VADisplay dpy,VASurfaceID render_target,VASurfaceStatus * status)6886*54e60f84SAndroid Build Coastguard Worker void va_TraceQuerySurfaceStatus(
6887*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
6888*54e60f84SAndroid Build Coastguard Worker     VASurfaceID render_target,
6889*54e60f84SAndroid Build Coastguard Worker     VASurfaceStatus *status    /* out */
6890*54e60f84SAndroid Build Coastguard Worker )
6891*54e60f84SAndroid Build Coastguard Worker {
6892*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX(dpy);
6893*54e60f84SAndroid Build Coastguard Worker 
6894*54e60f84SAndroid Build Coastguard Worker     TRACE_FUNCNAME(idx);
6895*54e60f84SAndroid Build Coastguard Worker 
6896*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\trender_target = 0x%08x\n", render_target);
6897*54e60f84SAndroid Build Coastguard Worker     if (status)
6898*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tstatus = 0x%08x\n", *status);
6899*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
6900*54e60f84SAndroid Build Coastguard Worker 
6901*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX_EXIT(pva_trace);
6902*54e60f84SAndroid Build Coastguard Worker }
6903*54e60f84SAndroid Build Coastguard Worker 
6904*54e60f84SAndroid Build Coastguard Worker 
va_TraceQuerySurfaceError(VADisplay dpy,VASurfaceID surface,VAStatus error_status,void ** error_info)6905*54e60f84SAndroid Build Coastguard Worker void va_TraceQuerySurfaceError(
6906*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
6907*54e60f84SAndroid Build Coastguard Worker     VASurfaceID surface,
6908*54e60f84SAndroid Build Coastguard Worker     VAStatus error_status,
6909*54e60f84SAndroid Build Coastguard Worker     void **error_info       /*out*/
6910*54e60f84SAndroid Build Coastguard Worker )
6911*54e60f84SAndroid Build Coastguard Worker {
6912*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX(dpy);
6913*54e60f84SAndroid Build Coastguard Worker 
6914*54e60f84SAndroid Build Coastguard Worker     TRACE_FUNCNAME(idx);
6915*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsurface = 0x%08x\n", surface);
6916*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\terror_status = 0x%08x\n", error_status);
6917*54e60f84SAndroid Build Coastguard Worker     if (error_info && (error_status == VA_STATUS_ERROR_DECODING_ERROR)) {
6918*54e60f84SAndroid Build Coastguard Worker         VASurfaceDecodeMBErrors *p = *error_info;
6919*54e60f84SAndroid Build Coastguard Worker         while (p && (p->status != -1)) {
6920*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t\tstatus = %d\n", p->status);
6921*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t\tstart_mb = %d\n", p->start_mb);
6922*54e60f84SAndroid Build Coastguard Worker             va_TraceMsg(trace_ctx, "\t\tend_mb = %d\n", p->end_mb);
6923*54e60f84SAndroid Build Coastguard Worker             p++; /* next error record */
6924*54e60f84SAndroid Build Coastguard Worker         }
6925*54e60f84SAndroid Build Coastguard Worker     }
6926*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
6927*54e60f84SAndroid Build Coastguard Worker 
6928*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX_EXIT(pva_trace);
6929*54e60f84SAndroid Build Coastguard Worker }
6930*54e60f84SAndroid Build Coastguard Worker 
va_TraceSyncBuffer(VADisplay dpy,VABufferID buf_id,uint64_t timeout_ns)6931*54e60f84SAndroid Build Coastguard Worker void va_TraceSyncBuffer(
6932*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
6933*54e60f84SAndroid Build Coastguard Worker     VABufferID buf_id,
6934*54e60f84SAndroid Build Coastguard Worker     uint64_t timeout_ns
6935*54e60f84SAndroid Build Coastguard Worker )
6936*54e60f84SAndroid Build Coastguard Worker {
6937*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX(dpy);
6938*54e60f84SAndroid Build Coastguard Worker 
6939*54e60f84SAndroid Build Coastguard Worker     TRACE_FUNCNAME(idx);
6940*54e60f84SAndroid Build Coastguard Worker 
6941*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tbuf_id = 0x%08x\n", buf_id);
6942*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\ttimeout_ns = %lld\n", timeout_ns);
6943*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
6944*54e60f84SAndroid Build Coastguard Worker 
6945*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX_EXIT(pva_trace);
6946*54e60f84SAndroid Build Coastguard Worker }
6947*54e60f84SAndroid Build Coastguard Worker 
va_TraceMaxNumDisplayAttributes(VADisplay dpy,int number)6948*54e60f84SAndroid Build Coastguard Worker void va_TraceMaxNumDisplayAttributes(
6949*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
6950*54e60f84SAndroid Build Coastguard Worker     int number
6951*54e60f84SAndroid Build Coastguard Worker )
6952*54e60f84SAndroid Build Coastguard Worker {
6953*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX(dpy);
6954*54e60f84SAndroid Build Coastguard Worker 
6955*54e60f84SAndroid Build Coastguard Worker     TRACE_FUNCNAME(idx);
6956*54e60f84SAndroid Build Coastguard Worker 
6957*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmax_display_attributes = %d\n", number);
6958*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
6959*54e60f84SAndroid Build Coastguard Worker 
6960*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX_EXIT(pva_trace);
6961*54e60f84SAndroid Build Coastguard Worker }
6962*54e60f84SAndroid Build Coastguard Worker 
va_TraceQueryDisplayAttributes(VADisplay dpy,VADisplayAttribute * attr_list,int * num_attributes)6963*54e60f84SAndroid Build Coastguard Worker void va_TraceQueryDisplayAttributes(
6964*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
6965*54e60f84SAndroid Build Coastguard Worker     VADisplayAttribute *attr_list,    /* out */
6966*54e60f84SAndroid Build Coastguard Worker     int *num_attributes               /* out */
6967*54e60f84SAndroid Build Coastguard Worker )
6968*54e60f84SAndroid Build Coastguard Worker {
6969*54e60f84SAndroid Build Coastguard Worker     int i;
6970*54e60f84SAndroid Build Coastguard Worker 
6971*54e60f84SAndroid Build Coastguard Worker     if (attr_list == NULL || num_attributes == NULL)
6972*54e60f84SAndroid Build Coastguard Worker         return;
6973*54e60f84SAndroid Build Coastguard Worker 
6974*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX(dpy);
6975*54e60f84SAndroid Build Coastguard Worker 
6976*54e60f84SAndroid Build Coastguard Worker     TRACE_FUNCNAME(idx);
6977*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_attributes = %d\n", *num_attributes);
6978*54e60f84SAndroid Build Coastguard Worker 
6979*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < *num_attributes; i++) {
6980*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tattr_list[%d] =\n", i);
6981*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t  type = 0x%08x\n", attr_list[i].type);
6982*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t  min_value = %d\n", attr_list[i].min_value);
6983*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t  max_value = %d\n", attr_list[i].max_value);
6984*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t  value = %d\n", attr_list[i].value);
6985*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t  flags = %d\n", attr_list[i].flags);
6986*54e60f84SAndroid Build Coastguard Worker     }
6987*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
6988*54e60f84SAndroid Build Coastguard Worker 
6989*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX_EXIT(pva_trace);
6990*54e60f84SAndroid Build Coastguard Worker }
6991*54e60f84SAndroid Build Coastguard Worker 
6992*54e60f84SAndroid Build Coastguard Worker 
va_TraceDisplayAttributes(struct trace_context * trace_ctx,VADisplayAttribute * attr_list,int num_attributes)6993*54e60f84SAndroid Build Coastguard Worker static void va_TraceDisplayAttributes(
6994*54e60f84SAndroid Build Coastguard Worker     struct trace_context *trace_ctx,
6995*54e60f84SAndroid Build Coastguard Worker     VADisplayAttribute *attr_list,
6996*54e60f84SAndroid Build Coastguard Worker     int num_attributes
6997*54e60f84SAndroid Build Coastguard Worker )
6998*54e60f84SAndroid Build Coastguard Worker {
6999*54e60f84SAndroid Build Coastguard Worker     int i;
7000*54e60f84SAndroid Build Coastguard Worker 
7001*54e60f84SAndroid Build Coastguard Worker     if (attr_list == NULL)
7002*54e60f84SAndroid Build Coastguard Worker         return;
7003*54e60f84SAndroid Build Coastguard Worker 
7004*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_attributes = %d\n", num_attributes);
7005*54e60f84SAndroid Build Coastguard Worker 
7006*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < num_attributes; i++) {
7007*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tattr_list[%d] =\n", i);
7008*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t  type = 0x%08x\n", attr_list[i].type);
7009*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t  min_value = %d\n", attr_list[i].min_value);
7010*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t  max_value = %d\n", attr_list[i].max_value);
7011*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t  value = %d\n", attr_list[i].value);
7012*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\t  flags = %d\n", attr_list[i].flags);
7013*54e60f84SAndroid Build Coastguard Worker     }
7014*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
7015*54e60f84SAndroid Build Coastguard Worker }
7016*54e60f84SAndroid Build Coastguard Worker 
7017*54e60f84SAndroid Build Coastguard Worker 
va_TraceGetDisplayAttributes(VADisplay dpy,VADisplayAttribute * attr_list,int num_attributes)7018*54e60f84SAndroid Build Coastguard Worker void va_TraceGetDisplayAttributes(
7019*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
7020*54e60f84SAndroid Build Coastguard Worker     VADisplayAttribute *attr_list,
7021*54e60f84SAndroid Build Coastguard Worker     int num_attributes
7022*54e60f84SAndroid Build Coastguard Worker )
7023*54e60f84SAndroid Build Coastguard Worker {
7024*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX(dpy);
7025*54e60f84SAndroid Build Coastguard Worker 
7026*54e60f84SAndroid Build Coastguard Worker     TRACE_FUNCNAME(idx);
7027*54e60f84SAndroid Build Coastguard Worker 
7028*54e60f84SAndroid Build Coastguard Worker     va_TraceDisplayAttributes(trace_ctx, attr_list, num_attributes);
7029*54e60f84SAndroid Build Coastguard Worker 
7030*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX_EXIT(pva_trace);
7031*54e60f84SAndroid Build Coastguard Worker }
7032*54e60f84SAndroid Build Coastguard Worker 
va_TraceSetDisplayAttributes(VADisplay dpy,VADisplayAttribute * attr_list,int num_attributes)7033*54e60f84SAndroid Build Coastguard Worker void va_TraceSetDisplayAttributes(
7034*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
7035*54e60f84SAndroid Build Coastguard Worker     VADisplayAttribute *attr_list,
7036*54e60f84SAndroid Build Coastguard Worker     int num_attributes
7037*54e60f84SAndroid Build Coastguard Worker )
7038*54e60f84SAndroid Build Coastguard Worker {
7039*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX(dpy);
7040*54e60f84SAndroid Build Coastguard Worker 
7041*54e60f84SAndroid Build Coastguard Worker     TRACE_FUNCNAME(idx);
7042*54e60f84SAndroid Build Coastguard Worker 
7043*54e60f84SAndroid Build Coastguard Worker     va_TraceDisplayAttributes(trace_ctx, attr_list, num_attributes);
7044*54e60f84SAndroid Build Coastguard Worker 
7045*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX_EXIT(pva_trace);
7046*54e60f84SAndroid Build Coastguard Worker }
7047*54e60f84SAndroid Build Coastguard Worker 
7048*54e60f84SAndroid Build Coastguard Worker 
va_TracePutSurface(VADisplay dpy,VASurfaceID surface,void * draw,short srcx,short srcy,unsigned short srcw,unsigned short srch,short destx,short desty,unsigned short destw,unsigned short desth,VARectangle * cliprects,unsigned int number_cliprects,unsigned int flags)7049*54e60f84SAndroid Build Coastguard Worker void va_TracePutSurface(
7050*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
7051*54e60f84SAndroid Build Coastguard Worker     VASurfaceID surface,
7052*54e60f84SAndroid Build Coastguard Worker     void *draw, /* the target Drawable */
7053*54e60f84SAndroid Build Coastguard Worker     short srcx,
7054*54e60f84SAndroid Build Coastguard Worker     short srcy,
7055*54e60f84SAndroid Build Coastguard Worker     unsigned short srcw,
7056*54e60f84SAndroid Build Coastguard Worker     unsigned short srch,
7057*54e60f84SAndroid Build Coastguard Worker     short destx,
7058*54e60f84SAndroid Build Coastguard Worker     short desty,
7059*54e60f84SAndroid Build Coastguard Worker     unsigned short destw,
7060*54e60f84SAndroid Build Coastguard Worker     unsigned short desth,
7061*54e60f84SAndroid Build Coastguard Worker     VARectangle *cliprects, /* client supplied clip list */
7062*54e60f84SAndroid Build Coastguard Worker     unsigned int number_cliprects, /* number of clip rects in the clip list */
7063*54e60f84SAndroid Build Coastguard Worker     unsigned int flags /* de-interlacing flags */
7064*54e60f84SAndroid Build Coastguard Worker )
7065*54e60f84SAndroid Build Coastguard Worker {
7066*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX(dpy);
7067*54e60f84SAndroid Build Coastguard Worker 
7068*54e60f84SAndroid Build Coastguard Worker     TRACE_FUNCNAME(idx);
7069*54e60f84SAndroid Build Coastguard Worker 
7070*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsurface = 0x%08x\n", surface);
7071*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdraw = 0x%p\n", draw);
7072*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsrcx = %d\n", srcx);
7073*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsrcy = %d\n", srcy);
7074*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsrcw = %d\n", srcw);
7075*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsrch = %d\n", srch);
7076*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdestx = %d\n", destx);
7077*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdesty = %d\n", desty);
7078*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdestw = %d\n", destw);
7079*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tdesth = %d\n", desth);
7080*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tcliprects = 0x%p\n", cliprects);
7081*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnumber_cliprects = %d\n", number_cliprects);
7082*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tflags = 0x%08x\n", flags);
7083*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, NULL);
7084*54e60f84SAndroid Build Coastguard Worker 
7085*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX_EXIT(pva_trace);
7086*54e60f84SAndroid Build Coastguard Worker }
7087*54e60f84SAndroid Build Coastguard Worker 
va_TraceStatus(VADisplay dpy,const char * funcName,VAStatus status)7088*54e60f84SAndroid Build Coastguard Worker void va_TraceStatus(VADisplay dpy, const char * funcName, VAStatus status)
7089*54e60f84SAndroid Build Coastguard Worker {
7090*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX(dpy);
7091*54e60f84SAndroid Build Coastguard Worker 
7092*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "=========%s ret = %s, %s \n", funcName, vaStatusStr(status), vaErrorStr(status));
7093*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX_EXIT(pva_trace);
7094*54e60f84SAndroid Build Coastguard Worker }
7095*54e60f84SAndroid Build Coastguard Worker 
va_TraceEvent(VADisplay dpy,unsigned short id,unsigned short opcode,unsigned int num,VAEventData * desc)7096*54e60f84SAndroid Build Coastguard Worker void va_TraceEvent(
7097*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
7098*54e60f84SAndroid Build Coastguard Worker     unsigned short id,
7099*54e60f84SAndroid Build Coastguard Worker     unsigned short opcode,
7100*54e60f84SAndroid Build Coastguard Worker     unsigned int num,
7101*54e60f84SAndroid Build Coastguard Worker     VAEventData *desc
7102*54e60f84SAndroid Build Coastguard Worker )
7103*54e60f84SAndroid Build Coastguard Worker {
7104*54e60f84SAndroid Build Coastguard Worker     struct va_trace *pva_trace = (struct va_trace *)(((VADisplayContextP)dpy)->vatrace);
7105*54e60f84SAndroid Build Coastguard Worker     int data[VA_TRACE_MAX_SIZE / sizeof(int)];
7106*54e60f84SAndroid Build Coastguard Worker     size_t write_size = 0;
7107*54e60f84SAndroid Build Coastguard Worker     char *p_data;
7108*54e60f84SAndroid Build Coastguard Worker     int i;
7109*54e60f84SAndroid Build Coastguard Worker 
7110*54e60f84SAndroid Build Coastguard Worker     if (pva_trace == NULL || pva_trace->ftrace_fd < 0) {
7111*54e60f84SAndroid Build Coastguard Worker         return;
7112*54e60f84SAndroid Build Coastguard Worker     }
7113*54e60f84SAndroid Build Coastguard Worker     /* trace event header: 32bit va trace id; 32bit event id + size; 32bit opcode */
7114*54e60f84SAndroid Build Coastguard Worker     data[0] = VA_TRACE_ID;
7115*54e60f84SAndroid Build Coastguard Worker     data[1] = id << 16;
7116*54e60f84SAndroid Build Coastguard Worker     data[2] = opcode;
7117*54e60f84SAndroid Build Coastguard Worker     /* append event data in scattered list */
7118*54e60f84SAndroid Build Coastguard Worker     p_data = (char *)&data[3];
7119*54e60f84SAndroid Build Coastguard Worker     write_size = VA_TRACE_HEADER_SIZE;
7120*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < num; i++) {
7121*54e60f84SAndroid Build Coastguard Worker         if (write_size + desc[i].size > VA_TRACE_MAX_SIZE) {
7122*54e60f84SAndroid Build Coastguard Worker             va_errorMessage(pva_trace->dpy, "error: trace event %d carry too big data. max size %d \n", id, VA_TRACE_MAX_SIZE);
7123*54e60f84SAndroid Build Coastguard Worker             break;
7124*54e60f84SAndroid Build Coastguard Worker         }
7125*54e60f84SAndroid Build Coastguard Worker         if (desc[i].buf) {
7126*54e60f84SAndroid Build Coastguard Worker             memcpy(p_data, desc[i].buf, desc[i].size);
7127*54e60f84SAndroid Build Coastguard Worker         } else {
7128*54e60f84SAndroid Build Coastguard Worker             /*fill with 0xff for null input. 0 could be valid some case. */
7129*54e60f84SAndroid Build Coastguard Worker             memset(p_data, 0xff, desc[i].size);
7130*54e60f84SAndroid Build Coastguard Worker         }
7131*54e60f84SAndroid Build Coastguard Worker         p_data += desc[i].size;
7132*54e60f84SAndroid Build Coastguard Worker         write_size += desc[i].size;
7133*54e60f84SAndroid Build Coastguard Worker     }
7134*54e60f84SAndroid Build Coastguard Worker     if (i == num) {
7135*54e60f84SAndroid Build Coastguard Worker         data[1] |= write_size; /* set event data size before write */
7136*54e60f84SAndroid Build Coastguard Worker         write_size = write(pva_trace->ftrace_fd, data, write_size);
7137*54e60f84SAndroid Build Coastguard Worker     }
7138*54e60f84SAndroid Build Coastguard Worker     return;
7139*54e60f84SAndroid Build Coastguard Worker }
7140*54e60f84SAndroid Build Coastguard Worker 
va_TraceEventBuffers(VADisplay dpy,VAContextID context,int num_buffers,VABufferID * buffers)7141*54e60f84SAndroid Build Coastguard Worker void va_TraceEventBuffers(
7142*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
7143*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
7144*54e60f84SAndroid Build Coastguard Worker     int num_buffers,
7145*54e60f84SAndroid Build Coastguard Worker     VABufferID *buffers)
7146*54e60f84SAndroid Build Coastguard Worker {
7147*54e60f84SAndroid Build Coastguard Worker     struct va_trace *pva_trace = (struct va_trace *)(((VADisplayContextP)dpy)->vatrace);
7148*54e60f84SAndroid Build Coastguard Worker     VABufferType type;
7149*54e60f84SAndroid Build Coastguard Worker     unsigned int size, num;
7150*54e60f84SAndroid Build Coastguard Worker     int i;
7151*54e60f84SAndroid Build Coastguard Worker 
7152*54e60f84SAndroid Build Coastguard Worker     if (pva_trace == NULL || pva_trace->ftrace_fd < 0) {
7153*54e60f84SAndroid Build Coastguard Worker         return;
7154*54e60f84SAndroid Build Coastguard Worker     }
7155*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < num_buffers; i++) {
7156*54e60f84SAndroid Build Coastguard Worker         unsigned char *pbuf = NULL;
7157*54e60f84SAndroid Build Coastguard Worker         unsigned int total = 0;
7158*54e60f84SAndroid Build Coastguard Worker         int data[3];
7159*54e60f84SAndroid Build Coastguard Worker         vaBufferInfo(dpy, context, buffers[i], &type, &size, &num);
7160*54e60f84SAndroid Build Coastguard Worker         vaMapBuffer(dpy, buffers[i], (void **)&pbuf);
7161*54e60f84SAndroid Build Coastguard Worker         if (pbuf == NULL)
7162*54e60f84SAndroid Build Coastguard Worker             continue;
7163*54e60f84SAndroid Build Coastguard Worker         total = size * num;
7164*54e60f84SAndroid Build Coastguard Worker         /* fill buffer dump header */
7165*54e60f84SAndroid Build Coastguard Worker         data[0] = type;
7166*54e60f84SAndroid Build Coastguard Worker         data[1] = size;
7167*54e60f84SAndroid Build Coastguard Worker         data[2] = total;
7168*54e60f84SAndroid Build Coastguard Worker         /* apeend buffer data */
7169*54e60f84SAndroid Build Coastguard Worker         if (VA_TRACE_HEADER_SIZE + sizeof(data) + total <= VA_TRACE_MAX_SIZE) {
7170*54e60f84SAndroid Build Coastguard Worker             /* send in trace info opcode if data is small */
7171*54e60f84SAndroid Build Coastguard Worker             VAEventData desc[] = {{data, sizeof(data)}, {pbuf, total}};
7172*54e60f84SAndroid Build Coastguard Worker             va_TraceEvent(dpy, BUFFER_DATA, TRACE_INFO, 2, desc);
7173*54e60f84SAndroid Build Coastguard Worker         } else {
7174*54e60f84SAndroid Build Coastguard Worker             // split buffer data to send in multi trace event
7175*54e60f84SAndroid Build Coastguard Worker             VAEventData desc[2] = {{data, sizeof(data)}, {NULL, 0}};
7176*54e60f84SAndroid Build Coastguard Worker             unsigned int write_size = 0;
7177*54e60f84SAndroid Build Coastguard Worker 
7178*54e60f84SAndroid Build Coastguard Worker             va_TraceEvent(dpy, BUFFER_DATA, TRACE_BEGIN, 1, desc);
7179*54e60f84SAndroid Build Coastguard Worker             desc[0].buf = &write_size;
7180*54e60f84SAndroid Build Coastguard Worker             desc[0].size = sizeof(write_size);
7181*54e60f84SAndroid Build Coastguard Worker             while (total > 0) {
7182*54e60f84SAndroid Build Coastguard Worker                 write_size = total;
7183*54e60f84SAndroid Build Coastguard Worker                 if (write_size > VA_TRACE_MAX_SIZE - VA_TRACE_HEADER_SIZE - sizeof(unsigned int)) {
7184*54e60f84SAndroid Build Coastguard Worker                     write_size = VA_TRACE_MAX_SIZE - VA_TRACE_HEADER_SIZE - sizeof(unsigned int);
7185*54e60f84SAndroid Build Coastguard Worker                 }
7186*54e60f84SAndroid Build Coastguard Worker                 desc[1].buf = pbuf;
7187*54e60f84SAndroid Build Coastguard Worker                 desc[1].size = write_size;
7188*54e60f84SAndroid Build Coastguard Worker                 va_TraceEvent(dpy, BUFFER_DATA, TRACE_DATA, 2, desc);
7189*54e60f84SAndroid Build Coastguard Worker                 total -= write_size;
7190*54e60f84SAndroid Build Coastguard Worker                 pbuf += write_size;
7191*54e60f84SAndroid Build Coastguard Worker             }
7192*54e60f84SAndroid Build Coastguard Worker             va_TraceEvent(dpy, BUFFER_DATA, TRACE_END, 0, NULL);
7193*54e60f84SAndroid Build Coastguard Worker         }
7194*54e60f84SAndroid Build Coastguard Worker     }
7195*54e60f84SAndroid Build Coastguard Worker     return;
7196*54e60f84SAndroid Build Coastguard Worker }
7197*54e60f84SAndroid Build Coastguard Worker 
va_TraceExportSurfaceHandle(VADisplay dpy,VASurfaceID surfaceId,uint32_t memType,uint32_t flags,void * descriptor)7198*54e60f84SAndroid Build Coastguard Worker void va_TraceExportSurfaceHandle(
7199*54e60f84SAndroid Build Coastguard Worker     VADisplay        dpy,
7200*54e60f84SAndroid Build Coastguard Worker     VASurfaceID      surfaceId,
7201*54e60f84SAndroid Build Coastguard Worker     uint32_t         memType,
7202*54e60f84SAndroid Build Coastguard Worker     uint32_t         flags,
7203*54e60f84SAndroid Build Coastguard Worker     void             *descriptor)
7204*54e60f84SAndroid Build Coastguard Worker {
7205*54e60f84SAndroid Build Coastguard Worker     int i;
7206*54e60f84SAndroid Build Coastguard Worker 
7207*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX(dpy);
7208*54e60f84SAndroid Build Coastguard Worker 
7209*54e60f84SAndroid Build Coastguard Worker     TRACE_FUNCNAME(idx);
7210*54e60f84SAndroid Build Coastguard Worker 
7211*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tsurfaceId = 0x%08x\n", surfaceId);
7212*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tmemType   = 0x%08x\n", memType);
7213*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tflags     = 0x%08x\n", flags);
7214*54e60f84SAndroid Build Coastguard Worker 
7215*54e60f84SAndroid Build Coastguard Worker     if (memType != VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2 && memType != VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_3) {
7216*54e60f84SAndroid Build Coastguard Worker         DPY2TRACE_VIRCTX_EXIT(pva_trace);
7217*54e60f84SAndroid Build Coastguard Worker         return;
7218*54e60f84SAndroid Build Coastguard Worker     }
7219*54e60f84SAndroid Build Coastguard Worker 
7220*54e60f84SAndroid Build Coastguard Worker     VADRMPRIMESurfaceDescriptor *desc = (VADRMPRIMESurfaceDescriptor *)descriptor;
7221*54e60f84SAndroid Build Coastguard Worker 
7222*54e60f84SAndroid Build Coastguard Worker     if (!desc) {
7223*54e60f84SAndroid Build Coastguard Worker         DPY2TRACE_VIRCTX_EXIT(pva_trace);
7224*54e60f84SAndroid Build Coastguard Worker         return;
7225*54e60f84SAndroid Build Coastguard Worker     }
7226*54e60f84SAndroid Build Coastguard Worker 
7227*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tfourcc      = %u\n", desc->fourcc);
7228*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\twidth       = %u\n", desc->width);
7229*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\theight      = %u\n", desc->height);
7230*54e60f84SAndroid Build Coastguard Worker 
7231*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_objects = %u\n", desc->num_objects);
7232*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < desc->num_objects; i++) {
7233*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tobject %d, fd       = %d\n", i, desc->objects[i].fd);
7234*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tobject %d, size     = %u\n", i, desc->objects[i].size);
7235*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tobject %d, modifier = 0x%llx\n", i, desc->objects[i].drm_format_modifier);
7236*54e60f84SAndroid Build Coastguard Worker     }
7237*54e60f84SAndroid Build Coastguard Worker 
7238*54e60f84SAndroid Build Coastguard Worker     va_TraceMsg(trace_ctx, "\tnum_objects = %u\n", desc->num_layers);
7239*54e60f84SAndroid Build Coastguard Worker     for (i = 0; i < desc->num_layers; i++) {
7240*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tlayer %d, drm_format = %d\n", i, desc->layers[i].drm_format);
7241*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tlayer %d, size       = %u\n", i, desc->layers[i].num_planes);
7242*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tlayer %d, object idx = [%d, %d, %d, %d]\n", i, desc->layers[i].object_index[0], desc->layers[i].object_index[1], desc->layers[i].object_index[2], desc->layers[i].object_index[3]);
7243*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tlayer %d, offset     = [%d, %d, %d, %d]\n", i, desc->layers[i].offset[0], desc->layers[i].offset[1], desc->layers[i].offset[2], desc->layers[i].offset[3]);
7244*54e60f84SAndroid Build Coastguard Worker         va_TraceMsg(trace_ctx, "\tlayer %d, pitch      = [%d, %d, %d, %d]\n", i, desc->layers[i].pitch[0], desc->layers[i].pitch[1], desc->layers[i].pitch[2], desc->layers[i].pitch[3]);
7245*54e60f84SAndroid Build Coastguard Worker     }
7246*54e60f84SAndroid Build Coastguard Worker 
7247*54e60f84SAndroid Build Coastguard Worker     DPY2TRACE_VIRCTX_EXIT(pva_trace);
7248*54e60f84SAndroid Build Coastguard Worker }
7249