1f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
2b0fac498ca4863166252f1268fda83394db54153Fei Jiang/*
336bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang * Copyright (c) 2009-2011 Intel Corporation. All Rights Reserved.
4b0fac498ca4863166252f1268fda83394db54153Fei Jiang *
5b0fac498ca4863166252f1268fda83394db54153Fei Jiang * Permission is hereby granted, free of charge, to any person obtaining a
6b0fac498ca4863166252f1268fda83394db54153Fei Jiang * copy of this software and associated documentation files (the
7b0fac498ca4863166252f1268fda83394db54153Fei Jiang * "Software"), to deal in the Software without restriction, including
8b0fac498ca4863166252f1268fda83394db54153Fei Jiang * without limitation the rights to use, copy, modify, merge, publish,
9b0fac498ca4863166252f1268fda83394db54153Fei Jiang * distribute, sub license, and/or sell copies of the Software, and to
10b0fac498ca4863166252f1268fda83394db54153Fei Jiang * permit persons to whom the Software is furnished to do so, subject to
11b0fac498ca4863166252f1268fda83394db54153Fei Jiang * the following conditions:
12b0fac498ca4863166252f1268fda83394db54153Fei Jiang *
13b0fac498ca4863166252f1268fda83394db54153Fei Jiang * The above copyright notice and this permission notice (including the
14b0fac498ca4863166252f1268fda83394db54153Fei Jiang * next paragraph) shall be included in all copies or substantial portions
15b0fac498ca4863166252f1268fda83394db54153Fei Jiang * of the Software.
16b0fac498ca4863166252f1268fda83394db54153Fei Jiang *
17b0fac498ca4863166252f1268fda83394db54153Fei Jiang * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
18b0fac498ca4863166252f1268fda83394db54153Fei Jiang * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19b0fac498ca4863166252f1268fda83394db54153Fei Jiang * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
20b0fac498ca4863166252f1268fda83394db54153Fei Jiang * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
21b0fac498ca4863166252f1268fda83394db54153Fei Jiang * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
22b0fac498ca4863166252f1268fda83394db54153Fei Jiang * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
23b0fac498ca4863166252f1268fda83394db54153Fei Jiang * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24b0fac498ca4863166252f1268fda83394db54153Fei Jiang */
25b0fac498ca4863166252f1268fda83394db54153Fei Jiang
26b0fac498ca4863166252f1268fda83394db54153Fei Jiang#define _GNU_SOURCE 1
27b0fac498ca4863166252f1268fda83394db54153Fei Jiang#include "va.h"
284b672db6ee89c9846451bbab23cf18e93c4260b2hding#include "va_enc_h264.h"
29b0fac498ca4863166252f1268fda83394db54153Fei Jiang#include "va_backend.h"
30901c77a7aa491f56b63af7b655b67439481e4177Fei Jiang#include "va_trace.h"
314b672db6ee89c9846451bbab23cf18e93c4260b2hding#include "va_enc_h264.h"
327d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan#include "va_enc_jpeg.h"
33f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun#include "va_enc_vp8.h"
349992891b62398a80bd0867f8d167c0faa49861fdCheng Yao#include "va_dec_jpeg.h"
350f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan#include "va_dec_vp8.h"
368c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan#include "va_vpp.h"
37b0fac498ca4863166252f1268fda83394db54153Fei Jiang#include <assert.h>
38b0fac498ca4863166252f1268fda83394db54153Fei Jiang#include <stdarg.h>
39b0fac498ca4863166252f1268fda83394db54153Fei Jiang#include <stdlib.h>
40b0fac498ca4863166252f1268fda83394db54153Fei Jiang#include <stdio.h>
41b0fac498ca4863166252f1268fda83394db54153Fei Jiang#include <string.h>
42b0fac498ca4863166252f1268fda83394db54153Fei Jiang#include <dlfcn.h>
43b0fac498ca4863166252f1268fda83394db54153Fei Jiang#include <unistd.h>
4421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan#include <sys/types.h>
4521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan#include <sys/stat.h>
4621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan#include <unistd.h>
4721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan#include <time.h>
48e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan#include <errno.h>
4921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
5021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan/*
5121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan * Env. to debug some issue, e.g. the decode/encode issue in a video conference scenerio:
5221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan * .LIBVA_TRACE=log_file: general VA parameters saved into log_file
53f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun * .LIBVA_TRACE_BUFDATA: dump all VA data buffer into log_file
5421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan * .LIBVA_TRACE_CODEDBUF=coded_clip_file: save the coded clip into file coded_clip_file
555b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang * .LIBVA_TRACE_SURFACE=yuv_file: save surface YUV into file yuv_file. Use file name to determine
565b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang *                                decode/encode or jpeg surfaces
57eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan * .LIBVA_TRACE_SURFACE_GEOMETRY=WIDTHxHEIGHT+XOFF+YOFF: only save part of surface context into file
58eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan *                                due to storage bandwidth limitation
5921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan */
6021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
6121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan/* global settings */
6221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
6321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan/* LIBVA_TRACE */
645b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sangint trace_flag = 0;
65b0fac498ca4863166252f1268fda83394db54153Fei Jiang
6621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan/* per context settings */
67f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolunstruct trace_context {
6821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    /* LIBVA_TRACE */
6921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    FILE *trace_fp_log; /* save the log into a file */
705b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang    char *trace_log_fn; /* file name */
7121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
7221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    /* LIBVA_TRACE_CODEDBUF */
7321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    FILE *trace_fp_codedbuf; /* save the encode result into a file */
745b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang    char *trace_codedbuf_fn; /* file name */
7521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
7621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    /* LIBVA_TRACE_SURFACE */
7721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    FILE *trace_fp_surface; /* save the surface YUV into a file */
785b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang    char *trace_surface_fn; /* file name */
7921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
8021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    VAContextID  trace_context; /* current context */
8121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
8221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    VASurfaceID  trace_rendertarget; /* current render target */
8321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    VAProfile trace_profile; /* current profile for buffers */
8421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    VAEntrypoint trace_entrypoint; /* current entrypoint */
8521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
8621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    unsigned int trace_frame_no; /* current frame NO */
8721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    unsigned int trace_slice_no; /* current slice NO */
8821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    unsigned int trace_slice_size; /* current slice buffer size */
8921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
90eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan    unsigned int trace_surface_width; /* surface dumping geometry */
91eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan    unsigned int trace_surface_height;
92eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan    unsigned int trace_surface_xoff;
93eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan    unsigned int trace_surface_yoff;
94eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan
9521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    unsigned int trace_frame_width; /* current frame width */
9621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    unsigned int trace_frame_height; /* current frame height */
97f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun};
9821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
99f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun#define TRACE_CTX(dpy) ((struct trace_context *)((VADisplayContextP)dpy)->vatrace)
100f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
101f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun#define DPY2TRACECTX(dpy)                               \
102f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    struct trace_context *trace_ctx = TRACE_CTX(dpy);   \
10321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan                                                        \
104f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    if (trace_ctx == NULL)                              \
105f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        return;                                         \
10621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
107f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun#define TRACE_FUNCNAME(idx)    va_TraceMsg(trace_ctx, "==========%s\n", __func__);
108b0fac498ca4863166252f1268fda83394db54153Fei Jiang
10921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan/* Prototype declarations (functions defined in va.c) */
110b0fac498ca4863166252f1268fda83394db54153Fei Jiang
11121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanvoid va_errorMessage(const char *msg, ...);
11221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanvoid va_infoMessage(const char *msg, ...);
113b0fac498ca4863166252f1268fda83394db54153Fei Jiang
11421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanint va_parseConfig(char *env, char *env_value);
115b0fac498ca4863166252f1268fda83394db54153Fei Jiang
11621e26478769d887b8357289ebb7faa47b8b415aeAustin YuanVAStatus vaBufferInfo(
117901c77a7aa491f56b63af7b655b67439481e4177Fei Jiang    VADisplay dpy,
11836bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang    VAContextID context,        /* in */
11936bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang    VABufferID buf_id,          /* in */
12036bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang    VABufferType *type,         /* out */
12136bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang    unsigned int *size,         /* out */
12236bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang    unsigned int *num_elements  /* out */
12372b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang    );
124901c77a7aa491f56b63af7b655b67439481e4177Fei Jiang
125901c77a7aa491f56b63af7b655b67439481e4177Fei JiangVAStatus vaLockSurface(VADisplay dpy,
12672b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang                       VASurfaceID surface,
12772b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang                       unsigned int *fourcc, /* following are output argument */
12872b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang                       unsigned int *luma_stride,
12972b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang                       unsigned int *chroma_u_stride,
13072b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang                       unsigned int *chroma_v_stride,
13172b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang                       unsigned int *luma_offset,
13272b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang                       unsigned int *chroma_u_offset,
13372b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang                       unsigned int *chroma_v_offset,
13472b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang                       unsigned int *buffer_name,
13572b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang                       void **buffer
13672b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang                       );
137901c77a7aa491f56b63af7b655b67439481e4177Fei Jiang
138901c77a7aa491f56b63af7b655b67439481e4177Fei JiangVAStatus vaUnlockSurface(VADisplay dpy,
13972b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang                         VASurfaceID surface
14072b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang                         );
141901c77a7aa491f56b63af7b655b67439481e4177Fei Jiang
1425b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang#define FILE_NAME_SUFFIX(env_value)                      \
1435b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sangdo {                                                    \
1445b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang    int tmp = strnlen(env_value, sizeof(env_value));    \
1455b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang    int left = sizeof(env_value) - tmp;                 \
1465b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang                                                        \
1475b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang    snprintf(env_value+tmp,                             \
1485b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang             left,                                      \
149f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun             ".%04d.%08lx",                             \
150f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun             suffix,                                    \
151f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun             (unsigned long)trace_ctx);                 \
1525b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang} while (0)
15321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
15421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanvoid va_TraceInit(VADisplay dpy)
155b0fac498ca4863166252f1268fda83394db54153Fei Jiang{
15621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    char env_value[1024];
1575b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang    unsigned short suffix = 0xffff & ((unsigned int)time(NULL));
15821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    FILE *tmp;
159f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    struct trace_context *trace_ctx = calloc(sizeof(struct trace_context), 1);
1607d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan
161f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    if (trace_ctx == NULL)
16221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        return;
163f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
16421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    if (va_parseConfig("LIBVA_TRACE", &env_value[0]) == 0) {
1655b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang        FILE_NAME_SUFFIX(env_value);
166f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        trace_ctx->trace_log_fn = strdup(env_value);
1675b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang
16821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        tmp = fopen(env_value, "w");
16936bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang        if (tmp) {
170f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            trace_ctx->trace_fp_log = tmp;
171f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            va_infoMessage("LIBVA_TRACE is on, save log into %s\n", trace_ctx->trace_log_fn);
1725b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang            trace_flag = VA_TRACE_FLAG_LOG;
1735b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang        } else
174e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan            va_errorMessage("Open file %s failed (%s)\n", env_value, strerror(errno));
17521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    }
17621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
17721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    /* may re-get the global settings for multiple context */
1785b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang    if ((trace_flag & VA_TRACE_FLAG_LOG) && (va_parseConfig("LIBVA_TRACE_BUFDATA", NULL) == 0)) {
1795b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang        trace_flag |= VA_TRACE_FLAG_BUFDATA;
18021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        va_infoMessage("LIBVA_TRACE_BUFDATA is on, dump buffer into log file\n");
18121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    }
18221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
18321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    /* per-context setting */
18421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    if (va_parseConfig("LIBVA_TRACE_CODEDBUF", &env_value[0]) == 0) {
1855b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang        FILE_NAME_SUFFIX(env_value);
186f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        trace_ctx->trace_codedbuf_fn = strdup(env_value);
1875b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang        va_infoMessage("LIBVA_TRACE_CODEDBUF is on, save codedbuf into log file %s\n",
188f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun                       trace_ctx->trace_codedbuf_fn);
1895b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang        trace_flag |= VA_TRACE_FLAG_CODEDBUF;
19021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    }
19121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
19221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    if (va_parseConfig("LIBVA_TRACE_SURFACE", &env_value[0]) == 0) {
1935b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang        FILE_NAME_SUFFIX(env_value);
194f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        trace_ctx->trace_surface_fn = strdup(env_value);
195eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan
1965b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang        va_infoMessage("LIBVA_TRACE_SURFACE is on, save surface into %s\n",
197f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun                       trace_ctx->trace_surface_fn);
1985b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang
1995b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang        /* for surface data dump, it is time-consume, and may
2005b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang         * cause some side-effect, so only trace the needed surfaces
2015b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang         * to trace encode surface, set the trace file name to sth like *enc*
2025b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang         * to trace decode surface, set the trace file name to sth like *dec*
2035b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang         * if no dec/enc in file name, set both
2045b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang         */
2055b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang        if (strstr(env_value, "dec"))
2065b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang            trace_flag |= VA_TRACE_FLAG_SURFACE_DECODE;
2075b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang        if (strstr(env_value, "enc"))
2085b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang            trace_flag |= VA_TRACE_FLAG_SURFACE_ENCODE;
2095b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang        if (strstr(env_value, "jpeg") || strstr(env_value, "jpg"))
2105b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang            trace_flag |= VA_TRACE_FLAG_SURFACE_JPEG;
211eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan
212eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan        if (va_parseConfig("LIBVA_TRACE_SURFACE_GEOMETRY", &env_value[0]) == 0) {
213eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan            char *p = env_value, *q;
214eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan
215f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            trace_ctx->trace_surface_width = strtod(p, &q);
216eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan            p = q+1; /* skip "x" */
217f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            trace_ctx->trace_surface_height = strtod(p, &q);
218eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan            p = q+1; /* skip "+" */
219f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            trace_ctx->trace_surface_xoff = strtod(p, &q);
220eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan            p = q+1; /* skip "+" */
221f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            trace_ctx->trace_surface_yoff = strtod(p, &q);
222eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan
223eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan            va_infoMessage("LIBVA_TRACE_SURFACE_GEOMETRY is on, only dump surface %dx%d+%d+%d content\n",
224f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun                           trace_ctx->trace_surface_width,
225f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun                           trace_ctx->trace_surface_height,
226f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun                           trace_ctx->trace_surface_xoff,
227f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun                           trace_ctx->trace_surface_yoff);
228eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan        }
229b0fac498ca4863166252f1268fda83394db54153Fei Jiang    }
230f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
231f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    ((VADisplayContextP)dpy)->vatrace = trace_ctx;
232b0fac498ca4863166252f1268fda83394db54153Fei Jiang}
233b0fac498ca4863166252f1268fda83394db54153Fei Jiang
23421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
23521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanvoid va_TraceEnd(VADisplay dpy)
236b0fac498ca4863166252f1268fda83394db54153Fei Jiang{
237f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
23821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
239f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    if (trace_ctx->trace_fp_log)
240f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        fclose(trace_ctx->trace_fp_log);
24121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
242f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    if (trace_ctx->trace_fp_codedbuf)
243f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        fclose(trace_ctx->trace_fp_codedbuf);
24421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
245f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    if (trace_ctx->trace_fp_surface)
246f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        fclose(trace_ctx->trace_fp_surface);
24721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
248f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    if (trace_ctx->trace_log_fn)
249f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        free(trace_ctx->trace_log_fn);
2505b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang
251f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    if (trace_ctx->trace_codedbuf_fn)
252f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        free(trace_ctx->trace_codedbuf_fn);
2535b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang
254f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    if (trace_ctx->trace_surface_fn)
255f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        free(trace_ctx->trace_surface_fn);
2565b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang
257f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    free(trace_ctx);
258f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    ((VADisplayContextP)dpy)->vatrace = NULL;
25921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan}
260b0fac498ca4863166252f1268fda83394db54153Fei Jiang
26136bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang
262f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolunvoid va_TraceMsg(struct trace_context *trace_ctx, const char *msg, ...)
263b0fac498ca4863166252f1268fda83394db54153Fei Jiang{
264b0fac498ca4863166252f1268fda83394db54153Fei Jiang    va_list args;
26521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
2665b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang    if (!(trace_flag & VA_TRACE_FLAG_LOG))
2675b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang        return;
2685b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang
269b0fac498ca4863166252f1268fda83394db54153Fei Jiang    if (msg)  {
270f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        struct timeval tv;
271f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
272f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        if (gettimeofday(&tv, NULL) == 0)
273f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan            fprintf(trace_ctx->trace_fp_log, "[%04d.%06d] ",
274f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun                    (unsigned int)tv.tv_sec & 0xffff, (unsigned int)tv.tv_usec);
275b0fac498ca4863166252f1268fda83394db54153Fei Jiang        va_start(args, msg);
276f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        vfprintf(trace_ctx->trace_fp_log, msg, args);
277b0fac498ca4863166252f1268fda83394db54153Fei Jiang        va_end(args);
27821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    } else
279f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        fflush(trace_ctx->trace_fp_log);
28021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan}
28121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
282b0fac498ca4863166252f1268fda83394db54153Fei Jiang
28321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanvoid va_TraceSurface(VADisplay dpy)
28421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan{
28597271ba25e09b36cf0734bf58f68fb823bb9b2beAndreas Gampe    unsigned int i;
28621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    unsigned int fourcc; /* following are output argument */
28721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    unsigned int luma_stride;
28821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    unsigned int chroma_u_stride;
28921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    unsigned int chroma_v_stride;
29021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    unsigned int luma_offset;
29121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    unsigned int chroma_u_offset;
29221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    unsigned int chroma_v_offset;
29321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    unsigned int buffer_name;
29421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    void *buffer = NULL;
29521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    unsigned char *Y_data, *UV_data, *tmp;
29621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    VAStatus va_status;
297f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
2985b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang
29988912d09886f431619dc966776a85976129f2b24Austin Yuan    if (!trace_ctx->trace_fp_surface)
30088912d09886f431619dc966776a85976129f2b24Austin Yuan        return;
30188912d09886f431619dc966776a85976129f2b24Austin Yuan
302f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "==========dump surface data in file %s\n", trace_ctx->trace_surface_fn);
30321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
304f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
30521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
30610965d59ea630e8a6856845faffb8e0f39b159a3Kun Wang    va_status = vaLockSurface(
30710965d59ea630e8a6856845faffb8e0f39b159a3Kun Wang        dpy,
308f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        trace_ctx->trace_rendertarget,
30910965d59ea630e8a6856845faffb8e0f39b159a3Kun Wang        &fourcc,
31010965d59ea630e8a6856845faffb8e0f39b159a3Kun Wang        &luma_stride, &chroma_u_stride, &chroma_v_stride,
31110965d59ea630e8a6856845faffb8e0f39b159a3Kun Wang        &luma_offset, &chroma_u_offset, &chroma_v_offset,
31210965d59ea630e8a6856845faffb8e0f39b159a3Kun Wang        &buffer_name, &buffer);
31321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
31421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    if (va_status != VA_STATUS_SUCCESS) {
315f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "Error:vaLockSurface failed\n");
31621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        return;
31721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    }
31821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
319f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tfourcc = 0x%08x\n", fourcc);
320f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\twidth = %d\n", trace_ctx->trace_frame_width);
321f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\theight = %d\n", trace_ctx->trace_frame_height);
322f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tluma_stride = %d\n", luma_stride);
323f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tchroma_u_stride = %d\n", chroma_u_stride);
324f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tchroma_v_stride = %d\n", chroma_v_stride);
325f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tluma_offset = %d\n", luma_offset);
326f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tchroma_u_offset = %d\n", chroma_u_offset);
327f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tchroma_v_offset = %d\n", chroma_v_offset);
32821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
32910965d59ea630e8a6856845faffb8e0f39b159a3Kun Wang    if (buffer == NULL) {
330f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "Error:vaLockSurface return NULL buffer\n");
331f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, NULL);
33236bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang
333f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        vaUnlockSurface(dpy, trace_ctx->trace_rendertarget);
33421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        return;
33521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    }
336f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tbuffer location = 0x%08x\n", buffer);
337f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
33821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
33910965d59ea630e8a6856845faffb8e0f39b159a3Kun Wang    Y_data = (unsigned char*)buffer;
34010965d59ea630e8a6856845faffb8e0f39b159a3Kun Wang    UV_data = (unsigned char*)buffer + chroma_u_offset;
34121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
342f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    tmp = Y_data + luma_stride * trace_ctx->trace_surface_yoff;
343f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    for (i=0; i<trace_ctx->trace_surface_height; i++) {
34488912d09886f431619dc966776a85976129f2b24Austin Yuan        fwrite(tmp + trace_ctx->trace_surface_xoff,
34588912d09886f431619dc966776a85976129f2b24Austin Yuan               trace_ctx->trace_surface_width,
34688912d09886f431619dc966776a85976129f2b24Austin Yuan               1, trace_ctx->trace_fp_surface);
34721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
348eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan        tmp += luma_stride;
34921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    }
3508c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    tmp = UV_data + chroma_u_stride * trace_ctx->trace_surface_yoff / 2;
35121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    if (fourcc == VA_FOURCC_NV12) {
352f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        for (i=0; i<trace_ctx->trace_surface_height/2; i++) {
35388912d09886f431619dc966776a85976129f2b24Austin Yuan            fwrite(tmp + trace_ctx->trace_surface_xoff,
35488912d09886f431619dc966776a85976129f2b24Austin Yuan                   trace_ctx->trace_surface_width,
35588912d09886f431619dc966776a85976129f2b24Austin Yuan                   1, trace_ctx->trace_fp_surface);
35621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
357eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan            tmp += chroma_u_stride;
35821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        }
35921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    }
36021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
361f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    vaUnlockSurface(dpy, trace_ctx->trace_rendertarget);
36221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
363f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
36421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan}
36521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
366942aa8ad7f4275a637fb2c1e5edfab686110cc52Kun Wang
36710965d59ea630e8a6856845faffb8e0f39b159a3Kun Wangvoid va_TraceInitialize (
368942aa8ad7f4275a637fb2c1e5edfab686110cc52Kun Wang    VADisplay dpy,
369a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    int __maybe_unused *major_version,     /* out */
370a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    int __maybe_unused *minor_version      /* out */
371942aa8ad7f4275a637fb2c1e5edfab686110cc52Kun Wang)
372942aa8ad7f4275a637fb2c1e5edfab686110cc52Kun Wang{
373a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    DPY2TRACECTX(dpy);
374a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan
375942aa8ad7f4275a637fb2c1e5edfab686110cc52Kun Wang    TRACE_FUNCNAME(idx);
376942aa8ad7f4275a637fb2c1e5edfab686110cc52Kun Wang}
377942aa8ad7f4275a637fb2c1e5edfab686110cc52Kun Wang
37810965d59ea630e8a6856845faffb8e0f39b159a3Kun Wangvoid va_TraceTerminate (
379942aa8ad7f4275a637fb2c1e5edfab686110cc52Kun Wang    VADisplay dpy
380942aa8ad7f4275a637fb2c1e5edfab686110cc52Kun Wang)
381942aa8ad7f4275a637fb2c1e5edfab686110cc52Kun Wang{
382f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
383942aa8ad7f4275a637fb2c1e5edfab686110cc52Kun Wang    TRACE_FUNCNAME(idx);
384942aa8ad7f4275a637fb2c1e5edfab686110cc52Kun Wang}
385942aa8ad7f4275a637fb2c1e5edfab686110cc52Kun Wang
386942aa8ad7f4275a637fb2c1e5edfab686110cc52Kun Wang
387293abef4f8172cc061d26f9d909c281b4190b514Bruce Bearevoid va_TraceCreateConfig(
388b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VADisplay dpy,
389b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VAProfile profile,
390b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VAEntrypoint entrypoint,
391b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VAConfigAttrib *attrib_list,
392b0fac498ca4863166252f1268fda83394db54153Fei Jiang    int num_attribs,
393a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAConfigID __maybe_unused *config_id /* out */
39421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan)
395b0fac498ca4863166252f1268fda83394db54153Fei Jiang{
396b0fac498ca4863166252f1268fda83394db54153Fei Jiang    int i;
3975b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang    int encode, decode, jpeg;
398f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
39921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
40021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    TRACE_FUNCNAME(idx);
401a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan
402f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tprofile = %d\n", profile);
403f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tentrypoint = %d\n", entrypoint);
404f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tnum_attribs = %d\n", num_attribs);
4057d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    if (attrib_list) {
4067d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan        for (i = 0; i < num_attribs; i++) {
407f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            va_TraceMsg(trace_ctx, "\t\tattrib_list[%d].type = 0x%08x\n", i, attrib_list[i].type);
408f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            va_TraceMsg(trace_ctx, "\t\tattrib_list[%d].value = 0x%08x\n", i, attrib_list[i].value);
4097d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan        }
410b0fac498ca4863166252f1268fda83394db54153Fei Jiang    }
411f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
412b0fac498ca4863166252f1268fda83394db54153Fei Jiang
413f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    trace_ctx->trace_profile = profile;
414f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    trace_ctx->trace_entrypoint = entrypoint;
4155b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang
4165b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang    /* avoid to create so many empty files */
417f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    encode = (trace_ctx->trace_entrypoint == VAEntrypointEncSlice);
418f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    decode = (trace_ctx->trace_entrypoint == VAEntrypointVLD);
419f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    jpeg = (trace_ctx->trace_entrypoint == VAEntrypointEncPicture);
4205b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang    if ((encode && (trace_flag & VA_TRACE_FLAG_SURFACE_ENCODE)) ||
4215b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang        (decode && (trace_flag & VA_TRACE_FLAG_SURFACE_DECODE)) ||
4225b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang        (jpeg && (trace_flag & VA_TRACE_FLAG_SURFACE_JPEG))) {
423f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        FILE *tmp = fopen(trace_ctx->trace_surface_fn, "w");
4245b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang
4255b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang        if (tmp)
426f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            trace_ctx->trace_fp_surface = tmp;
4275b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang        else {
4285b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang            va_errorMessage("Open file %s failed (%s)\n",
429f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun                            trace_ctx->trace_surface_fn,
4305b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang                            strerror(errno));
431f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            trace_ctx->trace_fp_surface = NULL;
4325b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang            trace_flag &= ~(VA_TRACE_FLAG_SURFACE);
4335b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang        }
4345b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang    }
4355b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang
4365b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang    if (encode && (trace_flag & VA_TRACE_FLAG_CODEDBUF)) {
437f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        FILE *tmp = fopen(trace_ctx->trace_codedbuf_fn, "w");
4385b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang
4395b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang        if (tmp)
440f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            trace_ctx->trace_fp_codedbuf = tmp;
4415b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang        else {
4425b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang            va_errorMessage("Open file %s failed (%s)\n",
443f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun                            trace_ctx->trace_codedbuf_fn,
4445b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang                            strerror(errno));
445f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            trace_ctx->trace_fp_codedbuf = NULL;
4465b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang            trace_flag &= ~VA_TRACE_FLAG_CODEDBUF;
4475b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang        }
4485b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang    }
449b0fac498ca4863166252f1268fda83394db54153Fei Jiang}
450b0fac498ca4863166252f1268fda83394db54153Fei Jiang
4517d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuanstatic void va_TraceSurfaceAttributes(
452f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    struct trace_context *trace_ctx,
4537d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    VASurfaceAttrib    *attrib_list,
4547d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    unsigned int       *num_attribs
4557d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan)
4567d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan{
4577d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    int i, num;
4587d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    VASurfaceAttrib *p;
4597d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan
4607d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    if (!attrib_list || !num_attribs)
4617d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan        return;
4627d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan
4637d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    p = attrib_list;
4647d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    num = *num_attribs;
4657d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    if (num > VASurfaceAttribCount)
4667d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan        num = VASurfaceAttribCount;
4677d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan
4687d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    for (i=0; i<num; i++) {
469f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan        int type = p->value.type;
470f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan
471f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\tattrib_list[%i] =\n", i);
4727d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan
473f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\t\ttype = %d\n", p->type);
474f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\t\tflags = %d\n", p->flags);
475f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan        va_TraceMsg(trace_ctx, "\t\tvalue.type = %d\n", type);
476f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan        switch (type) {
477f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan        case VAGenericValueTypeInteger:
478f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            va_TraceMsg(trace_ctx, "\t\tvalue.value.i = 0x%08x\n", p->value.value.i);
479f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan            break;
480f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan        case VAGenericValueTypeFloat:
481f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan            va_TraceMsg(trace_ctx, "\t\tvalue.value.f = %f\n", p->value.value.f);
482f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan            break;
483f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan        case VAGenericValueTypePointer:
484f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            va_TraceMsg(trace_ctx, "\t\tvalue.value.p = %p\n", p->value.value.p);
48510d94aff40fa7cb9349f839613856ea37327268cAustin Yuan            if ((p->type == VASurfaceAttribExternalBufferDescriptor) && p->value.value.p) {
486f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan                VASurfaceAttribExternalBuffers *tmp = (VASurfaceAttribExternalBuffers *) p->value.value.p;
487a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan                unsigned int j;
488f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan
489f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan                va_TraceMsg(trace_ctx, "\t\t--VASurfaceAttribExternalBufferDescriptor\n");
490f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan                va_TraceMsg(trace_ctx, "\t\t  pixel_format=0x%08x\n", tmp->pixel_format);
491f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan                va_TraceMsg(trace_ctx, "\t\t  width=%d\n", tmp->width);
492f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan                va_TraceMsg(trace_ctx, "\t\t  height=%d\n", tmp->height);
493f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan                va_TraceMsg(trace_ctx, "\t\t  data_size=%d\n", tmp->data_size);
494f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan                va_TraceMsg(trace_ctx, "\t\t  num_planes=%d\n", tmp->num_planes);
495f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan                va_TraceMsg(trace_ctx, "\t\t  pitches[4]=%d %d %d %d\n",
496f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan                            tmp->pitches[0], tmp->pitches[1], tmp->pitches[2], tmp->pitches[3]);
497f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan                va_TraceMsg(trace_ctx, "\t\t  offsets[4]=%d %d %d %d\n",
498f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan                            tmp->offsets[0], tmp->offsets[1], tmp->offsets[2], tmp->offsets[3]);
499f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan                va_TraceMsg(trace_ctx, "\t\t  flags=0x%08x\n", tmp->flags);
500f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan                va_TraceMsg(trace_ctx, "\t\t  num_buffers=0x%08x\n", tmp->num_buffers);
501c263d6a794e2a50d0f95919ed9f56003caedd492Austin Yuan                va_TraceMsg(trace_ctx, "\t\t  buffers=%p\n", tmp->buffers);
502f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan                for (j = 0; j < tmp->num_buffers; j++) {
50310d94aff40fa7cb9349f839613856ea37327268cAustin Yuan                    va_TraceMsg(trace_ctx, "\t\t\tbuffers[%d]=%p\n", j, tmp->buffers[j]);
504f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan                }
505f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan            }
506f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan            break;
507f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan        case VAGenericValueTypeFunc:
508f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            va_TraceMsg(trace_ctx, "\t\tvalue.value.fn = %p\n", p->value.value.fn);
509f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan            break;
510f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan        default:
511f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan            break;
512f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan        }
5137d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan
5147d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan        p++;
5157d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    }
5167d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan}
5174b672db6ee89c9846451bbab23cf18e93c4260b2hding
5184b672db6ee89c9846451bbab23cf18e93c4260b2hdingvoid va_TraceCreateSurfaces(
519b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VADisplay dpy,
520b0fac498ca4863166252f1268fda83394db54153Fei Jiang    int width,
521b0fac498ca4863166252f1268fda83394db54153Fei Jiang    int height,
522b0fac498ca4863166252f1268fda83394db54153Fei Jiang    int format,
523b0fac498ca4863166252f1268fda83394db54153Fei Jiang    int num_surfaces,
5244b672db6ee89c9846451bbab23cf18e93c4260b2hding    VASurfaceID *surfaces,    /* out */
5254b672db6ee89c9846451bbab23cf18e93c4260b2hding    VASurfaceAttrib    *attrib_list,
5264b672db6ee89c9846451bbab23cf18e93c4260b2hding    unsigned int        num_attribs
52721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan)
528b0fac498ca4863166252f1268fda83394db54153Fei Jiang{
529b0fac498ca4863166252f1268fda83394db54153Fei Jiang    int i;
530f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
53121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
53221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    TRACE_FUNCNAME(idx);
533b0fac498ca4863166252f1268fda83394db54153Fei Jiang
534f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\twidth = %d\n", width);
535f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\theight = %d\n", height);
536f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tformat = %d\n", format);
537f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tnum_surfaces = %d\n", num_surfaces);
538b0fac498ca4863166252f1268fda83394db54153Fei Jiang
5397d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    if (surfaces) {
5407d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan        for (i = 0; i < num_surfaces; i++)
541f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            va_TraceMsg(trace_ctx, "\t\tsurfaces[%d] = 0x%08x\n", i, surfaces[i]);
5427d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    }
5437d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan
544f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceSurfaceAttributes(trace_ctx, attrib_list, &num_attribs);
54536bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang
546f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
547b0fac498ca4863166252f1268fda83394db54153Fei Jiang}
548b0fac498ca4863166252f1268fda83394db54153Fei Jiang
549b0fac498ca4863166252f1268fda83394db54153Fei Jiang
5507d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuanvoid va_TraceDestroySurfaces(
5517d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    VADisplay dpy,
5527d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    VASurfaceID *surface_list,
5537d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    int num_surfaces
5547d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan)
5557d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan{
5567d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    int i;
557f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
5587d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan
5597d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    TRACE_FUNCNAME(idx);
5607d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan
5617d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    if (surface_list) {
5627d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan        for (i = 0; i < num_surfaces; i++)
563f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            va_TraceMsg(trace_ctx, "\t\tsurfaces[%d] = 0x%08x\n", i, surface_list[i]);
5647d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    }
5657d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan
566f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
5677d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan}
5687d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan
5697d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan
570293abef4f8172cc061d26f9d909c281b4190b514Bruce Bearevoid va_TraceCreateContext(
571b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VADisplay dpy,
572b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VAConfigID config_id,
573b0fac498ca4863166252f1268fda83394db54153Fei Jiang    int picture_width,
574b0fac498ca4863166252f1268fda83394db54153Fei Jiang    int picture_height,
575b0fac498ca4863166252f1268fda83394db54153Fei Jiang    int flag,
576b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VASurfaceID *render_targets,
577b0fac498ca4863166252f1268fda83394db54153Fei Jiang    int num_render_targets,
57836bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang    VAContextID *context        /* out */
57921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan)
580b0fac498ca4863166252f1268fda83394db54153Fei Jiang{
581b0fac498ca4863166252f1268fda83394db54153Fei Jiang    int i;
582f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
583b0fac498ca4863166252f1268fda83394db54153Fei Jiang
58421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    TRACE_FUNCNAME(idx);
5857d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan
586f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tconfig = 0x%08x\n", config_id);
587f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\twidth = %d\n", picture_width);
588f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\theight = %d\n", picture_height);
589f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tflag = 0x%08x\n", flag);
590f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tnum_render_targets = %d\n", num_render_targets);
5917d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    if (render_targets) {
5927d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan        for (i=0; i<num_render_targets; i++)
593f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            va_TraceMsg(trace_ctx, "\t\trender_targets[%d] = 0x%08x\n", i, render_targets[i]);
5947d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    }
5957d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    if (context) {
596f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\tcontext = 0x%08x\n", *context);
597f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        trace_ctx->trace_context = *context;
5987d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    } else
599f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        trace_ctx->trace_context = VA_INVALID_ID;
6007d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan
601f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    trace_ctx->trace_frame_no = 0;
602f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    trace_ctx->trace_slice_no = 0;
60321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
604f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    trace_ctx->trace_frame_width = picture_width;
605f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    trace_ctx->trace_frame_height = picture_height;
606eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan
607f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    if (trace_ctx->trace_surface_width == 0)
608f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        trace_ctx->trace_surface_width = picture_width;
609f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    if (trace_ctx->trace_surface_height == 0)
610f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        trace_ctx->trace_surface_height = picture_height;
611b0fac498ca4863166252f1268fda83394db54153Fei Jiang}
612b0fac498ca4863166252f1268fda83394db54153Fei Jiang
613b0fac498ca4863166252f1268fda83394db54153Fei Jiang
614b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic char * buffer_type_to_string(int type)
615b0fac498ca4863166252f1268fda83394db54153Fei Jiang{
616b0fac498ca4863166252f1268fda83394db54153Fei Jiang    switch (type) {
617b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAPictureParameterBufferType: return "VAPictureParameterBufferType";
618b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAIQMatrixBufferType: return "VAIQMatrixBufferType";
619b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VABitPlaneBufferType: return "VABitPlaneBufferType";
620b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VASliceGroupMapBufferType: return "VASliceGroupMapBufferType";
621b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VASliceParameterBufferType: return "VASliceParameterBufferType";
622b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VASliceDataBufferType: return "VASliceDataBufferType";
623b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAProtectedSliceDataBufferType: return "VAProtectedSliceDataBufferType";
624b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAMacroblockParameterBufferType: return "VAMacroblockParameterBufferType";
625b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAResidualDataBufferType: return "VAResidualDataBufferType";
626b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VADeblockingParameterBufferType: return "VADeblockingParameterBufferType";
627b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAImageBufferType: return "VAImageBufferType";
628409de6acb4473c973ed2532e340831dc582e5e0eAustin Yuan    case VAQMatrixBufferType: return "VAQMatrixBufferType";
629409de6acb4473c973ed2532e340831dc582e5e0eAustin Yuan    case VAHuffmanTableBufferType: return "VAHuffmanTableBufferType";
630409de6acb4473c973ed2532e340831dc582e5e0eAustin Yuan    case VAProbabilityBufferType: return "VAProbabilityBufferType";
631409de6acb4473c973ed2532e340831dc582e5e0eAustin Yuan/* Following are encode buffer types */
632b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAEncCodedBufferType: return "VAEncCodedBufferType";
633b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAEncSequenceParameterBufferType: return "VAEncSequenceParameterBufferType";
634b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAEncPictureParameterBufferType: return "VAEncPictureParameterBufferType";
635b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAEncSliceParameterBufferType: return "VAEncSliceParameterBufferType";
636409de6acb4473c973ed2532e340831dc582e5e0eAustin Yuan    case VAEncPackedHeaderParameterBufferType: return "VAEncPackedHeaderParameterBufferType";
637409de6acb4473c973ed2532e340831dc582e5e0eAustin Yuan    case VAEncPackedHeaderDataBufferType: return "VAEncPackedHeaderDataBufferType";
63821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    case VAEncMiscParameterBufferType: return "VAEncMiscParameterBufferType";
639409de6acb4473c973ed2532e340831dc582e5e0eAustin Yuan    case VAEncMacroblockParameterBufferType: return "VAEncMacroblockParameterBufferType";
640409de6acb4473c973ed2532e340831dc582e5e0eAustin Yuan    case VAProcPipelineParameterBufferType: return "VAProcPipelineParameterBufferType";
641409de6acb4473c973ed2532e340831dc582e5e0eAustin Yuan    case VAProcFilterParameterBufferType: return "VAProcFilterParameterBufferType";
642b0fac498ca4863166252f1268fda83394db54153Fei Jiang    default: return "UnknowBuffer";
643b0fac498ca4863166252f1268fda83394db54153Fei Jiang    }
644b0fac498ca4863166252f1268fda83394db54153Fei Jiang}
645b0fac498ca4863166252f1268fda83394db54153Fei Jiang
6462efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuanvoid va_TraceCreateBuffer (
6472efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan    VADisplay dpy,
648a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,	/* in */
6492efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan    VABufferType type,		/* in */
6502efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan    unsigned int size,		/* in */
6512efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan    unsigned int num_elements,	/* in */
652a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    void __maybe_unused *data,			/* in */
6532efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan    VABufferID *buf_id		/* out */
6542efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan)
6552efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan{
656f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
6572efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan
6582efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan    /* only trace CodedBuffer */
6592efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan    if (type != VAEncCodedBufferType)
6602efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan        return;
6612efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan
6622efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan    TRACE_FUNCNAME(idx);
663f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tbuf_type=%s\n", buffer_type_to_string(type));
6647d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    if (buf_id)
665f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\tbuf_id=0x%x\n", *buf_id);
666f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tsize=%d\n", size);
667f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tnum_elements=%d\n", num_elements);
6682efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan
669f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
6702efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan}
6712efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan
6722efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuanvoid va_TraceDestroyBuffer (
6732efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan    VADisplay dpy,
6742efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan    VABufferID buf_id    /* in */
6752efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan)
6762efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan{
6772efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan    VABufferType type;
6782efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan    unsigned int size;
6792efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan    unsigned int num_elements;
6802efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan
681f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
6822efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan
683f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    vaBufferInfo(dpy, trace_ctx->trace_context, buf_id, &type, &size, &num_elements);
6842efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan
6852efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan    /* only trace CodedBuffer */
6862efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan    if (type != VAEncCodedBufferType)
6872efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan        return;
6882efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan
6892efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan    TRACE_FUNCNAME(idx);
690f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tbuf_type=%s\n", buffer_type_to_string(type));
691f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tbuf_id=0x%x\n", buf_id);
692f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tsize=%d\n", size);
693f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tnum_elements=%d\n", num_elements);
6942efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan
695f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
6962efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan}
6972efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan
6982efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan
69921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanvoid va_TraceMapBuffer (
70021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    VADisplay dpy,
70136bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang    VABufferID buf_id,    /* in */
70236bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang    void **pbuf           /* out */
70321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan)
70421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan{
70521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    VABufferType type;
70621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    unsigned int size;
70721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    unsigned int num_elements;
70821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
70921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    VACodedBufferSegment *buf_list;
71021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    int i = 0;
71121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
712f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
71321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
714f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    vaBufferInfo(dpy, trace_ctx->trace_context, buf_id, &type, &size, &num_elements);
71521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
71621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    /* only trace CodedBuffer */
71721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    if (type != VAEncCodedBufferType)
71821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        return;
71935f195a578d0bec4a0aa84d6162eda7e3a4a4db9Austin Yuan
72035f195a578d0bec4a0aa84d6162eda7e3a4a4db9Austin Yuan    TRACE_FUNCNAME(idx);
721f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tbuf_id=0x%x\n", buf_id);
722f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tbuf_type=%s\n", buffer_type_to_string(type));
7237d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    if ((pbuf == NULL) || (*pbuf == NULL))
7247d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan        return;
7257d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan
72621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    buf_list = (VACodedBufferSegment *)(*pbuf);
72721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    while (buf_list != NULL) {
728f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\tCodedbuf[%d] =\n", i++);
72921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
730f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\t   size = %d\n", buf_list->size);
731f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\t   bit_offset = %d\n", buf_list->bit_offset);
732f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\t   status = 0x%08x\n", buf_list->status);
733f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\t   reserved = 0x%08x\n", buf_list->reserved);
734f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\t   buf = 0x%08x\n", buf_list->buf);
73521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
736f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan        if (trace_ctx->trace_fp_codedbuf) {
737f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan            va_TraceMsg(trace_ctx, "\tDump the content to file\n");
738f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan            fwrite(buf_list->buf, buf_list->size, 1, trace_ctx->trace_fp_codedbuf);
739f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan        }
740f1eb19f7d27218c36318f685dadc6d651595f6beAustin Yuan
74121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        buf_list = buf_list->next;
74221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    }
743f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
74421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan}
745b0fac498ca4863166252f1268fda83394db54153Fei Jiang
74621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanstatic void va_TraceVABuffers(
747b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VADisplay dpy,
748b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VAContextID context,
749b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VABufferID buffer,
750b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VABufferType type,
751b0fac498ca4863166252f1268fda83394db54153Fei Jiang    unsigned int size,
752b0fac498ca4863166252f1268fda83394db54153Fei Jiang    unsigned int num_elements,
753b0fac498ca4863166252f1268fda83394db54153Fei Jiang    void *pbuf
75421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan)
755b0fac498ca4863166252f1268fda83394db54153Fei Jiang{
75621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    unsigned int i;
757b0fac498ca4863166252f1268fda83394db54153Fei Jiang    unsigned char *p = pbuf;
7580f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    unsigned int dump_size = 64;
759f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
760f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
761a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan
762a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    va_TraceMsg(trace_ctx, "\t    context = %d, buffer = %d, type = %d, size = %d, num_elements = %d\n",
763a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan                context, buffer, type, size, num_elements);
764f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "--%s\n",  buffer_type_to_string(type));
765b0fac498ca4863166252f1268fda83394db54153Fei Jiang
7660f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    if (dump_size>size)
7670f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan        dump_size = size;
7680f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan
7690f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    if (trace_flag & VA_TRACE_FLAG_BUFDATA)
7700f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan        dump_size = size;
7710f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan
7720f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    if (trace_ctx->trace_fp_log) {
7730f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan        for (i=0; i<dump_size; i++) {
774f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            unsigned char value =  p[i];
77521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
776f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            if (i==0)
777f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun                fprintf(trace_ctx->trace_fp_log, "\t\t0x%04x:", i);
778f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            else if ((i%16) == 0)
779f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun                fprintf(trace_ctx->trace_fp_log, "\n\t\t0x%04x:", i);
78021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
781f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            fprintf(trace_ctx->trace_fp_log, " %02x", value);
782f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        }
783f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        fprintf(trace_ctx->trace_fp_log, "\n");
784b0fac498ca4863166252f1268fda83394db54153Fei Jiang    }
785f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
786f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
78721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
78821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    return;
789b0fac498ca4863166252f1268fda83394db54153Fei Jiang}
790b0fac498ca4863166252f1268fda83394db54153Fei Jiang
791b0fac498ca4863166252f1268fda83394db54153Fei Jiang
792b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic void va_TraceVAPictureParameterBufferMPEG2(
793b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VADisplay dpy,
794a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
795a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferID __maybe_unused buffer,
796a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferType __maybe_unused type,
797a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused size,
798a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused num_elements,
799b0fac498ca4863166252f1268fda83394db54153Fei Jiang    void *data)
800b0fac498ca4863166252f1268fda83394db54153Fei Jiang{
80172b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang    VAPictureParameterBufferMPEG2 *p=(VAPictureParameterBufferMPEG2 *)data;
802f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
803f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
804f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"VAPictureParameterBufferMPEG2\n");
805f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\thorizontal size= %d\n", p->horizontal_size);
806f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tvertical size= %d\n", p->vertical_size);
807f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tforward reference picture= %d\n", p->forward_reference_picture);
808f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tbackward reference picture= %d\n", p->backward_reference_picture);
809f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tpicture coding type= %d\n", p->picture_coding_type);
810f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tf mode= %d\n", p->f_code);
811f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
812f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tpicture coding extension = %d\n", p->picture_coding_extension.value);
813f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tintra_dc_precision= %d\n", p->picture_coding_extension.bits.intra_dc_precision);
814f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tpicture_structure= %d\n", p->picture_coding_extension.bits.picture_structure);
815f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\ttop_field_first= %d\n", p->picture_coding_extension.bits.top_field_first);
816f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tframe_pred_frame_dct= %d\n", p->picture_coding_extension.bits.frame_pred_frame_dct);
817f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tconcealment_motion_vectors= %d\n", p->picture_coding_extension.bits.concealment_motion_vectors);
818f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tq_scale_type= %d\n", p->picture_coding_extension.bits.q_scale_type);
819f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tintra_vlc_format= %d\n", p->picture_coding_extension.bits.intra_vlc_format);
820f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\talternate_scan= %d\n", p->picture_coding_extension.bits.alternate_scan);
821f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\trepeat_first_field= %d\n", p->picture_coding_extension.bits.repeat_first_field);
822f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tprogressive_frame= %d\n", p->picture_coding_extension.bits.progressive_frame);
823f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tis_first_field= %d\n", p->picture_coding_extension.bits.is_first_field);
824f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
82572b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang
826b0fac498ca4863166252f1268fda83394db54153Fei Jiang    return;
827b0fac498ca4863166252f1268fda83394db54153Fei Jiang}
828b0fac498ca4863166252f1268fda83394db54153Fei Jiang
829b0fac498ca4863166252f1268fda83394db54153Fei Jiang
830b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic void va_TraceVAIQMatrixBufferMPEG2(
831b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VADisplay dpy,
832a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
833a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferID __maybe_unused buffer,
834a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferType __maybe_unused type,
835a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused size,
836a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused num_elements,
837b0fac498ca4863166252f1268fda83394db54153Fei Jiang    void *data)
838b0fac498ca4863166252f1268fda83394db54153Fei Jiang{
83972b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang    VAIQMatrixBufferMPEG2 *p=(VAIQMatrixBufferMPEG2 *)data;
840f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
84172b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang
842f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"VAIQMatrixBufferMPEG2\n");
843f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tload_intra_quantiser_matrix = %d\n", p->load_intra_quantiser_matrix);
844f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tload_non_intra_quantiser_matrix = %d\n", p->load_non_intra_quantiser_matrix);
845f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tload_chroma_intra_quantiser_matrix = %d\n", p->load_chroma_intra_quantiser_matrix);
846f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tload_chroma_non_intra_quantiser_matrix = %d\n", p->load_chroma_non_intra_quantiser_matrix);
847f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tintra_quantiser_matrix = %d\n", p->intra_quantiser_matrix);
848f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tnon_intra_quantiser_matrix = %d\n", p->non_intra_quantiser_matrix);
849f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tchroma_intra_quantiser_matrix = %d\n", p->chroma_intra_quantiser_matrix);
850f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tchroma_non_intra_quantiser_matrix = %d\n", p->chroma_non_intra_quantiser_matrix);
851f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
85272b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang
853b0fac498ca4863166252f1268fda83394db54153Fei Jiang    return;
854b0fac498ca4863166252f1268fda83394db54153Fei Jiang}
855b0fac498ca4863166252f1268fda83394db54153Fei Jiang
856b0fac498ca4863166252f1268fda83394db54153Fei Jiang
857b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic void va_TraceVASliceParameterBufferMPEG2(
858b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VADisplay dpy,
859a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
860a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferID __maybe_unused buffer,
861a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferType __maybe_unused type,
862a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused size,
863a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused num_elements,
864b0fac498ca4863166252f1268fda83394db54153Fei Jiang    void *data)
865b0fac498ca4863166252f1268fda83394db54153Fei Jiang{
86672b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang    VASliceParameterBufferMPEG2 *p=(VASliceParameterBufferMPEG2 *)data;
86772b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang
868f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
86921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
870f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    trace_ctx->trace_slice_no++;
87121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
872f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    trace_ctx->trace_slice_size = p->slice_data_size;
87372b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang
874f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"VASliceParameterBufferMPEG2\n");
875f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tslice_data_size = %d\n", p->slice_data_size);
876f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tslice_data_offset = %d\n", p->slice_data_offset);
877f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tslice_data_flag = %d\n", p->slice_data_flag);
878f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tmacroblock_offset = %d\n", p->macroblock_offset);
879f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tslice_horizontal_position = %d\n", p->slice_horizontal_position);
880f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tslice_vertical_position = %d\n", p->slice_vertical_position);
881f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tquantiser_scale_code = %d\n", p->quantiser_scale_code);
882f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tintra_slice_flag = %d\n", p->intra_slice_flag);
883f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
88472b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang
885b0fac498ca4863166252f1268fda83394db54153Fei Jiang    return;
886b0fac498ca4863166252f1268fda83394db54153Fei Jiang}
887b0fac498ca4863166252f1268fda83394db54153Fei Jiang
8889992891b62398a80bd0867f8d167c0faa49861fdCheng Yaostatic void va_TraceVAPictureParameterBufferJPEG(
8899992891b62398a80bd0867f8d167c0faa49861fdCheng Yao    VADisplay dpy,
890a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
891a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferID __maybe_unused buffer,
892a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferType __maybe_unused type,
893a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused size,
894a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused num_elements,
8959992891b62398a80bd0867f8d167c0faa49861fdCheng Yao    void *data)
8969992891b62398a80bd0867f8d167c0faa49861fdCheng Yao{
8979992891b62398a80bd0867f8d167c0faa49861fdCheng Yao    int i;
8989992891b62398a80bd0867f8d167c0faa49861fdCheng Yao    VAPictureParameterBufferJPEGBaseline *p=(VAPictureParameterBufferJPEGBaseline *)data;
899f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
9009992891b62398a80bd0867f8d167c0faa49861fdCheng Yao
901f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"*VAPictureParameterBufferJPEG\n");
902f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tpicture_width = %u\n", p->picture_width);
903f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tpicture_height = %u\n", p->picture_height);
904f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tcomponents = \n");
9059992891b62398a80bd0867f8d167c0faa49861fdCheng Yao    for (i = 0; i < p->num_components && i < 255; ++i) {
906f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx,"\t\t[%d] component_id = %u\n", i, p->components[i].component_id);
907f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx,"\t\t[%d] h_sampling_factor = %u\n", i, p->components[i].h_sampling_factor);
908f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx,"\t\t[%d] v_sampling_factor = %u\n", i, p->components[i].v_sampling_factor);
909f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx,"\t\t[%d] quantiser_table_selector = %u\n", i, p->components[i].quantiser_table_selector);
9109992891b62398a80bd0867f8d167c0faa49861fdCheng Yao    }
9119992891b62398a80bd0867f8d167c0faa49861fdCheng Yao}
9129992891b62398a80bd0867f8d167c0faa49861fdCheng Yao
9139992891b62398a80bd0867f8d167c0faa49861fdCheng Yaostatic void va_TraceVAIQMatrixBufferJPEG(
9149992891b62398a80bd0867f8d167c0faa49861fdCheng Yao    VADisplay dpy,
915a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
916a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferID __maybe_unused buffer,
917a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferType __maybe_unused type,
918a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused size,
919a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused num_elements,
9209992891b62398a80bd0867f8d167c0faa49861fdCheng Yao    void *data)
9219992891b62398a80bd0867f8d167c0faa49861fdCheng Yao{
9229992891b62398a80bd0867f8d167c0faa49861fdCheng Yao    int i, j;
9239992891b62398a80bd0867f8d167c0faa49861fdCheng Yao    static char tmp[1024];
9249992891b62398a80bd0867f8d167c0faa49861fdCheng Yao    VAIQMatrixBufferJPEGBaseline *p=(VAIQMatrixBufferJPEGBaseline *)data;
925f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
926a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan
927f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"*VAIQMatrixParameterBufferJPEG\n");
928f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tload_quantiser_table =\n");
9299992891b62398a80bd0867f8d167c0faa49861fdCheng Yao    for (i = 0; i < 4; ++i) {
930f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx,"\t\t[%d] = %u\n", i, p->load_quantiser_table[i]);
9319992891b62398a80bd0867f8d167c0faa49861fdCheng Yao    }
932f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tquantiser_table =\n");
9339992891b62398a80bd0867f8d167c0faa49861fdCheng Yao    for (i = 0; i < 4; ++i) {
9349992891b62398a80bd0867f8d167c0faa49861fdCheng Yao        memset(tmp, 0, sizeof tmp);
9359992891b62398a80bd0867f8d167c0faa49861fdCheng Yao        for (j = 0; j < 64; ++j) {
9369992891b62398a80bd0867f8d167c0faa49861fdCheng Yao            sprintf(tmp + strlen(tmp), "%u ", p->quantiser_table[i][j]);
9379992891b62398a80bd0867f8d167c0faa49861fdCheng Yao        }
938f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx,"\t\t[%d] = %s\n", i, tmp);
9399992891b62398a80bd0867f8d167c0faa49861fdCheng Yao    }
9409992891b62398a80bd0867f8d167c0faa49861fdCheng Yao}
9419992891b62398a80bd0867f8d167c0faa49861fdCheng Yao
9429992891b62398a80bd0867f8d167c0faa49861fdCheng Yaostatic void va_TraceVASliceParameterBufferJPEG(
9439992891b62398a80bd0867f8d167c0faa49861fdCheng Yao    VADisplay dpy,
944a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
945a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferID __maybe_unused buffer,
946a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferType __maybe_unused type,
947a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused size,
948a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused num_elements,
9499992891b62398a80bd0867f8d167c0faa49861fdCheng Yao    void *data)
9509992891b62398a80bd0867f8d167c0faa49861fdCheng Yao{
9519992891b62398a80bd0867f8d167c0faa49861fdCheng Yao    int i;
9529992891b62398a80bd0867f8d167c0faa49861fdCheng Yao    VASliceParameterBufferJPEGBaseline *p=(VASliceParameterBufferJPEGBaseline *)data;
953f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
954a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan
955f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"*VASliceParameterBufferJPEG\n");
956f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tslice_data_size = %u\n", p->slice_data_size);
957f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tslice_data_offset = %u\n", p->slice_data_offset);
958f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tslice_data_flag = %u\n", p->slice_data_flag);
959f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tslice_horizontal_position = %u\n", p->slice_horizontal_position);
960f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tslice_vertical_position = %u\n", p->slice_vertical_position);
961f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tcomponents = \n");
9629992891b62398a80bd0867f8d167c0faa49861fdCheng Yao    for (i = 0; i < p->num_components && i < 4; ++i) {
963f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx,"\t\t[%d] component_selector = %u\n", i, p->components[i].component_selector);
964f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx,"\t\t[%d] dc_table_selector = %u\n", i, p->components[i].dc_table_selector);
965f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx,"\t\t[%d] ac_table_selector = %u\n", i, p->components[i].ac_table_selector);
9669992891b62398a80bd0867f8d167c0faa49861fdCheng Yao    }
967f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\trestart_interval = %u\n", p->restart_interval);
968f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tnum_mcus = %u\n", p->num_mcus);
9699992891b62398a80bd0867f8d167c0faa49861fdCheng Yao}
9709992891b62398a80bd0867f8d167c0faa49861fdCheng Yao
9719992891b62398a80bd0867f8d167c0faa49861fdCheng Yaostatic void va_TraceVAHuffmanTableBufferJPEG(
9729992891b62398a80bd0867f8d167c0faa49861fdCheng Yao    VADisplay dpy,
973a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
974a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferID __maybe_unused buffer,
975a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferType __maybe_unused type,
976a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused size,
977a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused num_elements,
9789992891b62398a80bd0867f8d167c0faa49861fdCheng Yao    void *data)
9799992891b62398a80bd0867f8d167c0faa49861fdCheng Yao{
9809992891b62398a80bd0867f8d167c0faa49861fdCheng Yao    int i, j;
9819992891b62398a80bd0867f8d167c0faa49861fdCheng Yao    static char tmp[1024];
9829992891b62398a80bd0867f8d167c0faa49861fdCheng Yao    VAHuffmanTableBufferJPEGBaseline *p=(VAHuffmanTableBufferJPEGBaseline *)data;
983f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
984f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"*VAHuffmanTableBufferJPEG\n");
9859992891b62398a80bd0867f8d167c0faa49861fdCheng Yao
9869992891b62398a80bd0867f8d167c0faa49861fdCheng Yao    for (i = 0; i < 2; ++i) {
987f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx,"\tload_huffman_table[%d] =%u\n", i, p->load_huffman_table[0]);
988f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx,"\thuffman_table[%d] =\n", i);
9899992891b62398a80bd0867f8d167c0faa49861fdCheng Yao        memset(tmp, 0, sizeof tmp);
9909992891b62398a80bd0867f8d167c0faa49861fdCheng Yao        for (j = 0; j < 16; ++j) {
9919992891b62398a80bd0867f8d167c0faa49861fdCheng Yao            sprintf(tmp + strlen(tmp), "%u ", p->huffman_table[i].num_dc_codes[j]);
9929992891b62398a80bd0867f8d167c0faa49861fdCheng Yao        }
993f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx,"\t\tnum_dc_codes =%s\n", tmp);
9949992891b62398a80bd0867f8d167c0faa49861fdCheng Yao        memset(tmp, 0, sizeof tmp);
9959992891b62398a80bd0867f8d167c0faa49861fdCheng Yao        for (j = 0; j < 12; ++j) {
9969992891b62398a80bd0867f8d167c0faa49861fdCheng Yao            sprintf(tmp + strlen(tmp), "%u ", p->huffman_table[i].dc_values[j]);
9979992891b62398a80bd0867f8d167c0faa49861fdCheng Yao        }
998f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx,"\t\tdc_values =%s\n", tmp);
9999992891b62398a80bd0867f8d167c0faa49861fdCheng Yao        memset(tmp, 0, sizeof tmp);
10009992891b62398a80bd0867f8d167c0faa49861fdCheng Yao        for (j = 0; j < 16; ++j) {
10019992891b62398a80bd0867f8d167c0faa49861fdCheng Yao            sprintf(tmp + strlen(tmp), "%u ", p->huffman_table[i].num_ac_codes[j]);
10029992891b62398a80bd0867f8d167c0faa49861fdCheng Yao        }
100390f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN        va_TraceMsg(trace_ctx,"\t\tnum_ac_codes =%s\n", tmp);
10049992891b62398a80bd0867f8d167c0faa49861fdCheng Yao        memset(tmp, 0, sizeof tmp);
10059992891b62398a80bd0867f8d167c0faa49861fdCheng Yao        for (j = 0; j < 162; ++j) {
10069992891b62398a80bd0867f8d167c0faa49861fdCheng Yao            sprintf(tmp + strlen(tmp), "%u ", p->huffman_table[i].ac_values[j]);
10079992891b62398a80bd0867f8d167c0faa49861fdCheng Yao        }
100890f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN        va_TraceMsg(trace_ctx,"\t\tac_values =%s\n", tmp);
10099992891b62398a80bd0867f8d167c0faa49861fdCheng Yao        memset(tmp, 0, sizeof tmp);
10109992891b62398a80bd0867f8d167c0faa49861fdCheng Yao        for (j = 0; j < 2; ++j) {
10119992891b62398a80bd0867f8d167c0faa49861fdCheng Yao            sprintf(tmp + strlen(tmp), "%u ", p->huffman_table[i].pad[j]);
10129992891b62398a80bd0867f8d167c0faa49861fdCheng Yao        }
101390f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN        va_TraceMsg(trace_ctx,"\t\tpad =%s\n", tmp);
10149992891b62398a80bd0867f8d167c0faa49861fdCheng Yao    }
10159992891b62398a80bd0867f8d167c0faa49861fdCheng Yao}
1016b0fac498ca4863166252f1268fda83394db54153Fei Jiang
1017b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic void va_TraceVAPictureParameterBufferMPEG4(
1018b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VADisplay dpy,
1019a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
1020a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferID __maybe_unused buffer,
1021a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferType __maybe_unused type,
1022a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused size,
1023a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused num_elements,
1024b0fac498ca4863166252f1268fda83394db54153Fei Jiang    void *data)
1025b0fac498ca4863166252f1268fda83394db54153Fei Jiang{
102672b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang    int i;
102772b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang    VAPictureParameterBufferMPEG4 *p=(VAPictureParameterBufferMPEG4 *)data;
1028b0fac498ca4863166252f1268fda83394db54153Fei Jiang
1029f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
1030f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
1031f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"*VAPictureParameterBufferMPEG4\n");
1032f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tvop_width = %d\n", p->vop_width);
1033f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tvop_height = %d\n", p->vop_height);
1034f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tforward_reference_picture = %d\n", p->forward_reference_picture);
1035f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tbackward_reference_picture = %d\n", p->backward_reference_picture);
1036f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tvol_fields value = %d\n", p->vol_fields.value);
1037f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tshort_video_header= %d\n", p->vol_fields.bits.short_video_header);
1038f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tchroma_format= %d\n", p->vol_fields.bits.chroma_format);
1039f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tinterlaced= %d\n", p->vol_fields.bits.interlaced);
1040f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tobmc_disable= %d\n", p->vol_fields.bits.obmc_disable);
1041f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tsprite_enable= %d\n", p->vol_fields.bits.sprite_enable);
1042f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tsprite_warping_accuracy= %d\n", p->vol_fields.bits.sprite_warping_accuracy);
1043f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tquant_type= %d\n", p->vol_fields.bits.quant_type);
1044f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tquarter_sample= %d\n", p->vol_fields.bits.quarter_sample);
1045f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tdata_partitioned= %d\n", p->vol_fields.bits.data_partitioned);
1046f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\treversible_vlc= %d\n", p->vol_fields.bits.reversible_vlc);
1047f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tresync_marker_disable= %d\n", p->vol_fields.bits.resync_marker_disable);
1048f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tno_of_sprite_warping_points = %d\n", p->no_of_sprite_warping_points);
1049f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tsprite_trajectory_du =");
105072b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang    for(i=0;i<3;i++)
1051f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx,"\t%d", p->sprite_trajectory_du[i]);
105272b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang
1053f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\n");
1054f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tsprite_trajectory_dv =");
105572b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang    for(i=0;i<3;i++)
1056f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx,"\t%d", p->sprite_trajectory_dv[i]);
1057f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\n");
1058f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tvop_fields value = %d\n", p->vop_fields.value);
1059f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tvop_coding_type= %d\n", p->vop_fields.bits.vop_coding_type);
1060f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tbackward_reference_vop_coding_type= %d\n", p->vop_fields.bits.backward_reference_vop_coding_type);
1061f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tvop_rounding_type= %d\n", p->vop_fields.bits.vop_rounding_type);
1062f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tintra_dc_vlc_thr= %d\n", p->vop_fields.bits.intra_dc_vlc_thr);
1063f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\ttop_field_first= %d\n", p->vop_fields.bits.top_field_first);
1064f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\talternate_vertical_scan_flag= %d\n", p->vop_fields.bits.alternate_vertical_scan_flag);
1065f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tvop_fcode_forward = %d\n", p->vop_fcode_forward);
1066f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tvop_fcode_backward = %d\n", p->vop_fcode_backward);
1067f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tnum_gobs_in_vop = %d\n", p->num_gobs_in_vop);
1068f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tnum_macroblocks_in_gob = %d\n", p->num_macroblocks_in_gob);
1069f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tTRB = %d\n", p->TRB);
1070f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tTRD = %d\n", p->TRD);
1071f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
107272b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang
1073b0fac498ca4863166252f1268fda83394db54153Fei Jiang    return;
1074b0fac498ca4863166252f1268fda83394db54153Fei Jiang}
1075b0fac498ca4863166252f1268fda83394db54153Fei Jiang
1076b0fac498ca4863166252f1268fda83394db54153Fei Jiang
1077b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic void va_TraceVAIQMatrixBufferMPEG4(
1078b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VADisplay dpy,
1079a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
1080a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferID __maybe_unused buffer,
1081a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferType __maybe_unused type,
1082a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused size,
1083a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused num_elements,
1084b0fac498ca4863166252f1268fda83394db54153Fei Jiang    void *data)
1085b0fac498ca4863166252f1268fda83394db54153Fei Jiang{
108672b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang    int i;
108772b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang    VAIQMatrixBufferMPEG4 *p=(VAIQMatrixBufferMPEG4 *)data;
1088f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
108921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
1090f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"VAIQMatrixBufferMPEG4\n");
109172b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang
1092f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tload_intra_quant_mat = %d\n", p->load_intra_quant_mat);
1093f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tload_non_intra_quant_mat = %d\n", p->load_non_intra_quant_mat);
1094f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tintra_quant_mat =\n");
109572b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang    for(i=0;i<64;i++)
1096f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx,"\t\t%d\n", p->intra_quant_mat[i]);
109772b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang
1098f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tnon_intra_quant_mat =\n");
109972b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang    for(i=0;i<64;i++)
1100f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx,"\t\t%d\n", p->non_intra_quant_mat[i]);
1101f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
110272b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang
1103b0fac498ca4863166252f1268fda83394db54153Fei Jiang    return;
1104b0fac498ca4863166252f1268fda83394db54153Fei Jiang}
1105b0fac498ca4863166252f1268fda83394db54153Fei Jiang
110650ce1dbe8a3402d56c94238710964507db7d99e1Kun Wangstatic void va_TraceVAEncSequenceParameterBufferMPEG4(
110750ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang    VADisplay dpy,
1108a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
1109a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferID __maybe_unused buffer,
1110a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferType __maybe_unused type,
1111a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused size,
1112a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused num_elements,
111350ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang    void *data)
111450ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang{
111550ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang    VAEncSequenceParameterBufferMPEG4 *p = (VAEncSequenceParameterBufferMPEG4 *)data;
1116f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
1117a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan
1118f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\t--VAEncSequenceParameterBufferMPEG4\n");
1119f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tprofile_and_level_indication = %d\n", p->profile_and_level_indication);
1120f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tintra_period = %d\n", p->intra_period);
1121f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tvideo_object_layer_width = %d\n", p->video_object_layer_width);
1122f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tvideo_object_layer_height = %d\n", p->video_object_layer_height);
1123f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tvop_time_increment_resolution = %d\n", p->vop_time_increment_resolution);
1124f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tfixed_vop_rate = %d\n", p->fixed_vop_rate);
1125f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tfixed_vop_time_increment = %d\n", p->fixed_vop_time_increment);
1126f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tbits_per_second = %d\n", p->bits_per_second);
1127f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tframe_rate = %d\n", p->frame_rate);
1128f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tinitial_qp = %d\n", p->initial_qp);
1129f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tmin_qp = %d\n", p->min_qp);
1130f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
113150ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang
113250ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang    return;
113350ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang}
113450ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang
113550ce1dbe8a3402d56c94238710964507db7d99e1Kun Wangstatic void va_TraceVAEncPictureParameterBufferMPEG4(
113650ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang    VADisplay dpy,
1137a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
1138a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferID __maybe_unused buffer,
1139a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferType __maybe_unused type,
1140a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused size,
1141a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused num_elements,
114250ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang    void *data)
114350ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang{
114450ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang    VAEncPictureParameterBufferMPEG4 *p = (VAEncPictureParameterBufferMPEG4 *)data;
1145f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
1146a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan
1147f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\t--VAEncPictureParameterBufferMPEG4\n");
1148f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\treference_picture = 0x%08x\n", p->reference_picture);
1149f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\treconstructed_picture = 0x%08x\n", p->reconstructed_picture);
1150f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tcoded_buf = 0x%08x\n", p->coded_buf);
1151f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpicture_width = %d\n", p->picture_width);
1152f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpicture_height = %d\n", p->picture_height);
1153f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tmodulo_time_base = %d\n", p->modulo_time_base);
1154f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tvop_time_increment = %d\n", p->vop_time_increment);
1155f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpicture_type = %d\n", p->picture_type);
1156f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
115750ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang
115850ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang    return;
115950ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang}
116050ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang
1161b0fac498ca4863166252f1268fda83394db54153Fei Jiang
1162b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic void va_TraceVASliceParameterBufferMPEG4(
1163b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VADisplay dpy,
1164a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
1165a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferID __maybe_unused buffer,
1166a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferType __maybe_unused type,
1167a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused size,
1168a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused num_elements,
1169b0fac498ca4863166252f1268fda83394db54153Fei Jiang    void *data)
1170b0fac498ca4863166252f1268fda83394db54153Fei Jiang{
117172b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang    VASliceParameterBufferMPEG4 *p=(VASliceParameterBufferMPEG4 *)data;
117272b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang
1173f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
117421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
1175f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    trace_ctx->trace_slice_no++;
117621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
1177f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    trace_ctx->trace_slice_size = p->slice_data_size;
117872b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang
1179f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"VASliceParameterBufferMPEG4\n");
118072b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang
1181f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tslice_data_size = %d\n", p->slice_data_size);
1182f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tslice_data_offset = %d\n", p->slice_data_offset);
1183f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tslice_data_flag = %d\n", p->slice_data_flag);
1184f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tmacroblock_offset = %d\n", p->macroblock_offset);
1185f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tmacroblock_number = %d\n", p->macroblock_number);
1186f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx,"\tquant_scale = %d\n", p->quant_scale);
1187f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
118872b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang
1189b0fac498ca4863166252f1268fda83394db54153Fei Jiang    return;
1190b0fac498ca4863166252f1268fda83394db54153Fei Jiang}
1191b0fac498ca4863166252f1268fda83394db54153Fei Jiang
1192b0fac498ca4863166252f1268fda83394db54153Fei Jiang
119336bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sangstatic inline void va_TraceFlagIfNotZero(
1194f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    struct trace_context *trace_ctx,
119536bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang    const char *name,   /* in */
119636bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang    unsigned int flag   /* in */
119736bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang)
119836bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang{
119936bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang    if (flag != 0) {
1200f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "%s = %x\n", name, flag);
120136bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang    }
120236bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang}
120336bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang
120436bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang
1205b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic void va_TraceVAPictureParameterBufferH264(
1206b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VADisplay dpy,
1207a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
1208a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferID __maybe_unused buffer,
1209a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferType __maybe_unused type,
1210a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused size,
1211a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused num_elements,
1212b0fac498ca4863166252f1268fda83394db54153Fei Jiang    void *data)
1213b0fac498ca4863166252f1268fda83394db54153Fei Jiang{
1214b0fac498ca4863166252f1268fda83394db54153Fei Jiang    int i;
1215b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VAPictureParameterBufferH264 *p = (VAPictureParameterBufferH264*)data;
121672b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang
1217f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
1218b0fac498ca4863166252f1268fda83394db54153Fei Jiang
1219f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\t--VAPictureParameterBufferH264\n");
1220b0fac498ca4863166252f1268fda83394db54153Fei Jiang
1221f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tCurrPic.picture_id = 0x%08x\n", p->CurrPic.picture_id);
1222f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tCurrPic.frame_idx = %d\n", p->CurrPic.frame_idx);
1223f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tCurrPic.flags = %d\n", p->CurrPic.flags);
1224f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tCurrPic.TopFieldOrderCnt = %d\n", p->CurrPic.TopFieldOrderCnt);
1225f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tCurrPic.BottomFieldOrderCnt = %d\n", p->CurrPic.BottomFieldOrderCnt);
1226b0fac498ca4863166252f1268fda83394db54153Fei Jiang
1227f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tReferenceFrames (TopFieldOrderCnt-BottomFieldOrderCnt-picture_id-frame_idx-flags:\n");
1228b0fac498ca4863166252f1268fda83394db54153Fei Jiang    for (i = 0; i < 16; i++)
1229b0fac498ca4863166252f1268fda83394db54153Fei Jiang    {
12306044ab9a375eb73b08f45d87966652f98f918668Austin Yuan        if ((p->ReferenceFrames[i].picture_id != VA_INVALID_SURFACE) &&
12316044ab9a375eb73b08f45d87966652f98f918668Austin Yuan            ((p->ReferenceFrames[i].flags & VA_PICTURE_H264_INVALID) == 0)) {
1232f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            va_TraceMsg(trace_ctx, "\t\t%08d-%08d-0x%08x-%08d-0x%08x\n",
123321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan                        p->ReferenceFrames[i].TopFieldOrderCnt,
123421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan                        p->ReferenceFrames[i].BottomFieldOrderCnt,
123521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan                        p->ReferenceFrames[i].picture_id,
12366044ab9a375eb73b08f45d87966652f98f918668Austin Yuan                        p->ReferenceFrames[i].frame_idx,
12376044ab9a375eb73b08f45d87966652f98f918668Austin Yuan                        p->ReferenceFrames[i].flags);
123821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        } else
1239f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            break;
1240f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    }
1241f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpicture_width_in_mbs_minus1 = %d\n", p->picture_width_in_mbs_minus1);
1242f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpicture_height_in_mbs_minus1 = %d\n", p->picture_height_in_mbs_minus1);
1243f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tbit_depth_luma_minus8 = %d\n", p->bit_depth_luma_minus8);
1244f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tbit_depth_chroma_minus8 = %d\n", p->bit_depth_chroma_minus8);
1245f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tnum_ref_frames = %d\n", p->num_ref_frames);
1246f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tseq fields = %d\n", p->seq_fields.value);
1247f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tchroma_format_idc = %d\n", p->seq_fields.bits.chroma_format_idc);
1248f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tresidual_colour_transform_flag = %d\n", p->seq_fields.bits.residual_colour_transform_flag);
1249f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tframe_mbs_only_flag = %d\n", p->seq_fields.bits.frame_mbs_only_flag);
1250f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tmb_adaptive_frame_field_flag = %d\n", p->seq_fields.bits.mb_adaptive_frame_field_flag);
1251f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tdirect_8x8_inference_flag = %d\n", p->seq_fields.bits.direct_8x8_inference_flag);
1252f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tMinLumaBiPredSize8x8 = %d\n", p->seq_fields.bits.MinLumaBiPredSize8x8);
1253f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tnum_slice_groups_minus1 = %d\n", p->num_slice_groups_minus1);
1254f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tslice_group_map_type = %d\n", p->slice_group_map_type);
1255f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tslice_group_change_rate_minus1 = %d\n", p->slice_group_change_rate_minus1);
1256f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpic_init_qp_minus26 = %d\n", p->pic_init_qp_minus26);
1257f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpic_init_qs_minus26 = %d\n", p->pic_init_qs_minus26);
1258f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tchroma_qp_index_offset = %d\n", p->chroma_qp_index_offset);
1259f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tsecond_chroma_qp_index_offset = %d\n", p->second_chroma_qp_index_offset);
1260f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpic_fields = 0x%03x\n", p->pic_fields.value);
1261f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceFlagIfNotZero(trace_ctx, "\t\tentropy_coding_mode_flag", p->pic_fields.bits.entropy_coding_mode_flag);
1262f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceFlagIfNotZero(trace_ctx, "\t\tweighted_pred_flag", p->pic_fields.bits.weighted_pred_flag);
1263f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceFlagIfNotZero(trace_ctx, "\t\tweighted_bipred_idc", p->pic_fields.bits.weighted_bipred_idc);
1264f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceFlagIfNotZero(trace_ctx, "\t\ttransform_8x8_mode_flag", p->pic_fields.bits.transform_8x8_mode_flag);
1265f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceFlagIfNotZero(trace_ctx, "\t\tfield_pic_flag", p->pic_fields.bits.field_pic_flag);
1266f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceFlagIfNotZero(trace_ctx, "\t\tconstrained_intra_pred_flag", p->pic_fields.bits.constrained_intra_pred_flag);
1267f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceFlagIfNotZero(trace_ctx, "\t\tpic_order_present_flag", p->pic_fields.bits.pic_order_present_flag);
1268f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceFlagIfNotZero(trace_ctx, "\t\tdeblocking_filter_control_present_flag", p->pic_fields.bits.deblocking_filter_control_present_flag);
1269f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceFlagIfNotZero(trace_ctx, "\t\tredundant_pic_cnt_present_flag", p->pic_fields.bits.redundant_pic_cnt_present_flag);
1270f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceFlagIfNotZero(trace_ctx, "\t\treference_pic_flag", p->pic_fields.bits.reference_pic_flag);
1271f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tframe_num = %d\n", p->frame_num);
127288912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tnum_ref_idx_l0_default_active_minus1 = %d\n", p->num_ref_idx_l0_default_active_minus1);
127388912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tnum_ref_idx_l1_default_active_minus1 = %d\n", p->num_ref_idx_l1_default_active_minus1);
1274a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan
1275f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
127688912d09886f431619dc966776a85976129f2b24Austin Yuan
1277b0fac498ca4863166252f1268fda83394db54153Fei Jiang    return;
1278b0fac498ca4863166252f1268fda83394db54153Fei Jiang}
1279b0fac498ca4863166252f1268fda83394db54153Fei Jiang
1280b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic void va_TraceVASliceParameterBufferH264(
1281b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VADisplay dpy,
1282a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
1283a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferID __maybe_unused buffer,
1284a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferType __maybe_unused type,
1285a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused size,
1286a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused num_elements,
1287b0fac498ca4863166252f1268fda83394db54153Fei Jiang    void *data)
1288b0fac498ca4863166252f1268fda83394db54153Fei Jiang{
1289b0fac498ca4863166252f1268fda83394db54153Fei Jiang    int i;
1290b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VASliceParameterBufferH264* p = (VASliceParameterBufferH264*)data;
1291f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
1292f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
1293f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    trace_ctx->trace_slice_no++;
1294f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    trace_ctx->trace_slice_size = p->slice_data_size;
1295f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
1296f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\t--VASliceParameterBufferH264\n");
1297f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tslice_data_size = %d\n", p->slice_data_size);
1298f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tslice_data_offset = %d\n", p->slice_data_offset);
1299f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tslice_data_flag = %d\n", p->slice_data_flag);
1300f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tslice_data_bit_offset = %d\n", p->slice_data_bit_offset);
1301f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tfirst_mb_in_slice = %d\n", p->first_mb_in_slice);
1302f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tslice_type = %d\n", p->slice_type);
1303f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tdirect_spatial_mv_pred_flag = %d\n", p->direct_spatial_mv_pred_flag);
1304f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tnum_ref_idx_l0_active_minus1 = %d\n", p->num_ref_idx_l0_active_minus1);
1305f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tnum_ref_idx_l1_active_minus1 = %d\n", p->num_ref_idx_l1_active_minus1);
1306f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tcabac_init_idc = %d\n", p->cabac_init_idc);
1307f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tslice_qp_delta = %d\n", p->slice_qp_delta);
1308f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tdisable_deblocking_filter_idc = %d\n", p->disable_deblocking_filter_idc);
1309f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tslice_alpha_c0_offset_div2 = %d\n", p->slice_alpha_c0_offset_div2);
1310f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tslice_beta_offset_div2 = %d\n", p->slice_beta_offset_div2);
1311f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
13128c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    va_TraceMsg(trace_ctx, "\tRefPicList0 =\n");
1313f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    for (i = 0; i < 32; i++) {
1314f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        if ((p->RefPicList0[i].picture_id != VA_INVALID_SURFACE) &&
1315f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            ((p->RefPicList0[i].flags & VA_PICTURE_H264_INVALID) == 0))
1316f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        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);
1317f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        else
1318f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            break;
1319f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    }
13208c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    va_TraceMsg(trace_ctx, "\tRefPicList1 =\n");
1321f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    for (i = 0; i < 32; i++) {
13222d90a81b39bf9820be1e5b179f3af95be8b08eddwfeng        if ((p->RefPicList1[i].picture_id != VA_INVALID_SURFACE) &&
13232d90a81b39bf9820be1e5b179f3af95be8b08eddwfeng            ((p->RefPicList1[i].flags & VA_PICTURE_H264_INVALID) == 0))
1324f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            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);
1325f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        else
1326f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            break;
1327b0fac498ca4863166252f1268fda83394db54153Fei Jiang    }
13282d90a81b39bf9820be1e5b179f3af95be8b08eddwfeng
1329f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tluma_log2_weight_denom = %d\n", p->luma_log2_weight_denom);
1330f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tchroma_log2_weight_denom = %d\n", p->chroma_log2_weight_denom);
1331f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tluma_weight_l0_flag = %d\n", p->luma_weight_l0_flag);
13322d90a81b39bf9820be1e5b179f3af95be8b08eddwfeng
13332d90a81b39bf9820be1e5b179f3af95be8b08eddwfeng    for (i = 0; (i <= p->num_ref_idx_l0_active_minus1) && (i<32); i++) {
13342d90a81b39bf9820be1e5b179f3af95be8b08eddwfeng        va_TraceMsg(trace_ctx, "\t\t%d\t%d\n",
13352d90a81b39bf9820be1e5b179f3af95be8b08eddwfeng            p->luma_weight_l0[i],
13362d90a81b39bf9820be1e5b179f3af95be8b08eddwfeng            p->luma_offset_l0[i]);
1337b0fac498ca4863166252f1268fda83394db54153Fei Jiang    }
133836bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang
13392d90a81b39bf9820be1e5b179f3af95be8b08eddwfeng
1340f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tchroma_weight_l0_flag = %d\n", p->chroma_weight_l0_flag);
13412d90a81b39bf9820be1e5b179f3af95be8b08eddwfeng
13422d90a81b39bf9820be1e5b179f3af95be8b08eddwfeng    for (i = 0; (i <= p->num_ref_idx_l0_active_minus1) && (i<32); i++) {
13432d90a81b39bf9820be1e5b179f3af95be8b08eddwfeng        va_TraceMsg(trace_ctx, "\t\t%d\t%d\t%d\t%d\n",
13442d90a81b39bf9820be1e5b179f3af95be8b08eddwfeng            p->chroma_weight_l0[i][0],
13452d90a81b39bf9820be1e5b179f3af95be8b08eddwfeng            p->chroma_offset_l0[i][0],
13462d90a81b39bf9820be1e5b179f3af95be8b08eddwfeng            p->chroma_weight_l0[i][1],
13472d90a81b39bf9820be1e5b179f3af95be8b08eddwfeng            p->chroma_offset_l0[i][1]);
1348b0fac498ca4863166252f1268fda83394db54153Fei Jiang    }
13492d90a81b39bf9820be1e5b179f3af95be8b08eddwfeng
13502d90a81b39bf9820be1e5b179f3af95be8b08eddwfeng
1351f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tluma_weight_l1_flag = %d\n", p->luma_weight_l1_flag);
13522d90a81b39bf9820be1e5b179f3af95be8b08eddwfeng
13532d90a81b39bf9820be1e5b179f3af95be8b08eddwfeng    for (i = 0; (i <=  p->num_ref_idx_l1_active_minus1) && (i<32); i++) {
13542d90a81b39bf9820be1e5b179f3af95be8b08eddwfeng        va_TraceMsg(trace_ctx, "\t\t%d\t%d\n",
13552d90a81b39bf9820be1e5b179f3af95be8b08eddwfeng            p->luma_weight_l1[i],
13562d90a81b39bf9820be1e5b179f3af95be8b08eddwfeng            p->luma_offset_l1[i]);
1357b0fac498ca4863166252f1268fda83394db54153Fei Jiang    }
13582d90a81b39bf9820be1e5b179f3af95be8b08eddwfeng
13592d90a81b39bf9820be1e5b179f3af95be8b08eddwfeng
1360f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tchroma_weight_l1_flag = %d\n", p->chroma_weight_l1_flag);
13612d90a81b39bf9820be1e5b179f3af95be8b08eddwfeng
13622d90a81b39bf9820be1e5b179f3af95be8b08eddwfeng    for (i = 0; (i <= p->num_ref_idx_l1_active_minus1) && (i<32); i++) {
13632d90a81b39bf9820be1e5b179f3af95be8b08eddwfeng        va_TraceMsg(trace_ctx, "\t\t%d\t%d\t%d\t%d\n",
13642d90a81b39bf9820be1e5b179f3af95be8b08eddwfeng            p->chroma_weight_l1[i][0],
13652d90a81b39bf9820be1e5b179f3af95be8b08eddwfeng            p->chroma_offset_l1[i][0],
13662d90a81b39bf9820be1e5b179f3af95be8b08eddwfeng            p->chroma_weight_l1[i][1],
13672d90a81b39bf9820be1e5b179f3af95be8b08eddwfeng            p->chroma_offset_l1[i][1]);
13682d90a81b39bf9820be1e5b179f3af95be8b08eddwfeng
136936bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang    }
1370f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
1371b0fac498ca4863166252f1268fda83394db54153Fei Jiang}
1372b0fac498ca4863166252f1268fda83394db54153Fei Jiang
1373b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic void va_TraceVAIQMatrixBufferH264(
1374b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VADisplay dpy,
1375a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
1376a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferID __maybe_unused buffer,
1377a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferType __maybe_unused type,
1378a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused size,
1379a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused num_elements,
1380b0fac498ca4863166252f1268fda83394db54153Fei Jiang    void *data
1381b0fac498ca4863166252f1268fda83394db54153Fei Jiang)
1382b0fac498ca4863166252f1268fda83394db54153Fei Jiang{
13832d90a81b39bf9820be1e5b179f3af95be8b08eddwfeng    int i, j;
1384b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VAIQMatrixBufferH264* p = (VAIQMatrixBufferH264* )data;
138572b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang
1386f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
138721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
1388f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\t--VAIQMatrixBufferH264\n");
138921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
1390f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tScalingList4x4[6][16]=\n");
139121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    for (i = 0; i < 6; i++) {
139221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        for (j = 0; j < 16; j++) {
13938c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan            if (trace_ctx->trace_fp_log) {
13948c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan                fprintf(trace_ctx->trace_fp_log, "\t%d", p->ScalingList4x4[i][j]);
13958c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan                if ((j + 1) % 8 == 0)
13968c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan                    fprintf(trace_ctx->trace_fp_log, "\n");
13978c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan            }
1398b0fac498ca4863166252f1268fda83394db54153Fei Jiang        }
1399b0fac498ca4863166252f1268fda83394db54153Fei Jiang    }
1400b0fac498ca4863166252f1268fda83394db54153Fei Jiang
1401f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tScalingList8x8[2][64]=\n");
140221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    for (i = 0; i < 2; i++) {
140321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        for (j = 0; j < 64; j++) {
14048c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan            if (trace_ctx->trace_fp_log) {
14058c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan                fprintf(trace_ctx->trace_fp_log,"\t%d", p->ScalingList8x8[i][j]);
14068c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan                if ((j + 1) % 8 == 0)
14078c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan                    fprintf(trace_ctx->trace_fp_log, "\n");
14088c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan            }
140936bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang        }
1410b0fac498ca4863166252f1268fda83394db54153Fei Jiang    }
141136bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang
1412f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
1413b0fac498ca4863166252f1268fda83394db54153Fei Jiang}
1414b0fac498ca4863166252f1268fda83394db54153Fei Jiang
14156af1f7eccc8c67c1f3a4c989a4f0b69804ef973dTang, XiaoxiX
1416409de6acb4473c973ed2532e340831dc582e5e0eAustin Yuan
141721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanstatic void va_TraceVAEncSequenceParameterBufferH264(
141821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    VADisplay dpy,
1419a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
1420a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferID __maybe_unused buffer,
1421a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferType __maybe_unused type,
1422a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused size,
1423a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused num_elements,
142421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    void *data)
142521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan{
142621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    VAEncSequenceParameterBufferH264 *p = (VAEncSequenceParameterBufferH264 *)data;
1427f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
14288c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    unsigned int i;
14294b672db6ee89c9846451bbab23cf18e93c4260b2hding
1430f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\t--VAEncSequenceParameterBufferH264\n");
1431f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
1432f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tseq_parameter_set_id = %d\n", p->seq_parameter_set_id);
1433f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tlevel_idc = %d\n", p->level_idc);
1434f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tintra_period = %d\n", p->intra_period);
1435f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tintra_idr_period = %d\n", p->intra_idr_period);
1436f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tip_period = %d\n", p->ip_period);
1437f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tbits_per_second = %d\n", p->bits_per_second);
1438f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tmax_num_ref_frames = %d\n", p->max_num_ref_frames);
1439f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpicture_width_in_mbs = %d\n", p->picture_width_in_mbs);
1440f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpicture_height_in_mbs = %d\n", p->picture_height_in_mbs);
1441f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tchroma_format_idc = %d\n", p->seq_fields.bits.chroma_format_idc);
1442f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tframe_mbs_only_flag = %d\n", p->seq_fields.bits.frame_mbs_only_flag);
1443f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tmb_adaptive_frame_field_flag = %d\n", p->seq_fields.bits.mb_adaptive_frame_field_flag);
1444f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tseq_scaling_matrix_present_flag = %d\n", p->seq_fields.bits.seq_scaling_matrix_present_flag);
1445f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tdirect_8x8_inference_flag = %d\n", p->seq_fields.bits.direct_8x8_inference_flag);
1446f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tlog2_max_frame_num_minus4 = %d\n", p->seq_fields.bits.log2_max_frame_num_minus4);
1447f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpic_order_cnt_type = %d\n", p->seq_fields.bits.pic_order_cnt_type);
1448f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tlog2_max_pic_order_cnt_lsb_minus4 = %d\n", p->seq_fields.bits.log2_max_pic_order_cnt_lsb_minus4);
1449f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tdelta_pic_order_always_zero_flag = %d\n", p->seq_fields.bits.delta_pic_order_always_zero_flag);
1450f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tbit_depth_luma_minus8 = %d\n", p->bit_depth_luma_minus8);
1451f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tbit_depth_chroma_minus8 = %d\n", p->bit_depth_chroma_minus8);
1452f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tnum_ref_frames_in_pic_order_cnt_cycle = %d\n", p->num_ref_frames_in_pic_order_cnt_cycle);
1453f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\toffset_for_non_ref_pic = %d\n", p->offset_for_non_ref_pic);
1454f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\toffset_for_top_to_bottom_field = %d\n", p->offset_for_top_to_bottom_field);
14558c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    for(i = 0; (i < p->max_num_ref_frames) && (i < 32); ++i)
1456f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\toffset_for_ref_frame[%d] = %d\n", i, p->offset_for_ref_frame[i]);
1457f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tframe_cropping_flag = %d\n", p->frame_cropping_flag);
1458f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tframe_crop_left_offset = %d\n", p->frame_crop_left_offset);
1459f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tframe_crop_right_offset = %d\n", p->frame_crop_right_offset);
1460f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tframe_crop_top_offset = %d\n", p->frame_crop_top_offset);
1461f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tframe_crop_bottom_offset = %d\n", p->frame_crop_bottom_offset);
1462f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tvui_parameters_present_flag = %d\n", p->vui_parameters_present_flag);
1463f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\taspect_ratio_info_present_flag = %d\n", p->vui_fields.bits.aspect_ratio_info_present_flag);
1464f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\ttiming_info_present_flag = %d\n", p->vui_fields.bits.timing_info_present_flag);
1465f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tbitstream_restriction_flag = %d\n", p->vui_fields.bits.bitstream_restriction_flag);
1466f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tlog2_max_mv_length_horizontal = %d\n", p->vui_fields.bits.log2_max_mv_length_horizontal);
1467f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tlog2_max_mv_length_vertical = %d\n", p->vui_fields.bits.log2_max_mv_length_vertical);
1468f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\taspect_ratio_idc = %d\n", p->aspect_ratio_idc);
1469f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tsar_width = %d\n", p->sar_width);
1470f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tsar_height = %d\n", p->sar_height);
1471f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tnum_units_in_tick = %d\n", p->num_units_in_tick);
1472f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\ttime_scale = %d\n", p->time_scale);
1473f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
1474f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
147521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
147621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    return;
147721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan}
147821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
14794b672db6ee89c9846451bbab23cf18e93c4260b2hding
148021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanstatic void va_TraceVAEncPictureParameterBufferH264(
148121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    VADisplay dpy,
1482a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
1483a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferID __maybe_unused buffer,
1484a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferType __maybe_unused type,
1485a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused size,
1486a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused num_elements,
148721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    void *data)
148821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan{
148921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    VAEncPictureParameterBufferH264 *p = (VAEncPictureParameterBufferH264 *)data;
1490f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
14914b672db6ee89c9846451bbab23cf18e93c4260b2hding    int i;
14924b672db6ee89c9846451bbab23cf18e93c4260b2hding
1493f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\t--VAEncPictureParameterBufferH264\n");
14944b672db6ee89c9846451bbab23cf18e93c4260b2hding
1495f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tCurrPic.picture_id = 0x%08x\n", p->CurrPic.picture_id);
1496f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tCurrPic.frame_idx = %d\n", p->CurrPic.frame_idx);
1497f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tCurrPic.flags = %d\n", p->CurrPic.flags);
1498f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tCurrPic.TopFieldOrderCnt = %d\n", p->CurrPic.TopFieldOrderCnt);
1499f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tCurrPic.BottomFieldOrderCnt = %d\n", p->CurrPic.BottomFieldOrderCnt);
1500f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tReferenceFrames (TopFieldOrderCnt-BottomFieldOrderCnt-picture_id-frame_idx-flags):\n");
15014b672db6ee89c9846451bbab23cf18e93c4260b2hding    for (i = 0; i < 16; i++)
15024b672db6ee89c9846451bbab23cf18e93c4260b2hding    {
15036044ab9a375eb73b08f45d87966652f98f918668Austin Yuan        if ((p->ReferenceFrames[i].picture_id != VA_INVALID_SURFACE) &&
15046044ab9a375eb73b08f45d87966652f98f918668Austin Yuan            ((p->ReferenceFrames[i].flags & VA_PICTURE_H264_INVALID) == 0)) {
1505f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            va_TraceMsg(trace_ctx, "\t\t%08d-%08d-0x%08x-%08d-0x%08x\n",
15064b672db6ee89c9846451bbab23cf18e93c4260b2hding                        p->ReferenceFrames[i].TopFieldOrderCnt,
15074b672db6ee89c9846451bbab23cf18e93c4260b2hding                        p->ReferenceFrames[i].BottomFieldOrderCnt,
15084b672db6ee89c9846451bbab23cf18e93c4260b2hding                        p->ReferenceFrames[i].picture_id,
15096044ab9a375eb73b08f45d87966652f98f918668Austin Yuan                        p->ReferenceFrames[i].frame_idx,
15106044ab9a375eb73b08f45d87966652f98f918668Austin Yuan                        p->ReferenceFrames[i].flags
15116044ab9a375eb73b08f45d87966652f98f918668Austin Yuan                        );
15124b672db6ee89c9846451bbab23cf18e93c4260b2hding        } else
1513f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            break;
1514f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    }
1515f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tcoded_buf = %08x\n", p->coded_buf);
1516f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpic_parameter_set_id = %d\n", p->pic_parameter_set_id);
1517f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tseq_parameter_set_id = %d\n", p->seq_parameter_set_id);
1518f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tlast_picture = 0x%08x\n", p->last_picture);
1519f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tframe_num = %d\n", p->frame_num);
1520f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpic_init_qp = %d\n", p->pic_init_qp);
1521f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tnum_ref_idx_l0_active_minus1 = %d\n", p->num_ref_idx_l0_active_minus1);
1522f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tnum_ref_idx_l1_active_minus1 = %d\n", p->num_ref_idx_l1_active_minus1);
1523f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tchroma_qp_index_offset = %d\n", p->chroma_qp_index_offset);
1524f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tsecond_chroma_qp_index_offset = %d\n", p->second_chroma_qp_index_offset);
1525f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpic_fields = 0x%03x\n", p->pic_fields.value);
1526f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tidr_pic_flag = %d\n", p->pic_fields.bits.idr_pic_flag);
1527f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\treference_pic_flag = %d\n", p->pic_fields.bits.reference_pic_flag);
1528f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tentropy_coding_mode_flag = %d\n", p->pic_fields.bits.entropy_coding_mode_flag);
1529f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tweighted_pred_flag = %d\n", p->pic_fields.bits.weighted_pred_flag);
1530f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tweighted_bipred_idc = %d\n", p->pic_fields.bits.weighted_bipred_idc);
1531f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tconstrained_intra_pred_flag = %d\n", p->pic_fields.bits.constrained_intra_pred_flag);
1532f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\ttransform_8x8_mode_flag = %d\n", p->pic_fields.bits.transform_8x8_mode_flag);
1533f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tdeblocking_filter_control_present_flag = %d\n", p->pic_fields.bits.deblocking_filter_control_present_flag);
1534f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tredundant_pic_cnt_present_flag = %d\n", p->pic_fields.bits.redundant_pic_cnt_present_flag);
1535f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpic_order_present_flag = %d\n", p->pic_fields.bits.pic_order_present_flag);
1536f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpic_scaling_matrix_present_flag = %d\n", p->pic_fields.bits.pic_scaling_matrix_present_flag);
1537f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
1538f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
1539f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
154021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    return;
154121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan}
154221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
154321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanstatic void va_TraceVAEncSliceParameterBuffer(
154421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    VADisplay dpy,
1545a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
1546a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferID __maybe_unused buffer,
1547a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferType __maybe_unused type,
1548a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused size,
1549a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused num_elements,
155021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    void *data)
155121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan{
155221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    VAEncSliceParameterBuffer* p = (VAEncSliceParameterBuffer*)data;
1553f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
1554a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan
1555f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\t--VAEncSliceParameterBuffer\n");
155621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
1557f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tstart_row_number = %d\n", p->start_row_number);
1558f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tslice_height = %d\n", p->slice_height);
1559f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tslice_flags.is_intra = %d\n", p->slice_flags.bits.is_intra);
1560f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tslice_flags.disable_deblocking_filter_idc = %d\n", p->slice_flags.bits.disable_deblocking_filter_idc);
1561f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tslice_flags.uses_long_term_ref = %d\n", p->slice_flags.bits.uses_long_term_ref);
1562f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tslice_flags.is_long_term_ref = %d\n", p->slice_flags.bits.is_long_term_ref);
1563f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
156436bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang
156521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    return;
156621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan}
156721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
15684b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void va_TraceVAEncSliceParameterBufferH264(
15694b672db6ee89c9846451bbab23cf18e93c4260b2hding    VADisplay dpy,
1570a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
1571a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferID __maybe_unused buffer,
1572a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferType __maybe_unused type,
1573a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused size,
1574a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused num_elements,
15754b672db6ee89c9846451bbab23cf18e93c4260b2hding    void *data)
15764b672db6ee89c9846451bbab23cf18e93c4260b2hding{
15774b672db6ee89c9846451bbab23cf18e93c4260b2hding    VAEncSliceParameterBufferH264* p = (VAEncSliceParameterBufferH264*)data;
1578f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
15794b672db6ee89c9846451bbab23cf18e93c4260b2hding    int i;
15804b672db6ee89c9846451bbab23cf18e93c4260b2hding
1581ac1c6d1120d34338e679ac23f1348ade77b61317Elaine Wang    if (!p)
1582ac1c6d1120d34338e679ac23f1348ade77b61317Elaine Wang        return;
1583f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
1584f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\t--VAEncSliceParameterBufferH264\n");
1585f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tmacroblock_address = %d\n", p->macroblock_address);
1586f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tnum_macroblocks = %d\n", p->num_macroblocks);
1587f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tmacroblock_info = %08x\n", p->macroblock_info);
1588f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tslice_type = %d\n", p->slice_type);
1589f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpic_parameter_set_id = %d\n", p->pic_parameter_set_id);
1590f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tidr_pic_id = %d\n", p->idr_pic_id);
1591f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpic_order_cnt_lsb = %d\n", p->pic_order_cnt_lsb);
1592f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tdelta_pic_order_cnt_bottom = %d\n", p->delta_pic_order_cnt_bottom);
1593f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tdelta_pic_order_cnt[0] = %d\n", p->delta_pic_order_cnt[0]);
1594f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tdelta_pic_order_cnt[1] = %d\n", p->delta_pic_order_cnt[1]);
1595f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tdirect_spatial_mv_pred_flag = %d\n", p->direct_spatial_mv_pred_flag);
1596f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tnum_ref_idx_active_override_flag = %d\n", p->num_ref_idx_active_override_flag);
1597f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tnum_ref_idx_l1_active_minus1 = %d\n", p->num_ref_idx_l1_active_minus1);
1598f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tslice_beta_offset_div2 = %d\n", p->slice_beta_offset_div2);
1599f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
1600f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tRefPicList0 (TopFieldOrderCnt-BottomFieldOrderCnt-picture_id-frame_idx-flags):\n");
1601f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
1602f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
1603f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
1604f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    for (i = 0; i < 32; i++) {
1605f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        if ((p->RefPicList0[i].picture_id != VA_INVALID_SURFACE) &&
1606f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            ((p->RefPicList0[i].flags & VA_PICTURE_H264_INVALID) == 0))
1607f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            va_TraceMsg(trace_ctx, "\t\t%08d-%08d-0x%08x-%08d-0x%08x\n",
1608f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun                        p->RefPicList0[i].TopFieldOrderCnt,
1609f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun                        p->RefPicList0[i].BottomFieldOrderCnt,
1610f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun                        p->RefPicList0[i].picture_id,
1611f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun                        p->RefPicList0[i].frame_idx,
1612f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun                        p->RefPicList0[i].flags);
1613f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        else
1614f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            break;
16156044ab9a375eb73b08f45d87966652f98f918668Austin Yuan    }
16166044ab9a375eb73b08f45d87966652f98f918668Austin Yuan
1617f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tRefPicList1 (TopFieldOrderCnt-BottomFieldOrderCnt-picture_id-frame_idx-flags):\n");
1618f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    for (i = 0; i < 32; i++) {
1619f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        if ((p->RefPicList1[i].picture_id != VA_INVALID_SURFACE) &&
1620f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            ((p->RefPicList1[i].flags & VA_PICTURE_H264_INVALID) == 0))
1621f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            va_TraceMsg(trace_ctx, "\t\t%08d-%08d-0x%08x-%08d-0x%08d\n",
1622f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun                        p->RefPicList1[i].TopFieldOrderCnt,
1623f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun                        p->RefPicList1[i].BottomFieldOrderCnt,
1624f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun                        p->RefPicList1[i].picture_id,
1625f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun                        p->RefPicList1[i].frame_idx,
1626f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun                        p->RefPicList1[i].flags
1627f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun                        );
1628f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        else
1629f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            break;
16304b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
16316044ab9a375eb73b08f45d87966652f98f918668Austin Yuan
1632f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tluma_log2_weight_denom = %d\n", p->luma_log2_weight_denom);
1633f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tchroma_log2_weight_denom = %d\n", p->chroma_log2_weight_denom);
1634f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tluma_weight_l0_flag = %d\n", p->luma_weight_l0_flag);
1635f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    if (p->luma_weight_l0_flag) {
1636f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        for (i = 0; (i <= p->num_ref_idx_l0_active_minus1) && (i<32); i++) {
16378c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan            va_TraceMsg(trace_ctx, "\t\t%d\t%d\n",
16388c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan                        p->luma_weight_l0[i],
16398c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan                        p->luma_offset_l0[i]);
16404b672db6ee89c9846451bbab23cf18e93c4260b2hding        }
16414b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
16424b672db6ee89c9846451bbab23cf18e93c4260b2hding
1643f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tchroma_weight_l0_flag = %d\n", p->chroma_weight_l0_flag);
1644f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    if (p->chroma_weight_l0_flag) {
1645f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        for (i = 0; (i <= p->num_ref_idx_l0_active_minus1) && (i<32); i++) {
16468c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan            va_TraceMsg(trace_ctx, "\t\t%d\t%d\t%d\t%d\n",
16478c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan                        p->chroma_weight_l0[i][0],
16488c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan                        p->chroma_offset_l0[i][0],
16498c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan                        p->chroma_weight_l0[i][1],
16508c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan                        p->chroma_offset_l0[i][1]);
16514b672db6ee89c9846451bbab23cf18e93c4260b2hding        }
16524b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
16534b672db6ee89c9846451bbab23cf18e93c4260b2hding
1654f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tluma_weight_l1_flag = %d\n", p->luma_weight_l1_flag);
1655f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    if (p->luma_weight_l1_flag) {
1656f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        for (i = 0; (i <= p->num_ref_idx_l1_active_minus1) && (i<32); i++) {
16578c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan            va_TraceMsg(trace_ctx, "\t\t%d\t\t%d\n",
16588c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan                        p->luma_weight_l1[i],
16598c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan                        p->luma_offset_l1[i]);
16604b672db6ee89c9846451bbab23cf18e93c4260b2hding        }
16614b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
16624b672db6ee89c9846451bbab23cf18e93c4260b2hding
1663f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tchroma_weight_l1_flag = %d\n", p->chroma_weight_l1_flag);
1664ac1c6d1120d34338e679ac23f1348ade77b61317Elaine Wang    if (p->chroma_weight_l1_flag && p->num_ref_idx_l1_active_minus1 < 32) {
1665f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        for (i = 0; (i <= p->num_ref_idx_l1_active_minus1) && (i<32); i++) {
16668c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan            va_TraceMsg(trace_ctx, "\t\t%d\t%d\t%d\t%d\n",
16678c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan                        p->chroma_weight_l1[i][0],
16688c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan                        p->chroma_offset_l1[i][0],
16698c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan                        p->chroma_weight_l1[i][1],
16708c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan                        p->chroma_offset_l1[i][1]);
16714b672db6ee89c9846451bbab23cf18e93c4260b2hding        }
16724b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
1673f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
16744b672db6ee89c9846451bbab23cf18e93c4260b2hding
1675f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tcabac_init_idc = %d\n", p->cabac_init_idc);
1676f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tslice_qp_delta = %d\n", p->slice_qp_delta);
1677f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tdisable_deblocking_filter_idc = %d\n", p->disable_deblocking_filter_idc);
1678f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tslice_alpha_c0_offset_div2 = %d\n", p->slice_alpha_c0_offset_div2);
1679f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tslice_beta_offset_div2 = %d\n", p->slice_beta_offset_div2);
1680f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
16814b672db6ee89c9846451bbab23cf18e93c4260b2hding
16824b672db6ee89c9846451bbab23cf18e93c4260b2hding    return;
16834b672db6ee89c9846451bbab23cf18e93c4260b2hding}
16844b672db6ee89c9846451bbab23cf18e93c4260b2hding
16852efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan
16862efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuanstatic void va_TraceVAEncPackedHeaderParameterBufferType(
16872efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan    VADisplay dpy,
1688a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
1689a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferID __maybe_unused buffer,
1690a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferType __maybe_unused type,
1691a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused size,
1692a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused num_elements,
16932efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan    void *data)
16942efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan{
16952efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan    VAEncPackedHeaderParameterBuffer* p = (VAEncPackedHeaderParameterBuffer*)data;
1696f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
16972efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan
16982efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan    if (!p)
16992efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan        return;
1700f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\t--VAEncPackedHeaderParameterBuffer\n");
1701f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\ttype = 0x%08x\n", p->type);
1702f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tbit_length = %d\n", p->bit_length);
1703f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\thas_emulation_bytes = %d\n", p->has_emulation_bytes);
1704f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
17052efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan
17062efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan    return;
17072efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan}
17082efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan
170921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanstatic void va_TraceVAEncMiscParameterBuffer(
171021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    VADisplay dpy,
171121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    VAContextID context,
171221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    VABufferID buffer,
171321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    VABufferType type,
171421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    unsigned int size,
171521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    unsigned int num_elements,
171621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    void *data)
171721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan{
171821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    VAEncMiscParameterBuffer* tmp = (VAEncMiscParameterBuffer*)data;
1719f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
1720d86982adfbd5062d3d40f584face6f61b5c1a6d7bolunliu    uint32_t i;
172121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
172221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    switch (tmp->type) {
172321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    case VAEncMiscParameterTypeFrameRate:
172421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    {
172521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        VAEncMiscParameterFrameRate *p = (VAEncMiscParameterFrameRate *)tmp->data;
1726f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterFrameRate\n");
1727f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\tframerate = %d\n", p->framerate);
172821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
172921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        break;
173021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    }
173121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    case VAEncMiscParameterTypeRateControl:
173221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    {
173321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        VAEncMiscParameterRateControl *p = (VAEncMiscParameterRateControl *)tmp->data;
173421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
1735f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterRateControl\n");
1736f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\tbits_per_second = %d\n", p->bits_per_second);
1737f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\ttarget_percentage = %d\n", p->target_percentage);
1738f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\twindow_size = %d\n", p->window_size);
1739f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\tinitial_qp = %d\n", p->initial_qp);
1740f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\tmin_qp = %d\n", p->min_qp);
1741f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\tbasic_unit_size = %d\n", p->basic_unit_size);
1742f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\trc_flags.reset = %d \n", p->rc_flags.bits.reset);
1743f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\trc_flags.disable_frame_skip = %d\n", p->rc_flags.bits.disable_frame_skip);
1744f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\trc_flags.disable_bit_stuffing = %d\n", p->rc_flags.bits.disable_bit_stuffing);
174521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        break;
174621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    }
174721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    case VAEncMiscParameterTypeMaxSliceSize:
174821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    {
174921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        VAEncMiscParameterMaxSliceSize *p = (VAEncMiscParameterMaxSliceSize *)tmp->data;
175021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
1751f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterTypeMaxSliceSize\n");
1752f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\tmax_slice_size = %d\n", p->max_slice_size);
175321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        break;
175421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    }
175521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    case VAEncMiscParameterTypeAIR:
175621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    {
175721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        VAEncMiscParameterAIR *p = (VAEncMiscParameterAIR *)tmp->data;
175821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
1759f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterAIR\n");
1760f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\tair_num_mbs = %d\n", p->air_num_mbs);
1761f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\tair_threshold = %d\n", p->air_threshold);
1762f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\tair_auto = %d\n", p->air_auto);
176321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        break;
176421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    }
17654b672db6ee89c9846451bbab23cf18e93c4260b2hding    case VAEncMiscParameterTypeHRD:
17664b672db6ee89c9846451bbab23cf18e93c4260b2hding    {
17674b672db6ee89c9846451bbab23cf18e93c4260b2hding        VAEncMiscParameterHRD *p = (VAEncMiscParameterHRD *)tmp->data;
17684b672db6ee89c9846451bbab23cf18e93c4260b2hding
1769f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterHRD\n");
1770f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\tinitial_buffer_fullness = %d\n", p->initial_buffer_fullness);
1771f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\tbuffer_size = %d\n", p->buffer_size);
17724b672db6ee89c9846451bbab23cf18e93c4260b2hding        break;
17734b672db6ee89c9846451bbab23cf18e93c4260b2hding    }
17741c9d519ecad2a00b197adc90a8179e91ea77321eliubolun    case VAEncMiscParameterTypeMaxFrameSize:
17751c9d519ecad2a00b197adc90a8179e91ea77321eliubolun    {
17761c9d519ecad2a00b197adc90a8179e91ea77321eliubolun        VAEncMiscParameterBufferMaxFrameSize *p = (VAEncMiscParameterBufferMaxFrameSize *)tmp->data;
17771c9d519ecad2a00b197adc90a8179e91ea77321eliubolun
17781c9d519ecad2a00b197adc90a8179e91ea77321eliubolun        va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterTypeMaxFrameSize\n");
17791c9d519ecad2a00b197adc90a8179e91ea77321eliubolun        va_TraceMsg(trace_ctx, "\tmax_frame_size = %d\n", p->max_frame_size);
17801c9d519ecad2a00b197adc90a8179e91ea77321eliubolun        break;
17811c9d519ecad2a00b197adc90a8179e91ea77321eliubolun    }
1782d86982adfbd5062d3d40f584face6f61b5c1a6d7bolunliu    case VAEncMiscParameterTypeTemporalLayerStructure:
1783d86982adfbd5062d3d40f584face6f61b5c1a6d7bolunliu    {
1784d86982adfbd5062d3d40f584face6f61b5c1a6d7bolunliu        VAEncMiscParameterTemporalLayerStructure *p = (VAEncMiscParameterTemporalLayerStructure *)tmp->data;
1785d86982adfbd5062d3d40f584face6f61b5c1a6d7bolunliu        va_TraceMsg(trace_ctx,"\t--VAEncMiscParameterTypeTemporalLayerStructure\n");
1786d86982adfbd5062d3d40f584face6f61b5c1a6d7bolunliu        va_TraceMsg(trace_ctx,"\tnumber_of_layers = %d\n", p->number_of_layers);
1787d86982adfbd5062d3d40f584face6f61b5c1a6d7bolunliu        va_TraceMsg(trace_ctx,"\tperiodicity = %d\n", p->periodicity);
1788d86982adfbd5062d3d40f584face6f61b5c1a6d7bolunliu        for(i=0;i<p->periodicity;i++)
1789d86982adfbd5062d3d40f584face6f61b5c1a6d7bolunliu                va_TraceMsg(trace_ctx,"\tlayer_id[%d] = %d\n", i, p->layer_id[i]);
1790d86982adfbd5062d3d40f584face6f61b5c1a6d7bolunliu        break;
1791d86982adfbd5062d3d40f584face6f61b5c1a6d7bolunliu    }
179221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    default:
1793f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "Unknown VAEncMiscParameterBuffer(type = %d):\n", tmp->type);
17942efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, data);
179521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        break;
179621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    }
1797f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
179836bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang
179921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    return;
180021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan}
180121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
180221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
1803b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic void va_TraceVAPictureParameterBufferVC1(
1804b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VADisplay dpy,
1805b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VAContextID context,
1806b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VABufferID buffer,
1807b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VABufferType type,
1808b0fac498ca4863166252f1268fda83394db54153Fei Jiang    unsigned int size,
1809b0fac498ca4863166252f1268fda83394db54153Fei Jiang    unsigned int num_elements,
1810b0fac498ca4863166252f1268fda83394db54153Fei Jiang    void *data
1811b0fac498ca4863166252f1268fda83394db54153Fei Jiang)
1812b0fac498ca4863166252f1268fda83394db54153Fei Jiang{
1813b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VAPictureParameterBufferVC1* p = (VAPictureParameterBufferVC1*)data;
1814f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
1815a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan
1816f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\t--VAPictureParameterBufferVC1\n");
1817a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    va_TraceMsg(trace_ctx, "\t    context = %d, buffer = %d, type = %d, size = %d, num_elements = %d\n",
1818a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan                context, buffer, type, size, num_elements);
1819f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tforward_reference_picture = 0x%08x\n", p->forward_reference_picture);
1820f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tbackward_reference_picture = 0x%08x\n", p->backward_reference_picture);
1821f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tinloop_decoded_picture = 0x%08x\n", p->inloop_decoded_picture);
1822f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
1823f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpulldown = %d\n", p->sequence_fields.bits.pulldown);
1824f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tinterlace = %d\n", p->sequence_fields.bits.interlace);
1825f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\ttfcntrflag = %d\n", p->sequence_fields.bits.tfcntrflag);
1826f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tfinterpflag = %d\n", p->sequence_fields.bits.finterpflag);
1827f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpsf = %d\n", p->sequence_fields.bits.psf);
1828f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tmultires = %d\n", p->sequence_fields.bits.multires);
1829f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\toverlap = %d\n", p->sequence_fields.bits.overlap);
1830f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tsyncmarker = %d\n", p->sequence_fields.bits.syncmarker);
1831f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\trangered = %d\n", p->sequence_fields.bits.rangered);
1832f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tmax_b_frames = %d\n", p->sequence_fields.bits.max_b_frames);
1833f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tprofile = %d\n", p->sequence_fields.bits.profile);
1834f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tcoded_width = %d\n", p->coded_width);
1835f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tcoded_height = %d\n", p->coded_height);
1836f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tclosed_entry = %d\n", p->entrypoint_fields.bits.closed_entry);
1837f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tbroken_link = %d\n", p->entrypoint_fields.bits.broken_link);
1838f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tclosed_entry = %d\n", p->entrypoint_fields.bits.closed_entry);
1839f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpanscan_flag = %d\n", p->entrypoint_fields.bits.panscan_flag);
1840f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tloopfilter = %d\n", p->entrypoint_fields.bits.loopfilter);
1841f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tconditional_overlap_flag = %d\n", p->conditional_overlap_flag);
1842f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tfast_uvmc_flag = %d\n", p->fast_uvmc_flag);
1843f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\trange_mapping_luma_flag = %d\n", p->range_mapping_fields.bits.luma_flag);
1844f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\trange_mapping_luma = %d\n", p->range_mapping_fields.bits.luma);
1845f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\trange_mapping_chroma_flag = %d\n", p->range_mapping_fields.bits.chroma_flag);
1846f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\trange_mapping_chroma = %d\n", p->range_mapping_fields.bits.chroma);
1847f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tb_picture_fraction = %d\n", p->b_picture_fraction);
1848f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tcbp_table = %d\n", p->cbp_table);
1849f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tmb_mode_table = %d\n", p->mb_mode_table);
1850f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\trange_reduction_frame = %d\n", p->range_reduction_frame);
1851f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\trounding_control = %d\n", p->rounding_control);
1852f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpost_processing = %d\n", p->post_processing);
1853f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpicture_resolution_index = %d\n", p->picture_resolution_index);
1854f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tluma_scale = %d\n", p->luma_scale);
1855f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tluma_shift = %d\n", p->luma_shift);
1856f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpicture_type = %d\n", p->picture_fields.bits.picture_type);
1857f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tframe_coding_mode = %d\n", p->picture_fields.bits.frame_coding_mode);
1858f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\ttop_field_first = %d\n", p->picture_fields.bits.top_field_first);
1859f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tis_first_field = %d\n", p->picture_fields.bits.is_first_field);
1860f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tintensity_compensation = %d\n", p->picture_fields.bits.intensity_compensation);
1861f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tmv_type_mb = %d\n", p->raw_coding.flags.mv_type_mb);
1862f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tdirect_mb = %d\n", p->raw_coding.flags.direct_mb);
1863f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tskip_mb = %d\n", p->raw_coding.flags.skip_mb);
1864f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tfield_tx = %d\n", p->raw_coding.flags.field_tx);
1865f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tforward_mb = %d\n", p->raw_coding.flags.forward_mb);
1866f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tac_pred = %d\n", p->raw_coding.flags.ac_pred);
1867f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\toverflags = %d\n", p->raw_coding.flags.overflags);
1868f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tbp_mv_type_mb = %d\n", p->bitplane_present.flags.bp_mv_type_mb);
1869f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tbp_direct_mb = %d\n", p->bitplane_present.flags.bp_direct_mb);
1870f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tbp_skip_mb = %d\n", p->bitplane_present.flags.bp_skip_mb);
1871f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tbp_field_tx = %d\n", p->bitplane_present.flags.bp_field_tx);
1872f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tbp_forward_mb = %d\n", p->bitplane_present.flags.bp_forward_mb);
1873f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tbp_ac_pred = %d\n", p->bitplane_present.flags.bp_ac_pred);
1874f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tbp_overflags = %d\n", p->bitplane_present.flags.bp_overflags);
1875f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\treference_distance_flag = %d\n", p->reference_fields.bits.reference_distance_flag);
1876f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\treference_distance = %d\n", p->reference_fields.bits.reference_distance);
1877f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tnum_reference_pictures = %d\n", p->reference_fields.bits.num_reference_pictures);
1878f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\treference_field_pic_indicator = %d\n", p->reference_fields.bits.reference_field_pic_indicator);
1879f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tmv_mode = %d\n", p->mv_fields.bits.mv_mode);
1880f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tmv_mode2 = %d\n", p->mv_fields.bits.mv_mode2);
1881f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tmv_table = %d\n", p->mv_fields.bits.mv_table);
1882f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\ttwo_mv_block_pattern_table = %d\n", p->mv_fields.bits.two_mv_block_pattern_table);
1883f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tfour_mv_switch = %d\n", p->mv_fields.bits.four_mv_switch);
1884f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tfour_mv_block_pattern_table = %d\n", p->mv_fields.bits.four_mv_block_pattern_table);
1885f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\textended_mv_flag = %d\n", p->mv_fields.bits.extended_mv_flag);
1886f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\textended_mv_range = %d\n", p->mv_fields.bits.extended_mv_range);
1887f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\textended_dmv_flag = %d\n", p->mv_fields.bits.extended_dmv_flag);
1888f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\textended_dmv_range = %d\n", p->mv_fields.bits.extended_dmv_range);
1889f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tdquant = %d\n", p->pic_quantizer_fields.bits.dquant);
1890f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tquantizer = %d\n", p->pic_quantizer_fields.bits.quantizer);
1891f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\thalf_qp = %d\n", p->pic_quantizer_fields.bits.half_qp);
1892f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpic_quantizer_scale = %d\n", p->pic_quantizer_fields.bits.pic_quantizer_scale);
1893f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpic_quantizer_type = %d\n", p->pic_quantizer_fields.bits.pic_quantizer_type);
1894f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tdq_frame = %d\n", p->pic_quantizer_fields.bits.dq_frame);
1895f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tdq_profile = %d\n", p->pic_quantizer_fields.bits.dq_profile);
1896f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tdq_sb_edge = %d\n", p->pic_quantizer_fields.bits.dq_sb_edge);
1897f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tdq_db_edge = %d\n", p->pic_quantizer_fields.bits.dq_db_edge);
1898f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tdq_binary_level = %d\n", p->pic_quantizer_fields.bits.dq_binary_level);
1899f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\talt_pic_quantizer = %d\n", p->pic_quantizer_fields.bits.alt_pic_quantizer);
1900f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tvariable_sized_transform_flag = %d\n", p->transform_fields.bits.variable_sized_transform_flag);
1901f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tmb_level_transform_type_flag = %d\n", p->transform_fields.bits.mb_level_transform_type_flag);
1902f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tframe_level_transform_type = %d\n", p->transform_fields.bits.frame_level_transform_type);
1903f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\ttransform_ac_codingset_idx1 = %d\n", p->transform_fields.bits.transform_ac_codingset_idx1);
1904f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\ttransform_ac_codingset_idx2 = %d\n", p->transform_fields.bits.transform_ac_codingset_idx2);
1905f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tintra_transform_dc_table = %d\n", p->transform_fields.bits.intra_transform_dc_table);
1906f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
1907b0fac498ca4863166252f1268fda83394db54153Fei Jiang}
1908b0fac498ca4863166252f1268fda83394db54153Fei Jiang
1909b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic void va_TraceVASliceParameterBufferVC1(
1910b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VADisplay dpy,
1911a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
1912a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferID __maybe_unused buffer,
1913a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferType __maybe_unused type,
1914a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused size,
1915a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused num_elements,
1916b0fac498ca4863166252f1268fda83394db54153Fei Jiang    void* data
1917b0fac498ca4863166252f1268fda83394db54153Fei Jiang)
1918b0fac498ca4863166252f1268fda83394db54153Fei Jiang{
1919b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VASliceParameterBufferVC1 *p = (VASliceParameterBufferVC1*)data;
1920f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
1921f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
1922f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    trace_ctx->trace_slice_no++;
1923f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    trace_ctx->trace_slice_size = p->slice_data_size;
1924f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
1925f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\t--VASliceParameterBufferVC1\n");
1926f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tslice_data_size = %d\n", p->slice_data_size);
1927f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tslice_data_offset = %d\n", p->slice_data_offset);
1928f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tslice_data_flag = %d\n", p->slice_data_flag);
1929f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tmacroblock_offset = %d\n", p->macroblock_offset);
1930f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tslice_vertical_position = %d\n", p->slice_vertical_position);
1931f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
1932f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun}
1933f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
1934f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolunstatic void va_TraceVAEncSequenceParameterBufferVP8(
1935f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    VADisplay dpy,
1936a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
1937a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferID __maybe_unused buffer,
1938a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferType __maybe_unused type,
1939a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused size,
1940a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused num_elements,
1941f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    void *data)
1942f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun{
1943f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    VAEncSequenceParameterBufferVP8 *p = (VAEncSequenceParameterBufferVP8 *)data;
1944f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
1945f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    int i;
1946f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
1947f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\t--VAEncSequenceParameterBufferVP8\n");
1948f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
1949f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tbits_per_second = %d\n", p->bits_per_second);
1950f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\terror_resilient = %d\n", p->error_resilient);
1951f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tframe_height = %d\n", p->frame_height);
1952f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tframe_width = %d\n", p->frame_width);
1953f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tframe_height_scale = %d\n", p->frame_height_scale);
1954f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tframe_width_scale = %d\n", p->frame_width_scale);
1955f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tkf_auto = %d\n", p->kf_auto);
1956f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tkf_max_dist = %d\n", p->kf_max_dist);
1957f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tkf_min_dist = %d\n", p->kf_min_dist);
1958f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tintra_period = %d\n", p->intra_period);
1959f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
1960f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    for(i = 0; i<4; ++i)
196188912d09886f431619dc966776a85976129f2b24Austin Yuan        va_TraceMsg(trace_ctx, "\treference_frames[%d] = 0x%08x\n", i, p->reference_frames[i]);
196221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
1963f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
1964b0fac498ca4863166252f1268fda83394db54153Fei Jiang
1965f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    return;
1966b0fac498ca4863166252f1268fda83394db54153Fei Jiang}
1967b0fac498ca4863166252f1268fda83394db54153Fei Jiang
1968f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolunstatic void va_TraceVAEncPictureParameterBufferVP8(
1969f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    VADisplay dpy,
1970a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
1971a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferID __maybe_unused uffer,
1972a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferType __maybe_unused type,
1973a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused size,
1974a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused num_elements,
1975f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    void *data)
1976f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun{
1977f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    VAEncPictureParameterBufferVP8 *p = (VAEncPictureParameterBufferVP8 *)data;
1978f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
1979f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    int i;
1980f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
1981f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\t--VAEncPictureParameterBufferVP8\n");
198288912d09886f431619dc966776a85976129f2b24Austin Yuan
198388912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\treconstructed_frame = 0x%08x\n", p->reconstructed_frame);
198488912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tref_last_frame = 0x%08x\n", p->ref_last_frame);
198588912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tref_gf_frame = 0x%08x\n", p->ref_gf_frame);
198688912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tref_arf_frame = 0x%08x\n", p->ref_arf_frame);
198788912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tcoded_buf = 0x%08x\n", p->coded_buf);
1988f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
198988912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tref_flags.bits.force_kf = %d\n", p->ref_flags.bits.force_kf);
199088912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tref_flags.bits.no_ref_last = %d\n", p->ref_flags.bits.no_ref_last);
199188912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tref_flags.bits.no_ref_gf = %d\n", p->ref_flags.bits.no_ref_gf);
199288912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tref_flags.bits.no_ref_arf = %d\n", p->ref_flags.bits.no_ref_arf);
1993d86982adfbd5062d3d40f584face6f61b5c1a6d7bolunliu    va_TraceMsg(trace_ctx, "\tref_flags.bits.reserved = 0x%08x\n", p->ref_flags.bits.reserved);
19948c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
19958c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    va_TraceMsg(trace_ctx, "\tpic_flags.bits.frame_type = %d\n", p->pic_flags.bits.frame_type);
199688912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tpic_flags.bits.version = %d\n", p->pic_flags.bits.version);
199788912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tpic_flags.bits.show_frame = %d\n", p->pic_flags.bits.show_frame);
199888912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tpic_flags.bits.color_space = %d\n", p->pic_flags.bits.color_space);
199988912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tpic_flags.bits.recon_filter_type = %d\n", p->pic_flags.bits.recon_filter_type);
200088912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tpic_flags.bits.loop_filter_type = %d\n", p->pic_flags.bits.loop_filter_type);
200188912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tpic_flags.bits.auto_partitions = %d\n", p->pic_flags.bits.auto_partitions);
200288912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tpic_flags.bits.num_token_partitions = %d\n", p->pic_flags.bits.num_token_partitions);
200388912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tpic_flags.bits.clamping_type = %d\n", p->pic_flags.bits.clamping_type);
200488912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tpic_flags.bits.segmentation_enabled = %d\n", p->pic_flags.bits.segmentation_enabled);
200588912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tpic_flags.bits.update_mb_segmentation_map = %d\n", p->pic_flags.bits.update_mb_segmentation_map);
200688912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tpic_flags.bits.update_segment_feature_data = %d\n", p->pic_flags.bits.update_segment_feature_data);
200788912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tpic_flags.bits.loop_filter_adj_enable = %d\n", p->pic_flags.bits.loop_filter_adj_enable);
200888912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tpic_flags.bits.refresh_entropy_probs = %d\n", p->pic_flags.bits.refresh_entropy_probs);
200988912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tpic_flags.bits.refresh_golden_frame = %d\n", p->pic_flags.bits.refresh_golden_frame);
201088912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tpic_flags.bits.refresh_alternate_frame = %d\n", p->pic_flags.bits.refresh_alternate_frame);
201188912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tpic_flags.bits.refresh_last = %d\n", p->pic_flags.bits.refresh_last);
201288912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tpic_flags.bits.copy_buffer_to_golden = %d\n", p->pic_flags.bits.copy_buffer_to_golden);
201388912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tpic_flags.bits.copy_buffer_to_alternate = %d\n", p->pic_flags.bits.copy_buffer_to_alternate);
201488912d09886f431619dc966776a85976129f2b24Austin Yuan
201588912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tpic_flags.bits.sign_bias_golden = %d\n", p->pic_flags.bits.sign_bias_golden);
201688912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tpic_flags.bits.sign_bias_alternate = %d\n", p->pic_flags.bits.sign_bias_alternate);
201788912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tpic_flags.bits.mb_no_coeff_skip = %d\n", p->pic_flags.bits.mb_no_coeff_skip);
201888912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tpic_flags.bits.forced_lf_adjustment = %d\n", p->pic_flags.bits.forced_lf_adjustment);
201988912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tpic_flags.bits.reserved = %d\n", p->pic_flags.bits.reserved);
2020f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
2021f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
2022f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    for(i=0;i<4;i++)
202388912d09886f431619dc966776a85976129f2b24Austin Yuan       va_TraceMsg(trace_ctx, "\tloop_filter_level[%d] = %d\n", i, p->loop_filter_level[i]);
2024f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    for(i=0;i<4;i++)
2025f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun       va_TraceMsg(trace_ctx, "\tref_lf_delta[%d] = %d\n", i, p->ref_lf_delta[i]);
202688912d09886f431619dc966776a85976129f2b24Austin Yuan    for(i=0;i<4;i++)
202788912d09886f431619dc966776a85976129f2b24Austin Yuan       va_TraceMsg(trace_ctx, "\tmode_lf_delta[%d] = %d\n", i, p->mode_lf_delta[i]);
202888912d09886f431619dc966776a85976129f2b24Austin Yuan
202988912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tsharpness_level = %d\n", p->sharpness_level);
203088912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tclamp_qindex_high = %d\n", p->clamp_qindex_high);
203188912d09886f431619dc966776a85976129f2b24Austin Yuan    va_TraceMsg(trace_ctx, "\tclamp_qindex_low = %d\n", p->clamp_qindex_low);
2032f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
2033f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
2034f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
2035f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    return;
2036f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun}
2037f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
20380f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuanstatic void va_TraceVAPictureParameterBufferVP8(
20390f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    VADisplay dpy,
2040a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
2041a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferID __maybe_unused buffer,
2042a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferType __maybe_unused type,
2043a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused size,
2044a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused num_elements,
20450f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    void *data)
20460f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan{
20470f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    char tmp[1024];
20480f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    VAPictureParameterBufferVP8 *p = (VAPictureParameterBufferVP8 *)data;
20490f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    DPY2TRACECTX(dpy);
20500f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    int i,j;
20510f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan
20520f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\t--VAPictureParameterBufferVP8\n");
20530f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan
20540f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tframe_width = %d\n", p->frame_width);
20550f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tframe_height = %d\n", p->frame_height);
20560f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tlast_ref_frame = %x\n", p->last_ref_frame);
20570f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tgolden_ref_frame = %x\n", p->golden_ref_frame);
20580f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\talt_ref_frame = %x\n", p->alt_ref_frame);
20590f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tout_of_loop_frame = %x\n", p->out_of_loop_frame);
20600f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan
20610f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tkey_frame = %d\n", p->pic_fields.bits.key_frame);
20620f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tversion = %d\n", p->pic_fields.bits.version);
20630f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tsegmentation_enabled = %d\n", p->pic_fields.bits.segmentation_enabled);
20640f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tupdate_mb_segmentation_map = %d\n", p->pic_fields.bits.update_mb_segmentation_map);
20650f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tupdate_segment_feature_data = %d\n", p->pic_fields.bits.update_segment_feature_data);
20660f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tfilter_type = %d\n", p->pic_fields.bits.filter_type);
20670f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tsharpness_level = %d\n", p->pic_fields.bits.sharpness_level);
20680f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tloop_filter_adj_enable = %d\n", p->pic_fields.bits.loop_filter_adj_enable);
20690f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tmode_ref_lf_delta_update = %d\n", p->pic_fields.bits.mode_ref_lf_delta_update);
20700f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tsign_bias_golden = %d\n", p->pic_fields.bits.sign_bias_golden);
20710f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tsign_bias_alternate = %d\n", p->pic_fields.bits.sign_bias_alternate);
20720f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tmb_no_coeff_skip = %d\n", p->pic_fields.bits.mb_no_coeff_skip);
20730f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tloop_filter_disable = %d\n", p->pic_fields.bits.loop_filter_disable);
20740f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan
20750f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tmb_segment_tree_probs: 0x%2x, 0x%2x, 0x%2x\n",
20760f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan        p->mb_segment_tree_probs[0], p->mb_segment_tree_probs[1], p->mb_segment_tree_probs[2]);
20770f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan
20780f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tloop_filter_level: %d, %d, %d, %d\n",
20790f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan        p->loop_filter_level[0], p->loop_filter_level[1], p->loop_filter_level[2], p->loop_filter_level[3]);
20800f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan
20810f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tloop_filter_deltas_ref_frame: %d, %d, %d, %d\n",
20820f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan        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]);
20830f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan
20840f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tloop_filter_deltas_mode: %d, %d, %d, %d\n",
20850f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan        p->loop_filter_deltas_mode[0], p->loop_filter_deltas_mode[1], p->loop_filter_deltas_mode[2], p->loop_filter_deltas_mode[3]);
20860f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan
20870f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tprob_skip_false = %2x\n", p->prob_skip_false);
20880f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tprob_intra = %2x\n", p->prob_intra);
20890f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tprob_last = %2x\n", p->prob_last);
20900f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tprob_gf = %2x\n", p->prob_gf);
20910f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan
20920f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\ty_mode_probs: 0x%2x, 0x%2x, 0x%2x, 0x%2x\n",
20930f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan        p->y_mode_probs[0], p->y_mode_probs[1], p->y_mode_probs[2], p->y_mode_probs[3]);
20940f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan
20950f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tuv_mode_probs: 0x%2x, 0x%2x, 0x%2x\n",
20960f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan        p->uv_mode_probs[0], p->uv_mode_probs[1], p->uv_mode_probs[2]);
20970f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan
20980f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tmv_probs[2][19]:\n");
20990f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    for(i = 0; i<2; ++i) {
21000f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan        memset(tmp, 0, sizeof tmp);
21010f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan        for (j=0; j<19; j++)
21020f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan            sprintf(tmp + strlen(tmp), "%2x ", p->mv_probs[i][j]);
21030f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan        va_TraceMsg(trace_ctx,"\t\t[%d] = %s\n", i, tmp);
21040f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    }
21050f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan
21060f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tbool_coder_ctx: range = %02x, value = %02x, count = %d\n",
21070f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan        p->bool_coder_ctx.range, p->bool_coder_ctx.value, p->bool_coder_ctx.count);
21080f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan
21090f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, NULL);
21100f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan
21110f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    return;
21120f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan}
21130f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan
21140f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuanstatic void va_TraceVASliceParameterBufferVP8(
21150f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    VADisplay dpy,
2116a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
2117a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferID __maybe_unused buffer,
2118a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferType __maybe_unused type,
2119a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused size,
2120a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused num_elements,
21210f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    void *data)
21220f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan{
21230f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    VASliceParameterBufferVP8 *p = (VASliceParameterBufferVP8 *)data;
21240f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    DPY2TRACECTX(dpy);
21250f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    int i;
21260f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan
21270f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\t--VASliceParameterBufferVP8\n");
21280f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan
21290f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tslice_data_size = %d\n", p->slice_data_size);
21300f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tslice_data_offset = %d\n", p->slice_data_offset);
21310f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tslice_data_flag = %d\n", p->slice_data_flag);
21320f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tmacroblock_offset = %d\n", p->macroblock_offset);
21330f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tnum_of_partitions = %d\n", p->num_of_partitions);
21340f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan
21350f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    for(i = 0; i<9; ++i)
21360f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan        va_TraceMsg(trace_ctx, "\tpartition_size[%d] = %d\n", i, p->partition_size[i]);
21370f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan
21380f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, NULL);
21390f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan
21400f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    return;
21410f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan}
21420f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan
21430f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuanstatic void va_TraceVAIQMatrixBufferVP8(
21440f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    VADisplay dpy,
2145a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
2146a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferID __maybe_unused buffer,
2147a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferType __maybe_unused type,
2148a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused size,
2149a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused num_elements,
21500f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    void *data)
21510f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan{
21520f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    char tmp[1024];
21530f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    VAIQMatrixBufferVP8 *p = (VAIQMatrixBufferVP8 *)data;
21540f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    DPY2TRACECTX(dpy);
21550f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    int i,j;
2156f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
21570f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\t--VAIQMatrixBufferVP8\n");
21580f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan
21590f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\tquantization_index[4][6]=\n");
21600f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    for (i = 0; i < 4; i++) {
21610f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan        memset(tmp, 0, sizeof tmp);
21620f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan        for (j = 0; j < 6; j++)
21630f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan            sprintf(tmp + strlen(tmp), "%4x, ", p->quantization_index[i][j]);
21640f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan        va_TraceMsg(trace_ctx,"\t\t[%d] = %s\n", i, tmp);
21650f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    }
21660f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan
21670f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, NULL);
21680f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan
21690f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    return;
21700f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan}
21710f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuanstatic void va_TraceVAProbabilityBufferVP8(
21720f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    VADisplay dpy,
2173a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
2174a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferID __maybe_unused buffer,
2175a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferType __maybe_unused type,
2176a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused size,
2177a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused num_elements,
21780f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    void *data)
21790f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan{
21800f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    char tmp[1024];
21810f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    VAProbabilityDataBufferVP8 *p = (VAProbabilityDataBufferVP8 *)data;
21820f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    DPY2TRACECTX(dpy);
21830f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    int i,j,k,l;
21840f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan
21850f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, "\t--VAProbabilityDataBufferVP8\n");
21860f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan
21870f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    for (i = 0; i < 4; i++)
21880f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan        for (j = 0; j < 8; j++) {
21890f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan            memset(tmp, 0, sizeof tmp);
21900f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan            for (k=0; k<3; k++)
21910f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan                for (l=0; l<11; l++)
21920f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan                    sprintf(tmp + strlen(tmp), "%2x, ", p->dct_coeff_probs[i][j][k][l]);
21930f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan            va_TraceMsg(trace_ctx,"\t\t[%d, %d] = %s\n", i, j, tmp);
21940f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan        }
21950f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan
21960f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    va_TraceMsg(trace_ctx, NULL);
21970f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan
21980f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    return;
21990f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan}
2200f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
2201293abef4f8172cc061d26f9d909c281b4190b514Bruce Bearevoid va_TraceBeginPicture(
2202b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VADisplay dpy,
2203a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
2204b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VASurfaceID render_target
2205b0fac498ca4863166252f1268fda83394db54153Fei Jiang)
2206b0fac498ca4863166252f1268fda83394db54153Fei Jiang{
2207f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
2208b0fac498ca4863166252f1268fda83394db54153Fei Jiang
220921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    TRACE_FUNCNAME(idx);
2210cceaa0568f77a7452857559614100b71fb36ee3awangkun
2211f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\trender_targets = 0x%08x\n", render_target);
2212f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tframe_count  = #%d\n", trace_ctx->trace_frame_no);
2213f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
2214b0fac498ca4863166252f1268fda83394db54153Fei Jiang
2215f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    trace_ctx->trace_rendertarget = render_target; /* for surface data dump after vaEndPicture */
2216b0fac498ca4863166252f1268fda83394db54153Fei Jiang
2217f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    trace_ctx->trace_frame_no++;
2218f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    trace_ctx->trace_slice_no = 0;
2219b0fac498ca4863166252f1268fda83394db54153Fei Jiang}
2220b0fac498ca4863166252f1268fda83394db54153Fei Jiang
2221901c77a7aa491f56b63af7b655b67439481e4177Fei Jiangstatic void va_TraceMPEG2Buf(
2222b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VADisplay dpy,
2223b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VAContextID context,
2224b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VABufferID buffer,
2225b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VABufferType type,
2226b0fac498ca4863166252f1268fda83394db54153Fei Jiang    unsigned int size,
2227b0fac498ca4863166252f1268fda83394db54153Fei Jiang    unsigned int num_elements,
2228b0fac498ca4863166252f1268fda83394db54153Fei Jiang    void *pbuf
2229b0fac498ca4863166252f1268fda83394db54153Fei Jiang)
2230b0fac498ca4863166252f1268fda83394db54153Fei Jiang{
2231b0fac498ca4863166252f1268fda83394db54153Fei Jiang    switch (type) {
2232b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAPictureParameterBufferType:
2233b0fac498ca4863166252f1268fda83394db54153Fei Jiang        va_TraceVAPictureParameterBufferMPEG2(dpy, context, buffer, type, size, num_elements, pbuf);
2234b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2235b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAIQMatrixBufferType:
2236b0fac498ca4863166252f1268fda83394db54153Fei Jiang        va_TraceVAIQMatrixBufferMPEG2(dpy, context, buffer, type, size, num_elements, pbuf);
2237b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2238b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VABitPlaneBufferType:
223921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2240b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2241b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VASliceGroupMapBufferType:
224221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2243b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2244b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VASliceParameterBufferType:
2245b0fac498ca4863166252f1268fda83394db54153Fei Jiang        va_TraceVASliceParameterBufferMPEG2(dpy, context, buffer, type, size, num_elements, pbuf);
2246b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2247b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VASliceDataBufferType:
2248b0fac498ca4863166252f1268fda83394db54153Fei Jiang        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2249b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2250b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAMacroblockParameterBufferType:
225121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2252b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2253b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAResidualDataBufferType:
225421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2255b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2256b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VADeblockingParameterBufferType:
225721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2258b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2259b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAImageBufferType:
2260b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2261b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAProtectedSliceDataBufferType:
226221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2263b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2264b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAEncCodedBufferType:
2265b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2266b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAEncSequenceParameterBufferType:
2267b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2268b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAEncPictureParameterBufferType:
2269b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2270b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAEncSliceParameterBufferType:
2271b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
227221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    default:
227321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        break;
2274b0fac498ca4863166252f1268fda83394db54153Fei Jiang    }
2275b0fac498ca4863166252f1268fda83394db54153Fei Jiang}
2276b0fac498ca4863166252f1268fda83394db54153Fei Jiang
227750ce1dbe8a3402d56c94238710964507db7d99e1Kun Wangstatic void va_TraceVAEncSequenceParameterBufferH263(
227850ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang    VADisplay dpy,
2279a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
2280a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferID __maybe_unused buffer,
2281a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferType __maybe_unused type,
2282a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused size,
2283a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused num_elements,
228450ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang    void *data)
228550ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang{
228650ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang    VAEncSequenceParameterBufferH263 *p = (VAEncSequenceParameterBufferH263 *)data;
2287f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
228850ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang
2289f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\t--VAEncSequenceParameterBufferH263\n");
229050ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang
2291f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tintra_period = %d\n", p->intra_period);
2292f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tbits_per_second = %d\n", p->bits_per_second);
2293f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tframe_rate = %d\n", p->frame_rate);
2294f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tinitial_qp = %d\n", p->initial_qp);
2295f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tmin_qp = %d\n", p->min_qp);
2296f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
229750ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang
229850ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang    return;
229950ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang}
230050ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang
230150ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang
230250ce1dbe8a3402d56c94238710964507db7d99e1Kun Wangstatic void va_TraceVAEncPictureParameterBufferH263(
230350ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang    VADisplay dpy,
2304a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
2305a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferID __maybe_unused buffer,
2306a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferType __maybe_unused type,
2307a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused size,
2308a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused num_elements,
230950ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang    void *data)
231050ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang{
231150ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang    VAEncPictureParameterBufferH263 *p = (VAEncPictureParameterBufferH263 *)data;
2312f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
2313a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan
2314f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\t--VAEncPictureParameterBufferH263\n");
2315f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\treference_picture = 0x%08x\n", p->reference_picture);
2316f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\treconstructed_picture = 0x%08x\n", p->reconstructed_picture);
2317f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tcoded_buf = %08x\n", p->coded_buf);
2318f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpicture_width = %d\n", p->picture_width);
2319f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpicture_height = %d\n", p->picture_height);
2320f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpicture_type = 0x%08x\n", p->picture_type);
2321f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
232250ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang
232350ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang    return;
232450ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang}
232550ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang
2326cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wangstatic void va_TraceVAEncPictureParameterBufferJPEG(
2327cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang    VADisplay dpy,
2328a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
2329a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferID __maybe_unused buffer,
2330a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferType __maybe_unused type,
2331a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused size,
2332a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused num_elements,
2333cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang    void *data)
2334cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang{
2335cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang    VAEncPictureParameterBufferJPEG *p = (VAEncPictureParameterBufferJPEG *)data;
23367d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    int i;
2337a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan
2338f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
2339f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
2340f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\t--VAEncPictureParameterBufferJPEG\n");
2341f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\treconstructed_picture = 0x%08x\n", p->reconstructed_picture);
2342f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tcoded_buf = %08x\n", p->coded_buf);
2343f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpicture_width = %d\n", p->picture_width);
2344f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpicture_height = %d\n", p->picture_height);
2345f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpic_flags.bits.profile = %d\n", p->pic_flags.bits.profile);
2346f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpic_flags.bits.progressive = %d\n", p->pic_flags.bits.profile);
2347f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpic_flags.bits.huffman = %d\n", p->pic_flags.bits.huffman);
2348f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpic_flags.bits.interleaved = %d\n", p->pic_flags.bits.interleaved);
2349f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tpic_flags.bits.differential = %d\n", p->pic_flags.bits.differential);
2350f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tsample_bit_depth = %d\n", p->sample_bit_depth);
2351f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tnum_scan = %d\n", p->num_scan);
2352f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tnum_components = %d\n", p->num_components);
235390f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN    for (i=0; i<p->num_components; i++)
235490f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN        va_TraceMsg(trace_ctx, "\tcomponent_id[%d] = %d\n", i, p->component_id[i]);
235590f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN
235690f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN    if (p->quality > 0)
235790f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN        va_TraceMsg(trace_ctx, "\tquality = %d\n", p->quality);
235890f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN    else
235990f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN        va_TraceMsg(trace_ctx, "\tquantiser_table_selector[] = %d %d %d %d\n",
236090f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN                    p->quantiser_table_selector[0],
236190f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN                    p->quantiser_table_selector[1],
236290f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN                    p->quantiser_table_selector[2],
236390f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN                    p->quantiser_table_selector[3]);
236490f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN
2365f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
2366cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang
2367cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang    return;
2368cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang}
2369cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang
2370cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wangstatic void va_TraceVAEncQMatrixBufferJPEG(
2371cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang    VADisplay dpy,
2372a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
2373a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferID __maybe_unused buffer,
2374a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferType __maybe_unused type,
2375a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused size,
2376a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused num_elements,
2377cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang    void *data)
2378cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang{
2379cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang    VAQMatrixBufferJPEG *p = (VAQMatrixBufferJPEG *)data;
2380f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
2381a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan
2382f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\t--VAQMatrixBufferJPEG\n");
238390f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN    va_TraceMsg(trace_ctx, "\tload_lum_quantiser_matrix = %d\n", p->load_lum_quantiser_matrix);
2384cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang    if (p->load_lum_quantiser_matrix) {
2385cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang        int i;
238690f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN        for (i = 0; i < 8; i++) {
238790f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN            va_TraceMsg(trace_ctx,
238890f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN                        "\t\t0x%02x 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x\n",
238990f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN                        p->lum_quantiser_matrix[i*8],
239090f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN                        p->lum_quantiser_matrix[i*8 + 1],
239190f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN                        p->lum_quantiser_matrix[i*8 + 2],
239290f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN                        p->lum_quantiser_matrix[i*8 + 3],
239390f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN                        p->lum_quantiser_matrix[i*8 + 4],
239490f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN                        p->lum_quantiser_matrix[i*8 + 5],
239590f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN                        p->lum_quantiser_matrix[i*8 + 6],
239690f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN                        p->lum_quantiser_matrix[i*8 + 7]);
2397cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang        }
2398cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang    }
239990f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN
240090f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN    va_TraceMsg(trace_ctx, "\tload_chroma_quantiser_matrix = %d\n", p->load_chroma_quantiser_matrix);
2401cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang    if (p->load_chroma_quantiser_matrix) {
2402cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang        int i;
240390f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN        for (i = 0; i < 8; i++) {
240490f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN            va_TraceMsg(trace_ctx,
240590f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN                        "\t\t0x%02x 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x\n",
240690f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN                        p->chroma_quantiser_matrix[i*8],
240790f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN                        p->chroma_quantiser_matrix[i*8 + 1],
240890f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN                        p->chroma_quantiser_matrix[i*8 + 2],
240990f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN                        p->chroma_quantiser_matrix[i*8 + 3],
241090f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN                        p->chroma_quantiser_matrix[i*8 + 4],
241190f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN                        p->chroma_quantiser_matrix[i*8 + 5],
241290f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN                        p->chroma_quantiser_matrix[i*8 + 6],
241390f61610cbc67b905e2995b3d1f122e137c7a7bcJing SUN                        p->chroma_quantiser_matrix[i*8 + 7]);
2414cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang        }
2415cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang    }
2416cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang
2417f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
2418cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang
2419cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang    return;
2420cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang}
242150ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang
24227d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan
242350ce1dbe8a3402d56c94238710964507db7d99e1Kun Wangstatic void va_TraceH263Buf(
242450ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang    VADisplay dpy,
2425a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
2426a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferID __maybe_unused buffer,
2427a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferType __maybe_unused type,
2428a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused size,
2429a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused num_elements,
243050ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang    void *pbuf
243150ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang)
243250ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang{
2433a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    DPY2TRACECTX(dpy);
2434a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan
243550ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang    switch (type) {
2436e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan    case VAPictureParameterBufferType:/* print MPEG4 buffer */
2437e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan        va_TraceVAPictureParameterBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf);
2438e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan        break;
2439e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan    case VAIQMatrixBufferType:/* print MPEG4 buffer */
2440e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan        va_TraceVAIQMatrixBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf);
2441e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan        break;
2442e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan    case VABitPlaneBufferType:/* print MPEG4 buffer */
2443e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2444e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan        break;
244550ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang    case VASliceGroupMapBufferType:
2446e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan        break;
2447e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan    case VASliceParameterBufferType:/* print MPEG4 buffer */
2448e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan        va_TraceVASliceParameterBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf);
2449e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan        break;
245050ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang    case VASliceDataBufferType:
2451e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2452e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan        break;
245350ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang    case VAMacroblockParameterBufferType:
2454e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2455e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan        break;
245650ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang    case VAResidualDataBufferType:
2457e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2458e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan        break;
245950ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang    case VADeblockingParameterBufferType:
2460e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2461e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan        break;
246250ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang    case VAImageBufferType:
2463e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan        break;
246450ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang    case VAProtectedSliceDataBufferType:
246550ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
246650ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang        break;
246750ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang    case VAEncCodedBufferType:
246850ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang        break;
246950ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang    case VAEncSequenceParameterBufferType:
247050ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang        va_TraceVAEncSequenceParameterBufferH263(dpy, context, buffer, type, size, num_elements, pbuf);
247150ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang        break;
247250ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang    case VAEncPictureParameterBufferType:
247350ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang        va_TraceVAEncPictureParameterBufferH263(dpy, context, buffer, type, size, num_elements, pbuf);
247450ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang        break;
247550ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang    case VAEncSliceParameterBufferType:
247650ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang        va_TraceVAEncSliceParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf);
247750ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang        break;
24782efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan    case VAEncPackedHeaderParameterBufferType:
24792efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan        va_TraceVAEncPackedHeaderParameterBufferType(dpy, context, buffer, type, size, num_elements, pbuf);
24802efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan        break;
248150ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang    default:
248235f195a578d0bec4a0aa84d6162eda7e3a4a4db9Austin Yuan        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
248350ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang        break;
248450ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang    }
248550ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang}
248650ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang
2487cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang
2488cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wangstatic void va_TraceJPEGBuf(
2489cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang    VADisplay dpy,
2490cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang    VAContextID context,
2491cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang    VABufferID buffer,
2492cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang    VABufferType type,
2493cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang    unsigned int size,
2494cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang    unsigned int num_elements,
2495cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang    void *pbuf
2496cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang)
2497cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang{
2498cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang    switch (type) {
24999992891b62398a80bd0867f8d167c0faa49861fdCheng Yao    case VABitPlaneBufferType:
2500cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang    case VASliceGroupMapBufferType:
2501cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang    case VASliceDataBufferType:
2502cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang    case VAMacroblockParameterBufferType:
2503cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang    case VAResidualDataBufferType:
2504cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang    case VADeblockingParameterBufferType:
2505cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang    case VAImageBufferType:
2506cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang    case VAProtectedSliceDataBufferType:
2507cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang    case VAEncCodedBufferType:
2508cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang    case VAEncSequenceParameterBufferType:
2509cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2510cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang        break;
25117d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    case VAEncSliceParameterBufferType:
25127d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan        va_TraceVAEncPictureParameterBufferJPEG(dpy, context, buffer, type, size, num_elements, pbuf);
25137d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan        break;
25149992891b62398a80bd0867f8d167c0faa49861fdCheng Yao    case VAPictureParameterBufferType:
25159992891b62398a80bd0867f8d167c0faa49861fdCheng Yao        va_TraceVAPictureParameterBufferJPEG(dpy, context, buffer, type, size, num_elements, pbuf);
25169992891b62398a80bd0867f8d167c0faa49861fdCheng Yao        break;
25179992891b62398a80bd0867f8d167c0faa49861fdCheng Yao    case VAIQMatrixBufferType:
25189992891b62398a80bd0867f8d167c0faa49861fdCheng Yao        va_TraceVAIQMatrixBufferJPEG(dpy, context, buffer, type, size, num_elements, pbuf);
25199992891b62398a80bd0867f8d167c0faa49861fdCheng Yao        break;
25209992891b62398a80bd0867f8d167c0faa49861fdCheng Yao    case VASliceParameterBufferType:
25219992891b62398a80bd0867f8d167c0faa49861fdCheng Yao        va_TraceVASliceParameterBufferJPEG(dpy, context, buffer, type, size, num_elements, pbuf);
25229992891b62398a80bd0867f8d167c0faa49861fdCheng Yao        break;
25239992891b62398a80bd0867f8d167c0faa49861fdCheng Yao    case VAHuffmanTableBufferType:
25249992891b62398a80bd0867f8d167c0faa49861fdCheng Yao        va_TraceVAHuffmanTableBufferJPEG(dpy, context, buffer, type, size, num_elements, pbuf);
25259992891b62398a80bd0867f8d167c0faa49861fdCheng Yao        break;
2526cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang    case VAEncPictureParameterBufferType:
2527cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang        va_TraceVAEncPictureParameterBufferJPEG(dpy, context, buffer, type, size, num_elements, pbuf);
2528cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang        break;
2529cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang    case VAQMatrixBufferType:
2530cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang        va_TraceVAEncQMatrixBufferJPEG(dpy, context, buffer, type, size, num_elements, pbuf);
2531cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang        break;
2532cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang    default:
253335f195a578d0bec4a0aa84d6162eda7e3a4a4db9Austin Yuan        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2534cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang        break;
2535cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang    }
2536cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang}
2537cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang
2538901c77a7aa491f56b63af7b655b67439481e4177Fei Jiangstatic void va_TraceMPEG4Buf(
2539b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VADisplay dpy,
2540b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VAContextID context,
2541b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VABufferID buffer,
2542b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VABufferType type,
2543b0fac498ca4863166252f1268fda83394db54153Fei Jiang    unsigned int size,
2544b0fac498ca4863166252f1268fda83394db54153Fei Jiang    unsigned int num_elements,
2545b0fac498ca4863166252f1268fda83394db54153Fei Jiang    void *pbuf
2546b0fac498ca4863166252f1268fda83394db54153Fei Jiang)
2547b0fac498ca4863166252f1268fda83394db54153Fei Jiang{
2548b0fac498ca4863166252f1268fda83394db54153Fei Jiang    switch (type) {
2549b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAPictureParameterBufferType:
2550b0fac498ca4863166252f1268fda83394db54153Fei Jiang        va_TraceVAPictureParameterBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf);
2551b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2552b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAIQMatrixBufferType:
2553b0fac498ca4863166252f1268fda83394db54153Fei Jiang        va_TraceVAIQMatrixBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf);
2554b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2555b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VABitPlaneBufferType:
255621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2557b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2558b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VASliceGroupMapBufferType:
2559b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2560b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VASliceParameterBufferType:
2561b0fac498ca4863166252f1268fda83394db54153Fei Jiang        va_TraceVASliceParameterBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf);
2562b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2563b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VASliceDataBufferType:
2564b0fac498ca4863166252f1268fda83394db54153Fei Jiang        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2565b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2566b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAMacroblockParameterBufferType:
256721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2568b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2569b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAResidualDataBufferType:
257021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2571b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2572b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VADeblockingParameterBufferType:
257321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2574b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2575b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAImageBufferType:
2576b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2577b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAProtectedSliceDataBufferType:
2578b0fac498ca4863166252f1268fda83394db54153Fei Jiang        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2579b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2580b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAEncCodedBufferType:
2581b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2582b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAEncSequenceParameterBufferType:
258350ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang        va_TraceVAEncSequenceParameterBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf);
2584b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2585b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAEncPictureParameterBufferType:
258650ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang        va_TraceVAEncPictureParameterBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf);
2587b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2588b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAEncSliceParameterBufferType:
258921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        va_TraceVAEncSliceParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf);
2590b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2591b0fac498ca4863166252f1268fda83394db54153Fei Jiang    default:
259235f195a578d0bec4a0aa84d6162eda7e3a4a4db9Austin Yuan        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2593b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2594b0fac498ca4863166252f1268fda83394db54153Fei Jiang    }
2595b0fac498ca4863166252f1268fda83394db54153Fei Jiang}
2596b0fac498ca4863166252f1268fda83394db54153Fei Jiang
2597b0fac498ca4863166252f1268fda83394db54153Fei Jiang
2598901c77a7aa491f56b63af7b655b67439481e4177Fei Jiangstatic void va_TraceH264Buf(
2599b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VADisplay dpy,
2600b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VAContextID context,
2601b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VABufferID buffer,
2602b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VABufferType type,
2603b0fac498ca4863166252f1268fda83394db54153Fei Jiang    unsigned int size,
2604b0fac498ca4863166252f1268fda83394db54153Fei Jiang    unsigned int num_elements,
2605b0fac498ca4863166252f1268fda83394db54153Fei Jiang    void *pbuf
2606b0fac498ca4863166252f1268fda83394db54153Fei Jiang)
2607b0fac498ca4863166252f1268fda83394db54153Fei Jiang{
2608f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
260921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
2610b0fac498ca4863166252f1268fda83394db54153Fei Jiang    switch (type) {
2611b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAPictureParameterBufferType:
2612901c77a7aa491f56b63af7b655b67439481e4177Fei Jiang        va_TraceVAPictureParameterBufferH264(dpy, context, buffer, type, size, num_elements, pbuf);
2613b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2614b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAIQMatrixBufferType:
2615b0fac498ca4863166252f1268fda83394db54153Fei Jiang        va_TraceVAIQMatrixBufferH264(dpy, context, buffer, type, size, num_elements, pbuf);
2616b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2617b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VABitPlaneBufferType:
261821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2619b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2620b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VASliceGroupMapBufferType:
262121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2622b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2623b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VASliceParameterBufferType:
2624b0fac498ca4863166252f1268fda83394db54153Fei Jiang        va_TraceVASliceParameterBufferH264(dpy, context, buffer, type, size, num_elements, pbuf);
2625b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2626b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VASliceDataBufferType:
2627f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceVABuffers(dpy, context, buffer, type, trace_ctx->trace_slice_size, num_elements, pbuf);
2628b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2629b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAMacroblockParameterBufferType:
263021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2631b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2632b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAResidualDataBufferType:
263321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2634b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2635b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VADeblockingParameterBufferType:
263621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2637b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2638b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAImageBufferType:
2639b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2640b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAProtectedSliceDataBufferType:
2641b0fac498ca4863166252f1268fda83394db54153Fei Jiang        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2642b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2643b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAEncCodedBufferType:
2644b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2645b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAEncSequenceParameterBufferType:
264621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        va_TraceVAEncSequenceParameterBufferH264(dpy, context, buffer, type, size, num_elements, pbuf);
2647b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2648b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAEncPictureParameterBufferType:
264921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        va_TraceVAEncPictureParameterBufferH264(dpy, context, buffer, type, size, num_elements, pbuf);
2650b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2651b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAEncSliceParameterBufferType:
2652ac1c6d1120d34338e679ac23f1348ade77b61317Elaine Wang        if (size == sizeof(VAEncSliceParameterBuffer))
2653ac1c6d1120d34338e679ac23f1348ade77b61317Elaine Wang            va_TraceVAEncSliceParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf);
2654ac1c6d1120d34338e679ac23f1348ade77b61317Elaine Wang        else
2655ac1c6d1120d34338e679ac23f1348ade77b61317Elaine Wang            va_TraceVAEncSliceParameterBufferH264(dpy, context, buffer, type, size, num_elements, pbuf);
265621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        break;
26572efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan    case VAEncPackedHeaderParameterBufferType:
26582efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan        va_TraceVAEncPackedHeaderParameterBufferType(dpy, context, buffer, type, size, num_elements, pbuf);
26592efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan        break;
26602efbafef6046e1d9372c58de2b0d7b03377c686cAustin Yuan
266121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    case VAEncMiscParameterBufferType:
266221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        va_TraceVAEncMiscParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf);
2663b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2664b0fac498ca4863166252f1268fda83394db54153Fei Jiang    default:
266535f195a578d0bec4a0aa84d6162eda7e3a4a4db9Austin Yuan        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2666b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2667b0fac498ca4863166252f1268fda83394db54153Fei Jiang    }
2668b0fac498ca4863166252f1268fda83394db54153Fei Jiang}
2669b0fac498ca4863166252f1268fda83394db54153Fei Jiang
2670f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolunstatic void va_TraceVP8Buf(
2671f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    VADisplay dpy,
2672f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    VAContextID context,
2673f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    VABufferID buffer,
2674f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    VABufferType type,
2675f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    unsigned int size,
2676f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    unsigned int num_elements,
2677f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    void *pbuf
2678f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun)
2679f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun{
2680f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
2681f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
2682f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    switch (type) {
2683f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    case VAPictureParameterBufferType:
26846af1f7eccc8c67c1f3a4c989a4f0b69804ef973dTang, XiaoxiX        va_TraceVAPictureParameterBufferVP8(dpy, context, buffer, type, size, num_elements, pbuf);
2685f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        break;
2686f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    case VAIQMatrixBufferType:
26876af1f7eccc8c67c1f3a4c989a4f0b69804ef973dTang, XiaoxiX        va_TraceVAIQMatrixBufferVP8(dpy, context, buffer, type, size, num_elements, pbuf);
2688f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        break;
2689f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    case VABitPlaneBufferType:
2690f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        break;
2691f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    case VASliceGroupMapBufferType:
2692f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        break;
2693f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    case VASliceParameterBufferType:
26946af1f7eccc8c67c1f3a4c989a4f0b69804ef973dTang, XiaoxiX        va_TraceVASliceParameterBufferVP8(dpy, context, buffer, type, size, num_elements, pbuf);
26956af1f7eccc8c67c1f3a4c989a4f0b69804ef973dTang, XiaoxiX        break;
2696f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    case VASliceDataBufferType:
26976af1f7eccc8c67c1f3a4c989a4f0b69804ef973dTang, XiaoxiX        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2698f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        break;
26990f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan    case VAProbabilityBufferType:
27000f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan        va_TraceVAProbabilityBufferVP8(dpy, context, buffer, type, size, num_elements, pbuf);
27010f5162def402b0b2fa7db332b323e7497b413cc1Austin Yuan        break;
2702f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    case VAMacroblockParameterBufferType:
2703f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        break;
2704f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    case VAResidualDataBufferType:
2705f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        break;
2706f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    case VADeblockingParameterBufferType:
2707f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        break;
2708f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    case VAImageBufferType:
2709f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        break;
2710f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    case VAProtectedSliceDataBufferType:
2711f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        break;
2712f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    case VAEncCodedBufferType:
2713f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        break;
2714f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    case VAEncSequenceParameterBufferType:
2715f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceVAEncSequenceParameterBufferVP8(dpy, context, buffer, type, size, num_elements, pbuf);
2716f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        break;
2717f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    case VAEncPictureParameterBufferType:
2718f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceVAEncPictureParameterBufferVP8(dpy, context, buffer, type, size, num_elements, pbuf);
2719f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        break;
2720f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    case VAEncSliceParameterBufferType:
2721f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        break;
2722f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    case VAEncPackedHeaderParameterBufferType:
2723f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        break;
2724f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    case VAEncMiscParameterBufferType:
2725f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceVAEncMiscParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf);
2726f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        break;
2727f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    default:
2728f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2729f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        break;
2730f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    }
2731f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun}
2732f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
2733b0fac498ca4863166252f1268fda83394db54153Fei Jiang
2734901c77a7aa491f56b63af7b655b67439481e4177Fei Jiangstatic void va_TraceVC1Buf(
2735b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VADisplay dpy,
2736b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VAContextID context,
2737b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VABufferID buffer,
2738b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VABufferType type,
2739b0fac498ca4863166252f1268fda83394db54153Fei Jiang    unsigned int size,
2740b0fac498ca4863166252f1268fda83394db54153Fei Jiang    unsigned int num_elements,
2741b0fac498ca4863166252f1268fda83394db54153Fei Jiang    void *pbuf
2742b0fac498ca4863166252f1268fda83394db54153Fei Jiang)
2743b0fac498ca4863166252f1268fda83394db54153Fei Jiang{
2744f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
274521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
2746b0fac498ca4863166252f1268fda83394db54153Fei Jiang    switch (type) {
2747b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAPictureParameterBufferType:
2748b0fac498ca4863166252f1268fda83394db54153Fei Jiang        va_TraceVAPictureParameterBufferVC1(dpy, context, buffer, type, size, num_elements, pbuf);
2749b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2750b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAIQMatrixBufferType:
2751b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2752b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VABitPlaneBufferType:
2753b0fac498ca4863166252f1268fda83394db54153Fei Jiang        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2754b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2755b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VASliceGroupMapBufferType:
275621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2757b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2758b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VASliceParameterBufferType:
2759b0fac498ca4863166252f1268fda83394db54153Fei Jiang        va_TraceVASliceParameterBufferVC1(dpy, context, buffer, type, size, num_elements, pbuf);
2760b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2761b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VASliceDataBufferType:
2762f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceVABuffers(dpy, context, buffer, type, trace_ctx->trace_slice_size, num_elements, pbuf);
2763b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2764b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAMacroblockParameterBufferType:
276521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2766b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2767b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAResidualDataBufferType:
276821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2769b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2770b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VADeblockingParameterBufferType:
277121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2772b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2773b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAImageBufferType:
2774b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2775b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAProtectedSliceDataBufferType:
2776b0fac498ca4863166252f1268fda83394db54153Fei Jiang        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2777b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2778b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAEncCodedBufferType:
2779b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2780b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAEncSequenceParameterBufferType:
278121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2782b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2783b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAEncPictureParameterBufferType:
278421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2785b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2786b0fac498ca4863166252f1268fda83394db54153Fei Jiang    case VAEncSliceParameterBufferType:
278721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2788b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2789b0fac498ca4863166252f1268fda83394db54153Fei Jiang    default:
279035f195a578d0bec4a0aa84d6162eda7e3a4a4db9Austin Yuan        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2791b0fac498ca4863166252f1268fda83394db54153Fei Jiang        break;
2792b0fac498ca4863166252f1268fda83394db54153Fei Jiang    }
2793b0fac498ca4863166252f1268fda83394db54153Fei Jiang}
2794b0fac498ca4863166252f1268fda83394db54153Fei Jiang
27958c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuanstatic void
27968c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuanva_TraceProcFilterParameterBufferDeinterlacing(
27978c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    VADisplay dpy,
2798a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
27998c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    VAProcFilterParameterBufferBase *base
28008c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan)
28018c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan{
28028c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    VAProcFilterParameterBufferDeinterlacing *deint = (VAProcFilterParameterBufferDeinterlacing *)base;
28038c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
28048c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    DPY2TRACECTX(dpy);
28058c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
28068c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    va_TraceMsg(trace_ctx, "\t    type = %d\n", deint->type);
28078c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    va_TraceMsg(trace_ctx, "\t    algorithm = %d\n", deint->algorithm);
28088c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    va_TraceMsg(trace_ctx, "\t    flags = %d\n", deint->flags);
28098c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan}
28108c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
28118c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuanstatic void
28128c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuanva_TraceProcFilterParameterBufferColorBalance(
28138c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    VADisplay dpy,
2814a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
28158c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    VAProcFilterParameterBufferBase *base
28168c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan)
28178c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan{
28188c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    VAProcFilterParameterBufferColorBalance *color_balance = (VAProcFilterParameterBufferColorBalance *)base;
28198c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
28208c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    DPY2TRACECTX(dpy);
28218c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
28228c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    va_TraceMsg(trace_ctx, "\t    type = %d\n", color_balance->type);
28238c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    va_TraceMsg(trace_ctx, "\t    attrib = %d\n", color_balance->attrib);
28248c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    va_TraceMsg(trace_ctx, "\t    value = %f\n", color_balance->value);
28258c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan}
28268c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
28278c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuanstatic void
28288c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuanva_TraceProcFilterParameterBufferBase(
28298c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    VADisplay dpy,
28308c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    VAContextID context,
28318c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    VAProcFilterParameterBufferBase *base
28328c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan)
28338c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan{
28348c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    DPY2TRACECTX(dpy);
28358c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
2836a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    va_TraceMsg(trace_ctx, "\t    type = %d, context = %d\n", base->type, context);
28378c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan}
28388c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
28398c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuanstatic void
28408c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuanva_TraceProcFilterParameterBuffer(
28418c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    VADisplay dpy,
28428c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    VAContextID context,
28438c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    VABufferID *filters,
28448c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    unsigned int num_filters
28458c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan)
28468c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan{
28478c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    VABufferType type;
28488c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    unsigned int size;
28498c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    unsigned int num_elements;
28508c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    VAProcFilterParameterBufferBase *base_filter = NULL;
2851a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int i;
28528c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
28538c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    DPY2TRACECTX(dpy);
28548c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
28558c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    if (num_filters == 0 || filters == NULL) {
28568c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        va_TraceMsg(trace_ctx, "\t  num_filters = %d\n", num_filters);
28578c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        va_TraceMsg(trace_ctx, "\t  filters = %p\n", filters);
28588c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        return;
28598c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    }
28608c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
28618c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    va_TraceMsg(trace_ctx, "\t  num_filters = %d\n", num_filters);
28628c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
28638c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    /* get buffer type information */
28648c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    for (i = 0; i < num_filters; i++) {
28658c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        vaBufferInfo(dpy, context, filters[i], &type, &size, &num_elements);
28668c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
28678c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        if (type != VAProcFilterParameterBufferType) {
28688c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan            va_TraceMsg(trace_ctx, "\t  filters[%d] = 0x%08x (INVALID)\n", i, filters[i]);
28698c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan            return;
28708c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        } else {
28718c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan            va_TraceMsg(trace_ctx, "\t  filters[%d] = 0x%08x\n", i, filters[i]);
28728c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        }
28738c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
28748c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        base_filter = NULL;
28758c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        vaMapBuffer(dpy, filters[i], (void **)&base_filter);
28768c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
28778c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        if (base_filter == NULL) {
28788c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan            vaUnmapBuffer(dpy, filters[i]);
28798c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan            return;
28808c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        }
28818c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
28828c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        switch (base_filter->type) {
28838c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        case VAProcFilterDeinterlacing:
28848c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan            va_TraceProcFilterParameterBufferDeinterlacing(dpy,
28858c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan                                                           context,
28868c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan                                                           base_filter);
28878c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan            break;
28888c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        case VAProcFilterColorBalance:
28898c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan            va_TraceProcFilterParameterBufferColorBalance(dpy,
28908c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan                                                          context,
28918c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan                                                          base_filter);
28928c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan            break;
28938c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        default:
28948c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan            va_TraceProcFilterParameterBufferBase(dpy,
28958c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan                                                  context,
28968c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan                                                  base_filter);
28978c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan            break;
28988c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        }
28998c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
29008c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        vaUnmapBuffer(dpy, filters[i]);
29018c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    }
29028c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan}
29038c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
29048c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuanstatic void
29058c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuanva_TraceVAProcPipelineParameterBuffer(
29068c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    VADisplay dpy,
29078c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    VAContextID context,
2908a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferID __maybe_unused buffer,
2909a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VABufferType __maybe_unused type,
2910a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused size,
2911a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int __maybe_unused num_elements,
29128c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    void *data
29138c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan)
29148c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan{
29158c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    VAProcPipelineParameterBuffer *p = (VAProcPipelineParameterBuffer *)data;
2916a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    unsigned int i;
29178c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
29188c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    DPY2TRACECTX(dpy);
29198c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
29208c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    va_TraceMsg(trace_ctx, "\t--VAProcPipelineParameterBuffer\n");
29218c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
29228c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    va_TraceMsg(trace_ctx, "\t  surface = 0x%08x\n", p->surface);
29238c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
29248c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    if (p->surface_region) {
29258c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        va_TraceMsg(trace_ctx, "\t  surface_region\n");
29268c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        va_TraceMsg(trace_ctx, "\t    x = %d\n", p->surface_region->x);
29278c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        va_TraceMsg(trace_ctx, "\t    y = %d\n", p->surface_region->y);
29288c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        va_TraceMsg(trace_ctx, "\t    width = %d\n", p->surface_region->width);
29298c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        va_TraceMsg(trace_ctx, "\t    height = %d\n", p->surface_region->height);
29308c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    } else {
29318c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        va_TraceMsg(trace_ctx, "\t  surface_region = (NULL)\n");
29328c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    }
29338c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
29348c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    va_TraceMsg(trace_ctx, "\t  surface_color_standard = %d\n", p->surface_color_standard);
29358c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
29368c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    if (p->output_region) {
29378c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        va_TraceMsg(trace_ctx, "\t  output_region\n");
29388c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        va_TraceMsg(trace_ctx, "\t    x = %d\n", p->output_region->x);
29398c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        va_TraceMsg(trace_ctx, "\t    y = %d\n", p->output_region->y);
29408c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        va_TraceMsg(trace_ctx, "\t    width = %d\n", p->output_region->width);
29418c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        va_TraceMsg(trace_ctx, "\t    height = %d\n", p->output_region->height);
29428c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    } else {
29438c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        va_TraceMsg(trace_ctx, "\t  output_region = (NULL)\n");
29448c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    }
29458c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
29468c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    va_TraceMsg(trace_ctx, "\t  output_background_color = 0x%08x\n", p->output_background_color);
29478c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    va_TraceMsg(trace_ctx, "\t  output_color_standard = %d\n", p->output_color_standard);
29488c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    va_TraceMsg(trace_ctx, "\t  pipeline_flags = 0x%08x\n", p->pipeline_flags);
29498c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    va_TraceMsg(trace_ctx, "\t  filter_flags = 0x%08x\n", p->filter_flags);
29508c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
29518c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    va_TraceProcFilterParameterBuffer(dpy, context, p->filters, p->num_filters);
29528c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
29538c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    va_TraceMsg(trace_ctx, "\t  num_forward_references = 0x%08x\n", p->num_forward_references);
29548c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
29558c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    if (p->num_forward_references) {
29568c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        va_TraceMsg(trace_ctx, "\t  forward_references\n");
29578c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
29588c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        if (p->forward_references) {
29598c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan            /* only dump the first 5 forward references */
29608c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan            for (i = 0; i < p->num_forward_references && i < 5; i++) {
29618c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan                va_TraceMsg(trace_ctx, "\t    forward_references[%d] = 0x%08x\n", i, p->forward_references[i]);
29628c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan            }
29638c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        } else {
29648c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan            for (i = 0; i < p->num_forward_references && i < 5; i++) {
29658c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan                va_TraceMsg(trace_ctx, "\t    forward_references[%d] = (NULL)\n", i);
29668c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan            }
29678c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        }
29688c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    }
29698c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
29708c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    va_TraceMsg(trace_ctx, "\t  num_backward_references = 0x%08x\n", p->num_backward_references);
29718c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
29728c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    if (p->num_backward_references) {
29738c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        va_TraceMsg(trace_ctx, "\t  backward_references\n");
29748c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
29758c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        if (p->backward_references) {
29768c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan            /* only dump the first 5 backward references */
29778c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan            for (i = 0; i < p->num_backward_references && i < 5; i++) {
29788c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan                va_TraceMsg(trace_ctx, "\t    backward_references[%d] = 0x%08x\n", i, p->backward_references[i]);
29798c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan            }
29808c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        } else {
29818c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan            for (i = 0; i < p->num_backward_references && i < 5; i++) {
29828c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan                va_TraceMsg(trace_ctx, "\t    backward_references[%d] = (NULL)\n", i);
29838c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan            }
29848c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        }
29858c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    }
29868c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
29878c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    /* FIXME: add other info later */
29888c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
29898c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    va_TraceMsg(trace_ctx, NULL);
29908c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan}
29918c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
29928c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuanstatic void
29938c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuanva_TraceNoneBuf(
29948c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    VADisplay dpy,
29958c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    VAContextID context,
29968c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    VABufferID buffer,
29978c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    VABufferType type,
29988c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    unsigned int size,
29998c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    unsigned int num_elements,
30008c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    void *pbuf
30018c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan)
30028c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan{
30038c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    DPY2TRACECTX(dpy);
30048c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
30058c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    switch (type) {
30068c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    case VAProcPipelineParameterBufferType:
30078c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        va_TraceVAProcPipelineParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf);
30088c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        break;
30098c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    default:
30108c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
30118c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        break;
30128c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan    }
30138c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan}
30148c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
3015293abef4f8172cc061d26f9d909c281b4190b514Bruce Bearevoid va_TraceRenderPicture(
3016b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VADisplay dpy,
3017a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
3018b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VABufferID *buffers,
3019b0fac498ca4863166252f1268fda83394db54153Fei Jiang    int num_buffers
3020b0fac498ca4863166252f1268fda83394db54153Fei Jiang)
3021b0fac498ca4863166252f1268fda83394db54153Fei Jiang{
3022b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VABufferType type;
3023b0fac498ca4863166252f1268fda83394db54153Fei Jiang    unsigned int size;
3024b0fac498ca4863166252f1268fda83394db54153Fei Jiang    unsigned int num_elements;
3025b0fac498ca4863166252f1268fda83394db54153Fei Jiang    int i;
3026f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
3027b0fac498ca4863166252f1268fda83394db54153Fei Jiang
302821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    TRACE_FUNCNAME(idx);
302921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
3030f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tnum_buffers = %d\n", num_buffers);
30317d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    if (buffers == NULL)
30327d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan        return;
30337d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan
3034b0fac498ca4863166252f1268fda83394db54153Fei Jiang    for (i = 0; i < num_buffers; i++) {
30357d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan        unsigned char *pbuf = NULL;
303621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        unsigned int j;
303721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
3038b0fac498ca4863166252f1268fda83394db54153Fei Jiang        /* get buffer type information */
3039b0fac498ca4863166252f1268fda83394db54153Fei Jiang        vaBufferInfo(dpy, context, buffers[i], &type, &size, &num_elements);
304072b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang
3041f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\t---------------------------\n");
3042f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\tbuffers[%d] = 0x%08x\n", i, buffers[i]);
3043f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\t  type = %s\n", buffer_type_to_string(type));
3044f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\t  size = %d\n", size);
3045f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\t  num_elements = %d\n", num_elements);
3046b0fac498ca4863166252f1268fda83394db54153Fei Jiang
30475b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang        vaMapBuffer(dpy, buffers[i], (void **)&pbuf);
30487d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan        if (pbuf == NULL)
30497d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan            continue;
30507d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan
3051f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        switch (trace_ctx->trace_profile) {
3052b0fac498ca4863166252f1268fda83394db54153Fei Jiang        case VAProfileMPEG2Simple:
3053b0fac498ca4863166252f1268fda83394db54153Fei Jiang        case VAProfileMPEG2Main:
305421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan            for (j=0; j<num_elements; j++) {
3055f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun                va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
305621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan                va_TraceMPEG2Buf(dpy, context, buffers[i], type, size, num_elements, pbuf + size*j);
305721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan            }
3058b0fac498ca4863166252f1268fda83394db54153Fei Jiang            break;
3059b0fac498ca4863166252f1268fda83394db54153Fei Jiang        case VAProfileMPEG4Simple:
3060b0fac498ca4863166252f1268fda83394db54153Fei Jiang        case VAProfileMPEG4AdvancedSimple:
3061b0fac498ca4863166252f1268fda83394db54153Fei Jiang        case VAProfileMPEG4Main:
306221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan            for (j=0; j<num_elements; j++) {
3063f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun                va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
306421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan                va_TraceMPEG4Buf(dpy, context, buffers[i], type, size, num_elements, pbuf + size*j);
306521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan            }
3066b0fac498ca4863166252f1268fda83394db54153Fei Jiang            break;
3067b0fac498ca4863166252f1268fda83394db54153Fei Jiang        case VAProfileH264Baseline:
3068b0fac498ca4863166252f1268fda83394db54153Fei Jiang        case VAProfileH264Main:
3069b0fac498ca4863166252f1268fda83394db54153Fei Jiang        case VAProfileH264High:
3070cceaa0568f77a7452857559614100b71fb36ee3awangkun        case VAProfileH264ConstrainedBaseline:
307121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan            for (j=0; j<num_elements; j++) {
3072f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun                va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
307372b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang
307421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan                va_TraceH264Buf(dpy, context, buffers[i], type, size, num_elements, pbuf + size*j);
307521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan            }
3076b0fac498ca4863166252f1268fda83394db54153Fei Jiang            break;
3077b0fac498ca4863166252f1268fda83394db54153Fei Jiang        case VAProfileVC1Simple:
3078b0fac498ca4863166252f1268fda83394db54153Fei Jiang        case VAProfileVC1Main:
3079b0fac498ca4863166252f1268fda83394db54153Fei Jiang        case VAProfileVC1Advanced:
308021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan            for (j=0; j<num_elements; j++) {
3081f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun                va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
308272b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang
308321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan                va_TraceVC1Buf(dpy, context, buffers[i], type, size, num_elements, pbuf + size*j);
308421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan            }
3085b0fac498ca4863166252f1268fda83394db54153Fei Jiang            break;
3086b0fac498ca4863166252f1268fda83394db54153Fei Jiang        case VAProfileH263Baseline:
308721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan            for (j=0; j<num_elements; j++) {
3088f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun                va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
308972b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang
3090e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan                va_TraceH263Buf(dpy, context, buffers[i], type, size, num_elements, pbuf + size*j);
309121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan            }
309221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan            break;
3093cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang        case VAProfileJPEGBaseline:
3094cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang            for (j=0; j<num_elements; j++) {
3095f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun                va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
3096cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang
3097f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun                va_TraceJPEGBuf (dpy, context, buffers[i], type, size, num_elements, pbuf + size*j);
3098f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            }
3099f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            break;
3100f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        case VAProfileVP8Version0_3:
3101f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            for (j=0; j<num_elements; j++) {
3102c263d6a794e2a50d0f95919ed9f56003caedd492Austin Yuan                va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
3103f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun
3104f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun                va_TraceVP8Buf(dpy, context, buffers[i], type, size, num_elements, pbuf + size*j);
3105cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang            }
3106cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang            break;
31078c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        case VAProfileNone:
31088c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan            for (j=0; j<num_elements; j++) {
3109c263d6a794e2a50d0f95919ed9f56003caedd492Austin Yuan                va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
31108c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan
31118c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan                va_TraceNoneBuf(dpy, context, buffers[i], type, size, num_elements, pbuf + size*j);
31128c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan            }
31138c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan            break;
311421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        default:
3115b0fac498ca4863166252f1268fda83394db54153Fei Jiang            break;
3116b0fac498ca4863166252f1268fda83394db54153Fei Jiang        }
3117b0fac498ca4863166252f1268fda83394db54153Fei Jiang
3118b0fac498ca4863166252f1268fda83394db54153Fei Jiang        vaUnmapBuffer(dpy, buffers[i]);
3119b0fac498ca4863166252f1268fda83394db54153Fei Jiang    }
312036bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang
3121f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
3122b0fac498ca4863166252f1268fda83394db54153Fei Jiang}
3123b0fac498ca4863166252f1268fda83394db54153Fei Jiang
3124293abef4f8172cc061d26f9d909c281b4190b514Bruce Bearevoid va_TraceEndPicture(
3125b0fac498ca4863166252f1268fda83394db54153Fei Jiang    VADisplay dpy,
3126a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAContextID __maybe_unused context,
3127a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    int __maybe_unused endpic_done
3128b0fac498ca4863166252f1268fda83394db54153Fei Jiang)
3129b0fac498ca4863166252f1268fda83394db54153Fei Jiang{
31305b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang    int encode, decode, jpeg;
3131f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
313221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
313321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    TRACE_FUNCNAME(idx);
3134b0fac498ca4863166252f1268fda83394db54153Fei Jiang
3135f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\trender_targets = 0x%08x\n", trace_ctx->trace_rendertarget);
31365b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang
313737667c3bc88b76462b2487a3dc2577260819b3ecElaine Wang    /* avoid to create so many empty files */
3138f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    encode = (trace_ctx->trace_entrypoint == VAEntrypointEncSlice);
3139f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    decode = (trace_ctx->trace_entrypoint == VAEntrypointVLD);
3140f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    jpeg = (trace_ctx->trace_entrypoint == VAEntrypointEncPicture);
3141eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan
3142eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan    /* trace encode source surface, can do it before HW completes rendering */
314337667c3bc88b76462b2487a3dc2577260819b3ecElaine Wang    if ((encode && (trace_flag & VA_TRACE_FLAG_SURFACE_ENCODE))||
31448c4f0e8e0595b1f1951d0299c2be5acf449d6ee5Austin Yuan        (jpeg && (trace_flag & VA_TRACE_FLAG_SURFACE_JPEG)))
31455b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang        va_TraceSurface(dpy);
31465b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang
3147eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan    /* trace decoded surface, do it after HW completes rendering */
314837667c3bc88b76462b2487a3dc2577260819b3ecElaine Wang    if (decode && ((trace_flag & VA_TRACE_FLAG_SURFACE_DECODE))) {
3149f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        vaSyncSurface(dpy, trace_ctx->trace_rendertarget);
315021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan        va_TraceSurface(dpy);
3151901c77a7aa491f56b63af7b655b67439481e4177Fei Jiang    }
3152eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan
3153f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
315421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan}
3155b0fac498ca4863166252f1268fda83394db54153Fei Jiang
3156409de6acb4473c973ed2532e340831dc582e5e0eAustin Yuan
3157cceaa0568f77a7452857559614100b71fb36ee3awangkunvoid va_TraceSyncSurface(
3158cceaa0568f77a7452857559614100b71fb36ee3awangkun    VADisplay dpy,
3159a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VASurfaceID __maybe_unused render_target
3160cceaa0568f77a7452857559614100b71fb36ee3awangkun)
3161cceaa0568f77a7452857559614100b71fb36ee3awangkun{
3162f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
3163cceaa0568f77a7452857559614100b71fb36ee3awangkun
3164cceaa0568f77a7452857559614100b71fb36ee3awangkun    TRACE_FUNCNAME(idx);
3165cceaa0568f77a7452857559614100b71fb36ee3awangkun
3166f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
3167cceaa0568f77a7452857559614100b71fb36ee3awangkun}
3168cceaa0568f77a7452857559614100b71fb36ee3awangkun
31697d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuanvoid va_TraceQuerySurfaceAttributes(
31707d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    VADisplay           dpy,
3171a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VAConfigID          __maybe_unused config,
31727d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    VASurfaceAttrib    *attrib_list,
31737d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    unsigned int       *num_attribs
31747d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan)
31757d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan{
3176f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
31777d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan
31787d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    TRACE_FUNCNAME(idx);
3179f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceSurfaceAttributes(trace_ctx, attrib_list, num_attribs);
31807d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan
3181f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
31827d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan
31837d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan}
31847d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan
3185cceaa0568f77a7452857559614100b71fb36ee3awangkun
3186cceaa0568f77a7452857559614100b71fb36ee3awangkunvoid va_TraceQuerySurfaceStatus(
3187cceaa0568f77a7452857559614100b71fb36ee3awangkun    VADisplay dpy,
3188a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    VASurfaceID __maybe_unused render_target,
318936bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang    VASurfaceStatus *status    /* out */
3190cceaa0568f77a7452857559614100b71fb36ee3awangkun)
3191cceaa0568f77a7452857559614100b71fb36ee3awangkun{
3192f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
3193cceaa0568f77a7452857559614100b71fb36ee3awangkun
3194cceaa0568f77a7452857559614100b71fb36ee3awangkun    TRACE_FUNCNAME(idx);
3195cceaa0568f77a7452857559614100b71fb36ee3awangkun
31967d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    if (status)
3197f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\tstatus = 0x%08x\n", *status);
3198f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
3199cceaa0568f77a7452857559614100b71fb36ee3awangkun}
3200cceaa0568f77a7452857559614100b71fb36ee3awangkun
3201cceaa0568f77a7452857559614100b71fb36ee3awangkun
3202cceaa0568f77a7452857559614100b71fb36ee3awangkunvoid va_TraceQuerySurfaceError(
320336bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang    VADisplay dpy,
320436bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang    VASurfaceID surface,
320536bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang    VAStatus error_status,
320636bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang    void **error_info       /*out*/
3207cceaa0568f77a7452857559614100b71fb36ee3awangkun)
3208cceaa0568f77a7452857559614100b71fb36ee3awangkun{
3209f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
3210cceaa0568f77a7452857559614100b71fb36ee3awangkun
3211cceaa0568f77a7452857559614100b71fb36ee3awangkun    TRACE_FUNCNAME(idx);
3212f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tsurface = 0x%08x\n", surface);
3213f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\terror_status = 0x%08x\n", error_status);
32147d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    if (error_info && (error_status == VA_STATUS_ERROR_DECODING_ERROR)) {
321536bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang        VASurfaceDecodeMBErrors *p = *error_info;
32167d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan        while (p && (p->status != -1)) {
3217f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            va_TraceMsg(trace_ctx, "\t\tstatus = %d\n", p->status);
3218f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            va_TraceMsg(trace_ctx, "\t\tstart_mb = %d\n", p->start_mb);
3219f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun            va_TraceMsg(trace_ctx, "\t\tend_mb = %d\n", p->end_mb);
322036bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang            p++; /* next error record */
322136bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang        }
3222cceaa0568f77a7452857559614100b71fb36ee3awangkun    }
3223f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
3224cceaa0568f77a7452857559614100b71fb36ee3awangkun}
3225b0fac498ca4863166252f1268fda83394db54153Fei Jiang
322621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanvoid va_TraceMaxNumDisplayAttributes (
322721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    VADisplay dpy,
322821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    int number
322921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan)
323021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan{
3231f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
3232b0fac498ca4863166252f1268fda83394db54153Fei Jiang
323321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    TRACE_FUNCNAME(idx);
323421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
3235f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tmax_display_attributes = %d\n", number);
3236f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
323721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan}
323821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
323921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanvoid va_TraceQueryDisplayAttributes (
324021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    VADisplay dpy,
324136bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang    VADisplayAttribute *attr_list,    /* out */
324236bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang    int *num_attributes               /* out */
324321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan)
324421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan{
324521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    int i;
324621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
3247f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
324821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
32497d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    if (attr_list == NULL || num_attributes == NULL)
32507d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan        return;
325121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
3252f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tnum_attributes = %d\n", *num_attributes);
32537d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan
325421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    for (i=0; i<*num_attributes; i++) {
3255f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\tattr_list[%d] =\n");
3256f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\t  typ = 0x%08x\n", attr_list[i].type);
3257f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\t  min_value = %d\n", attr_list[i].min_value);
3258f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\t  max_value = %d\n", attr_list[i].max_value);
3259f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\t  value = %d\n", attr_list[i].value);
3260f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\t  flags = %d\n", attr_list[i].flags);
3261b0fac498ca4863166252f1268fda83394db54153Fei Jiang    }
3262f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
326321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan}
3264b0fac498ca4863166252f1268fda83394db54153Fei Jiang
3265b0fac498ca4863166252f1268fda83394db54153Fei Jiang
326621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanstatic void va_TraceDisplayAttributes (
326721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    VADisplay dpy,
326821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    VADisplayAttribute *attr_list,
3269a11b959f9fe7476b4da95fbaf34105e33cfeb0d6ywan    int __maybe_unused num_attributes
327021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan)
327121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan{
327221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    int i;
327321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
3274f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
327521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
32767d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan    if (attr_list == NULL)
32777d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan        return;
32787d9a3d51091eff4c2c32653ad011ecae99dad4feAustin Yuan
327921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    for (i=0; i<num_attributes; i++) {
3280f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\tattr_list[%d] =\n");
3281f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\t  typ = 0x%08x\n", attr_list[i].type);
3282f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\t  min_value = %d\n", attr_list[i].min_value);
3283f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\t  max_value = %d\n", attr_list[i].max_value);
3284f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\t  value = %d\n", attr_list[i].value);
3285f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun        va_TraceMsg(trace_ctx, "\t  flags = %d\n", attr_list[i].flags);
3286b0fac498ca4863166252f1268fda83394db54153Fei Jiang    }
3287f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
328821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan}
328921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
329021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
329121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanvoid va_TraceGetDisplayAttributes (
329221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    VADisplay dpy,
329321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    VADisplayAttribute *attr_list,
329421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    int num_attributes
329521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan)
329621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan{
3297f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
3298901c77a7aa491f56b63af7b655b67439481e4177Fei Jiang
329921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    TRACE_FUNCNAME(idx);
330021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
330121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    va_TraceDisplayAttributes (dpy, attr_list, num_attributes);
330221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan}
330321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
330421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanvoid va_TraceSetDisplayAttributes (
330521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    VADisplay dpy,
330621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    VADisplayAttribute *attr_list,
330721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    int num_attributes
330821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan)
330921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan{
3310f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
331121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
331221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    TRACE_FUNCNAME(idx);
331321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
331421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    va_TraceDisplayAttributes (dpy, attr_list, num_attributes);
331521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan}
331621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
331721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
331821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanvoid va_TracePutSurface (
331921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    VADisplay dpy,
332021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    VASurfaceID surface,
332121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    void *draw, /* the target Drawable */
332221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    short srcx,
332321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    short srcy,
332421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    unsigned short srcw,
332521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    unsigned short srch,
332621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    short destx,
332721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    short desty,
332821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    unsigned short destw,
332921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    unsigned short desth,
333021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    VARectangle *cliprects, /* client supplied clip list */
333121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    unsigned int number_cliprects, /* number of clip rects in the clip list */
333221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    unsigned int flags /* de-interlacing flags */
333321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan)
333421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan{
3335f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    DPY2TRACECTX(dpy);
333621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
333721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan    TRACE_FUNCNAME(idx);
333821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan
3339f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tsurface = 0x%08x\n", surface);
3340f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tdraw = 0x%08x\n", draw);
3341f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tsrcx = %d\n", srcx);
3342f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tsrcy = %d\n", srcy);
3343f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tsrcw = %d\n", srcw);
3344f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tsrch = %d\n", srch);
3345f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tdestx = %d\n", destx);
3346f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tdesty = %d\n", desty);
3347f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tdestw = %d\n", destw);
3348f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tdesth = %d\n", desth);
3349f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tcliprects = 0x%08x\n", cliprects);
3350f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tnumber_cliprects = %d\n", number_cliprects);
3351f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, "\tflags = 0x%08x\n", flags);
3352f32d88b4751aa44be38f62dcd25533aec6ca46a2Liu Bolun    va_TraceMsg(trace_ctx, NULL);
3353b0fac498ca4863166252f1268fda83394db54153Fei Jiang}
3354