va_trace.c revision ac1c6d1120d34338e679ac23f1348ade77b61317
1b0fac498ca4863166252f1268fda83394db54153Fei Jiang/* 236bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang * Copyright (c) 2009-2011 Intel Corporation. All Rights Reserved. 3b0fac498ca4863166252f1268fda83394db54153Fei Jiang * 4b0fac498ca4863166252f1268fda83394db54153Fei Jiang * Permission is hereby granted, free of charge, to any person obtaining a 5b0fac498ca4863166252f1268fda83394db54153Fei Jiang * copy of this software and associated documentation files (the 6b0fac498ca4863166252f1268fda83394db54153Fei Jiang * "Software"), to deal in the Software without restriction, including 7b0fac498ca4863166252f1268fda83394db54153Fei Jiang * without limitation the rights to use, copy, modify, merge, publish, 8b0fac498ca4863166252f1268fda83394db54153Fei Jiang * distribute, sub license, and/or sell copies of the Software, and to 9b0fac498ca4863166252f1268fda83394db54153Fei Jiang * permit persons to whom the Software is furnished to do so, subject to 10b0fac498ca4863166252f1268fda83394db54153Fei Jiang * the following conditions: 11b0fac498ca4863166252f1268fda83394db54153Fei Jiang * 12b0fac498ca4863166252f1268fda83394db54153Fei Jiang * The above copyright notice and this permission notice (including the 13b0fac498ca4863166252f1268fda83394db54153Fei Jiang * next paragraph) shall be included in all copies or substantial portions 14b0fac498ca4863166252f1268fda83394db54153Fei Jiang * of the Software. 15b0fac498ca4863166252f1268fda83394db54153Fei Jiang * 16b0fac498ca4863166252f1268fda83394db54153Fei Jiang * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 17b0fac498ca4863166252f1268fda83394db54153Fei Jiang * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18b0fac498ca4863166252f1268fda83394db54153Fei Jiang * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 19b0fac498ca4863166252f1268fda83394db54153Fei Jiang * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR 20b0fac498ca4863166252f1268fda83394db54153Fei Jiang * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 21b0fac498ca4863166252f1268fda83394db54153Fei Jiang * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 22b0fac498ca4863166252f1268fda83394db54153Fei Jiang * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23b0fac498ca4863166252f1268fda83394db54153Fei Jiang */ 24b0fac498ca4863166252f1268fda83394db54153Fei Jiang 25b0fac498ca4863166252f1268fda83394db54153Fei Jiang#define _GNU_SOURCE 1 26b0fac498ca4863166252f1268fda83394db54153Fei Jiang#include "va.h" 274b672db6ee89c9846451bbab23cf18e93c4260b2hding#include "va_enc_h264.h" 28b0fac498ca4863166252f1268fda83394db54153Fei Jiang#include "va_backend.h" 29901c77a7aa491f56b63af7b655b67439481e4177Fei Jiang#include "va_trace.h" 304b672db6ee89c9846451bbab23cf18e93c4260b2hding#include "va_enc_h264.h" 31b0fac498ca4863166252f1268fda83394db54153Fei Jiang 32b0fac498ca4863166252f1268fda83394db54153Fei Jiang#include <assert.h> 33b0fac498ca4863166252f1268fda83394db54153Fei Jiang#include <stdarg.h> 34b0fac498ca4863166252f1268fda83394db54153Fei Jiang#include <stdlib.h> 35b0fac498ca4863166252f1268fda83394db54153Fei Jiang#include <stdio.h> 36b0fac498ca4863166252f1268fda83394db54153Fei Jiang#include <string.h> 37b0fac498ca4863166252f1268fda83394db54153Fei Jiang#include <dlfcn.h> 38b0fac498ca4863166252f1268fda83394db54153Fei Jiang#include <unistd.h> 3921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan#include <sys/types.h> 4021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan#include <sys/stat.h> 4121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan#include <unistd.h> 4221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan#include <time.h> 43e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan#include <errno.h> 4421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 4521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan/* 4621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan * Env. to debug some issue, e.g. the decode/encode issue in a video conference scenerio: 4721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan * .LIBVA_TRACE=log_file: general VA parameters saved into log_file 4821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan * .LIBVA_TRACE_BUFDATA: dump VA buffer data into log_file (if not set, just calculate a checksum) 4921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan * .LIBVA_TRACE_CODEDBUF=coded_clip_file: save the coded clip into file coded_clip_file 505b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang * .LIBVA_TRACE_SURFACE=yuv_file: save surface YUV into file yuv_file. Use file name to determine 515b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang * decode/encode or jpeg surfaces 52eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan * .LIBVA_TRACE_SURFACE_GEOMETRY=WIDTHxHEIGHT+XOFF+YOFF: only save part of surface context into file 53eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan * due to storage bandwidth limitation 5421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan * .LIBVA_TRACE_LOGSIZE=numeric number: truncate the log_file or coded_clip_file, or decoded_yuv_file 5536bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang * when the size is bigger than the number 5621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan */ 5721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 5821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan/* global settings */ 5921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 6021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan/* LIBVA_TRACE */ 615b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sangint trace_flag = 0; 62b0fac498ca4863166252f1268fda83394db54153Fei Jiang 6321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan/* LIBVA_TRACE_LOGSIZE */ 6421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanstatic unsigned int trace_logsize = 0xffffffff; /* truncate the log when the size is bigger than it */ 6521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 6621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan#define TRACE_CONTEXT_MAX 4 6721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan/* per context settings */ 6821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanstatic struct _trace_context { 6921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VADisplay dpy; /* should use context as the key */ 7021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 7121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan /* LIBVA_TRACE */ 7221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan FILE *trace_fp_log; /* save the log into a file */ 735b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang char *trace_log_fn; /* file name */ 7421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 7521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan /* LIBVA_TRACE_CODEDBUF */ 7621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan FILE *trace_fp_codedbuf; /* save the encode result into a file */ 775b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang char *trace_codedbuf_fn; /* file name */ 7821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 7921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan /* LIBVA_TRACE_SURFACE */ 8021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan FILE *trace_fp_surface; /* save the surface YUV into a file */ 815b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang char *trace_surface_fn; /* file name */ 8221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 8321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VAContextID trace_context; /* current context */ 8421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 8521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VASurfaceID trace_rendertarget; /* current render target */ 8621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VAProfile trace_profile; /* current profile for buffers */ 8721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VAEntrypoint trace_entrypoint; /* current entrypoint */ 8821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VABufferID trace_codedbuf; 8921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 9021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned int trace_frame_no; /* current frame NO */ 9121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned int trace_slice_no; /* current slice NO */ 9221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned int trace_slice_size; /* current slice buffer size */ 9321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 94eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan unsigned int trace_surface_width; /* surface dumping geometry */ 95eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan unsigned int trace_surface_height; 96eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan unsigned int trace_surface_xoff; 97eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan unsigned int trace_surface_yoff; 98eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan 9921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned int trace_frame_width; /* current frame width */ 10021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned int trace_frame_height; /* current frame height */ 10121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned int trace_sequence_start; /* get a new sequence for encoding or not */ 1025b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang} trace_context[TRACE_CONTEXT_MAX]; /* trace five context at the same time */ 10321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 10421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan#define DPY2INDEX(dpy) \ 10521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan int idx; \ 10621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan \ 10721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan for (idx = 0; idx < TRACE_CONTEXT_MAX; idx++) \ 10821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan if (trace_context[idx].dpy == dpy) \ 10921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan break; \ 11021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan \ 11121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan if (idx == TRACE_CONTEXT_MAX) \ 11221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan return; 11321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 11421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan#define TRACE_FUNCNAME(idx) va_TraceMsg(idx, "==========%s\n", __func__); 115b0fac498ca4863166252f1268fda83394db54153Fei Jiang 11621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan/* Prototype declarations (functions defined in va.c) */ 117b0fac498ca4863166252f1268fda83394db54153Fei Jiang 11821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanvoid va_errorMessage(const char *msg, ...); 11921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanvoid va_infoMessage(const char *msg, ...); 120b0fac498ca4863166252f1268fda83394db54153Fei Jiang 12121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanint va_parseConfig(char *env, char *env_value); 122b0fac498ca4863166252f1268fda83394db54153Fei Jiang 12321e26478769d887b8357289ebb7faa47b8b415aeAustin YuanVAStatus vaBufferInfo( 124901c77a7aa491f56b63af7b655b67439481e4177Fei Jiang VADisplay dpy, 12536bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang VAContextID context, /* in */ 12636bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang VABufferID buf_id, /* in */ 12736bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang VABufferType *type, /* out */ 12836bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang unsigned int *size, /* out */ 12936bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang unsigned int *num_elements /* out */ 13072b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang ); 131901c77a7aa491f56b63af7b655b67439481e4177Fei Jiang 132901c77a7aa491f56b63af7b655b67439481e4177Fei JiangVAStatus vaLockSurface(VADisplay dpy, 13372b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang VASurfaceID surface, 13472b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang unsigned int *fourcc, /* following are output argument */ 13572b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang unsigned int *luma_stride, 13672b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang unsigned int *chroma_u_stride, 13772b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang unsigned int *chroma_v_stride, 13872b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang unsigned int *luma_offset, 13972b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang unsigned int *chroma_u_offset, 14072b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang unsigned int *chroma_v_offset, 14172b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang unsigned int *buffer_name, 14272b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang void **buffer 14372b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang ); 144901c77a7aa491f56b63af7b655b67439481e4177Fei Jiang 145901c77a7aa491f56b63af7b655b67439481e4177Fei JiangVAStatus vaUnlockSurface(VADisplay dpy, 14672b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang VASurfaceID surface 14772b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang ); 148901c77a7aa491f56b63af7b655b67439481e4177Fei Jiang 1495b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang#define FILE_NAME_SUFFIX(env_value) \ 1505b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sangdo { \ 1515b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang int tmp = strnlen(env_value, sizeof(env_value)); \ 1525b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang int left = sizeof(env_value) - tmp; \ 1535b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang \ 1545b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang snprintf(env_value+tmp, \ 1555b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang left, \ 1565b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang ".%04d.%05d", \ 1575b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang trace_index, \ 1585b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang suffix); \ 1595b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang} while (0) 16021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 16121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanvoid va_TraceInit(VADisplay dpy) 162b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 16321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan char env_value[1024]; 1645b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang unsigned short suffix = 0xffff & ((unsigned int)time(NULL)); 16521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan int trace_index = 0; 16621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan FILE *tmp; 16721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 16821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan for (trace_index = 0; trace_index < TRACE_CONTEXT_MAX; trace_index++) 16921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan if (trace_context[trace_index].dpy == 0) 17021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan break; 17121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 17221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan if (trace_index == TRACE_CONTEXT_MAX) 17321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan return; 17421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 1755b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang memset(&trace_context[trace_index], 0, sizeof(struct _trace_context)); 17621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan if (va_parseConfig("LIBVA_TRACE", &env_value[0]) == 0) { 1775b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang FILE_NAME_SUFFIX(env_value); 1785b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang trace_context[trace_index].trace_log_fn = strdup(env_value); 1795b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang 18021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan tmp = fopen(env_value, "w"); 18136bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang if (tmp) { 18221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan trace_context[trace_index].trace_fp_log = tmp; 1835b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang va_infoMessage("LIBVA_TRACE is on, save log into %s\n", trace_context[trace_index].trace_log_fn); 1845b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang trace_flag = VA_TRACE_FLAG_LOG; 1855b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang } else 186e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan va_errorMessage("Open file %s failed (%s)\n", env_value, strerror(errno)); 18721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan } 18821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 18921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan /* may re-get the global settings for multiple context */ 19021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan if (va_parseConfig("LIBVA_TRACE_LOGSIZE", &env_value[0]) == 0) { 19121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan trace_logsize = atoi(env_value); 19221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_infoMessage("LIBVA_TRACE_LOGSIZE is on, size is %d\n", trace_logsize); 19321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan } 19421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 1955b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang if ((trace_flag & VA_TRACE_FLAG_LOG) && (va_parseConfig("LIBVA_TRACE_BUFDATA", NULL) == 0)) { 1965b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang trace_flag |= VA_TRACE_FLAG_BUFDATA; 19721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_infoMessage("LIBVA_TRACE_BUFDATA is on, dump buffer into log file\n"); 19821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan } 19921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 20021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan /* per-context setting */ 20121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan if (va_parseConfig("LIBVA_TRACE_CODEDBUF", &env_value[0]) == 0) { 2025b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang FILE_NAME_SUFFIX(env_value); 2035b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang trace_context[trace_index].trace_codedbuf_fn = strdup(env_value); 2045b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang va_infoMessage("LIBVA_TRACE_CODEDBUF is on, save codedbuf into log file %s\n", 2055b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang trace_context[trace_index].trace_codedbuf_fn); 2065b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang trace_flag |= VA_TRACE_FLAG_CODEDBUF; 20721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan } 20821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 20921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan if (va_parseConfig("LIBVA_TRACE_SURFACE", &env_value[0]) == 0) { 2105b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang FILE_NAME_SUFFIX(env_value); 2115b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang trace_context[trace_index].trace_surface_fn = strdup(env_value); 212eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan 2135b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang va_infoMessage("LIBVA_TRACE_SURFACE is on, save surface into %s\n", 2145b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang trace_context[trace_index].trace_surface_fn); 2155b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang 2165b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang /* for surface data dump, it is time-consume, and may 2175b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang * cause some side-effect, so only trace the needed surfaces 2185b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang * to trace encode surface, set the trace file name to sth like *enc* 2195b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang * to trace decode surface, set the trace file name to sth like *dec* 2205b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang * if no dec/enc in file name, set both 2215b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang */ 2225b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang if (strstr(env_value, "dec")) 2235b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang trace_flag |= VA_TRACE_FLAG_SURFACE_DECODE; 2245b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang if (strstr(env_value, "enc")) 2255b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang trace_flag |= VA_TRACE_FLAG_SURFACE_ENCODE; 2265b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang if (strstr(env_value, "jpeg") || strstr(env_value, "jpg")) 2275b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang trace_flag |= VA_TRACE_FLAG_SURFACE_JPEG; 228eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan 229eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan if (va_parseConfig("LIBVA_TRACE_SURFACE_GEOMETRY", &env_value[0]) == 0) { 230eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan char *p = env_value, *q; 231eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan 232eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan trace_context[trace_index].trace_surface_width = strtod(p, &q); 233eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan p = q+1; /* skip "x" */ 234eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan trace_context[trace_index].trace_surface_height = strtod(p, &q); 235eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan p = q+1; /* skip "+" */ 236eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan trace_context[trace_index].trace_surface_xoff = strtod(p, &q); 237eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan p = q+1; /* skip "+" */ 238eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan trace_context[trace_index].trace_surface_yoff = strtod(p, &q); 239eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan 240eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan va_infoMessage("LIBVA_TRACE_SURFACE_GEOMETRY is on, only dump surface %dx%d+%d+%d content\n", 241eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan trace_context[trace_index].trace_surface_width, 242eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan trace_context[trace_index].trace_surface_height, 243eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan trace_context[trace_index].trace_surface_xoff, 244eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan trace_context[trace_index].trace_surface_yoff); 245eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan } 246b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 24721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 24821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan trace_context[trace_index].dpy = dpy; 249b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 250b0fac498ca4863166252f1268fda83394db54153Fei Jiang 25121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 25221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanvoid va_TraceEnd(VADisplay dpy) 253b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 25421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan DPY2INDEX(dpy); 25521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 2565b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang if (trace_context[idx].trace_fp_log) 25721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan fclose(trace_context[idx].trace_fp_log); 25821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 2595b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang if (trace_context[idx].trace_fp_codedbuf) 26021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan fclose(trace_context[idx].trace_fp_codedbuf); 26121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 2625b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang if (trace_context[idx].trace_fp_surface) 26321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan fclose(trace_context[idx].trace_fp_surface); 26421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 2655b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang if (trace_context[idx].trace_log_fn) 2665b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang free(trace_context[idx].trace_log_fn); 2675b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang 2685b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang if (trace_context[idx].trace_codedbuf_fn) 2695b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang free(trace_context[idx].trace_codedbuf_fn); 2705b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang 2715b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang if (trace_context[idx].trace_surface_fn) 2725b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang free(trace_context[idx].trace_surface_fn); 2735b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang 27450ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang memset(&trace_context[idx], 0, sizeof(struct _trace_context)); 27521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan} 276b0fac498ca4863166252f1268fda83394db54153Fei Jiang 27736bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang 27821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanstatic unsigned int file_size(FILE *fp) 27921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan{ 28021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan struct stat buf; 281b0fac498ca4863166252f1268fda83394db54153Fei Jiang 28221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan fstat(fileno(fp), &buf); 283b0fac498ca4863166252f1268fda83394db54153Fei Jiang 28421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan return buf.st_size; 285b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 286b0fac498ca4863166252f1268fda83394db54153Fei Jiang 28721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 28821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanstatic void truncate_file(FILE *fp) 28921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan{ 29021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan ftruncate(fileno(fp), 0); 29121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan rewind(fp); 29221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan} 29321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 29421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanvoid va_TraceMsg(int idx, const char *msg, ...) 295b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 296b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_list args; 29721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 2985b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang if (!(trace_flag & VA_TRACE_FLAG_LOG)) 2995b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang return; 3005b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang 30121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan if (file_size(trace_context[idx].trace_fp_log) >= trace_logsize) 30221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan truncate_file(trace_context[idx].trace_fp_log); 303b0fac498ca4863166252f1268fda83394db54153Fei Jiang if (msg) { 304b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_start(args, msg); 30521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan vfprintf(trace_context[idx].trace_fp_log, msg, args); 306b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_end(args); 30721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan } else 30821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan fflush(trace_context[idx].trace_fp_log); 30921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan} 31021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 31121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanvoid va_TraceCodedBuf(VADisplay dpy) 31221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan{ 31321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VACodedBufferSegment *buf_list = NULL; 31421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VAStatus va_status; 31521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned char check_sum = 0; 31621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan DPY2INDEX(dpy); 31721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 31821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan /* can only truncate at a sequence boudary */ 31921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan if (((file_size(trace_context[idx].trace_fp_log) >= trace_logsize)) 32021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan && trace_context[idx].trace_sequence_start) { 32121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "==========truncate file %s\n", trace_context[idx].trace_codedbuf_fn); 32221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan truncate_file(trace_context[idx].trace_fp_log); 323b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 32421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 32521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 32621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan trace_context[idx].trace_sequence_start = 0; /* only truncate coded file when meet next new sequence */ 32721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 32821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_status = vaMapBuffer(dpy, trace_context[idx].trace_codedbuf, (void **)(&buf_list)); 32921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan if (va_status != VA_STATUS_SUCCESS) 33021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan return; 33121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 33221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "==========dump codedbuf into file %s\n", trace_context[idx].trace_codedbuf_fn); 33321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 33421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan while (buf_list != NULL) { 33521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned int i; 33621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 33721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tsize = %d\n", buf_list->size); 338eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan if (trace_context[idx].trace_fp_codedbuf) 33921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan fwrite(buf_list->buf, buf_list->size, 1, trace_context[idx].trace_fp_codedbuf); 34021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 34121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan for (i=0; i<buf_list->size; i++) 34221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan check_sum ^= *((unsigned char *)buf_list->buf + i); 34321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 34421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan buf_list = buf_list->next; 34521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan } 34621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan vaUnmapBuffer(dpy,trace_context[idx].trace_codedbuf); 34721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 34821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tchecksum = 0x%02x\n", check_sum); 34936bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 350b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 351b0fac498ca4863166252f1268fda83394db54153Fei Jiang 352b0fac498ca4863166252f1268fda83394db54153Fei Jiang 35321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanvoid va_TraceSurface(VADisplay dpy) 35421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan{ 3556579ab9cbc1c3f172a11d37a00c2bb7566b6587aGuoliang Ji unsigned int i; 35621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned int fourcc; /* following are output argument */ 35721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned int luma_stride; 35821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned int chroma_u_stride; 35921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned int chroma_v_stride; 36021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned int luma_offset; 36121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned int chroma_u_offset; 36221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned int chroma_v_offset; 36321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned int buffer_name; 36421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan void *buffer = NULL; 36521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned char *Y_data, *UV_data, *tmp; 36621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VAStatus va_status; 36721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan DPY2INDEX(dpy); 3685b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang 36921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "==========dump surface data in file %s\n", trace_context[idx].trace_surface_fn); 37021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 37121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan if ((file_size(trace_context[idx].trace_fp_surface) >= trace_logsize)) { 37221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "==========truncate file %s\n", trace_context[idx].trace_surface_fn); 37321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan truncate_file(trace_context[idx].trace_fp_surface); 37421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan } 37536bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 37621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 37710965d59ea630e8a6856845faffb8e0f39b159a3Kun Wang va_status = vaLockSurface( 37810965d59ea630e8a6856845faffb8e0f39b159a3Kun Wang dpy, 37910965d59ea630e8a6856845faffb8e0f39b159a3Kun Wang trace_context[idx].trace_rendertarget, 38010965d59ea630e8a6856845faffb8e0f39b159a3Kun Wang &fourcc, 38110965d59ea630e8a6856845faffb8e0f39b159a3Kun Wang &luma_stride, &chroma_u_stride, &chroma_v_stride, 38210965d59ea630e8a6856845faffb8e0f39b159a3Kun Wang &luma_offset, &chroma_u_offset, &chroma_v_offset, 38310965d59ea630e8a6856845faffb8e0f39b159a3Kun Wang &buffer_name, &buffer); 38421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 38521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan if (va_status != VA_STATUS_SUCCESS) { 38621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "Error:vaLockSurface failed\n"); 38721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan return; 38821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan } 38921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 39021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tfourcc = 0x%08x\n", fourcc); 39121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\twidth = %d\n", trace_context[idx].trace_frame_width); 39221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\theight = %d\n", trace_context[idx].trace_frame_height); 39321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tluma_stride = %d\n", luma_stride); 39421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tchroma_u_stride = %d\n", chroma_u_stride); 39521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tchroma_v_stride = %d\n", chroma_v_stride); 39621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tluma_offset = %d\n", luma_offset); 39721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tchroma_u_offset = %d\n", chroma_u_offset); 39821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tchroma_v_offset = %d\n", chroma_v_offset); 39921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 40010965d59ea630e8a6856845faffb8e0f39b159a3Kun Wang if (buffer == NULL) { 40121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "Error:vaLockSurface return NULL buffer\n"); 40236bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 40336bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang 40421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan vaUnlockSurface(dpy, trace_context[idx].trace_rendertarget); 40521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan return; 40621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan } 40721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tbuffer location = 0x%08x\n", buffer); 40836bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 40921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 41010965d59ea630e8a6856845faffb8e0f39b159a3Kun Wang Y_data = (unsigned char*)buffer; 41110965d59ea630e8a6856845faffb8e0f39b159a3Kun Wang UV_data = (unsigned char*)buffer + chroma_u_offset; 41221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 413eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan tmp = Y_data + luma_stride * trace_context[idx].trace_surface_yoff; 414eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan for (i=0; i<trace_context[idx].trace_surface_height; i++) { 41521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan if (trace_context[idx].trace_fp_surface) 416eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan fwrite(tmp + trace_context[idx].trace_surface_xoff, 417eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan trace_context[idx].trace_surface_width, 418eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan 1, trace_context[idx].trace_fp_surface); 41921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 420eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan tmp += luma_stride; 42121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan } 422eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan tmp = UV_data + chroma_u_stride * trace_context[idx].trace_surface_yoff; 42321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan if (fourcc == VA_FOURCC_NV12) { 424eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan for (i=0; i<trace_context[idx].trace_surface_height/2; i++) { 42521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan if (trace_context[idx].trace_fp_surface) 426eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan fwrite(tmp + trace_context[idx].trace_surface_xoff, 427eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan trace_context[idx].trace_surface_width, 428eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan 1, trace_context[idx].trace_fp_surface); 42921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 430eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan tmp += chroma_u_stride; 43121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan } 43221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan } 43321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 43421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan vaUnlockSurface(dpy, trace_context[idx].trace_rendertarget); 43521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 43636bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 43721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan} 43821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 439942aa8ad7f4275a637fb2c1e5edfab686110cc52Kun Wang 44010965d59ea630e8a6856845faffb8e0f39b159a3Kun Wangvoid va_TraceInitialize ( 441942aa8ad7f4275a637fb2c1e5edfab686110cc52Kun Wang VADisplay dpy, 44236bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang int *major_version, /* out */ 44336bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang int *minor_version /* out */ 444942aa8ad7f4275a637fb2c1e5edfab686110cc52Kun Wang) 445942aa8ad7f4275a637fb2c1e5edfab686110cc52Kun Wang{ 44610965d59ea630e8a6856845faffb8e0f39b159a3Kun Wang DPY2INDEX(dpy); 447942aa8ad7f4275a637fb2c1e5edfab686110cc52Kun Wang TRACE_FUNCNAME(idx); 448942aa8ad7f4275a637fb2c1e5edfab686110cc52Kun Wang} 449942aa8ad7f4275a637fb2c1e5edfab686110cc52Kun Wang 45010965d59ea630e8a6856845faffb8e0f39b159a3Kun Wangvoid va_TraceTerminate ( 451942aa8ad7f4275a637fb2c1e5edfab686110cc52Kun Wang VADisplay dpy 452942aa8ad7f4275a637fb2c1e5edfab686110cc52Kun Wang) 453942aa8ad7f4275a637fb2c1e5edfab686110cc52Kun Wang{ 45410965d59ea630e8a6856845faffb8e0f39b159a3Kun Wang DPY2INDEX(dpy); 455942aa8ad7f4275a637fb2c1e5edfab686110cc52Kun Wang TRACE_FUNCNAME(idx); 456942aa8ad7f4275a637fb2c1e5edfab686110cc52Kun Wang} 457942aa8ad7f4275a637fb2c1e5edfab686110cc52Kun Wang 458942aa8ad7f4275a637fb2c1e5edfab686110cc52Kun Wang 459293abef4f8172cc061d26f9d909c281b4190b514Bruce Bearevoid va_TraceCreateConfig( 460b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 461b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAProfile profile, 462b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAEntrypoint entrypoint, 463b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAConfigAttrib *attrib_list, 464b0fac498ca4863166252f1268fda83394db54153Fei Jiang int num_attribs, 465b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAConfigID *config_id /* out */ 46621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan) 467b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 468b0fac498ca4863166252f1268fda83394db54153Fei Jiang int i; 4695b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang int encode, decode, jpeg; 47021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan DPY2INDEX(dpy); 47121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 47221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan TRACE_FUNCNAME(idx); 473b0fac498ca4863166252f1268fda83394db54153Fei Jiang 47421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tprofile = %d\n", profile); 47521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tentrypoint = %d\n", entrypoint); 47621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tnum_attribs = %d\n", num_attribs); 477b0fac498ca4863166252f1268fda83394db54153Fei Jiang for (i = 0; i < num_attribs; i++) { 47836bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, "\t\tattrib_list[%d].type = 0x%08x\n", i, attrib_list[i].type); 47921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t\tattrib_list[%d].value = 0x%08x\n", i, attrib_list[i].value); 480b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 48136bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 482b0fac498ca4863166252f1268fda83394db54153Fei Jiang 48321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan trace_context[idx].trace_profile = profile; 48421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan trace_context[idx].trace_entrypoint = entrypoint; 4855b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang 4865b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang /* avoid to create so many empty files */ 4875b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang encode = (trace_context[idx].trace_entrypoint == VAEntrypointEncSlice); 4885b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang decode = (trace_context[idx].trace_entrypoint == VAEntrypointVLD); 4895b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang jpeg = (trace_context[idx].trace_entrypoint == VAEntrypointEncPicture); 4905b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang if ((encode && (trace_flag & VA_TRACE_FLAG_SURFACE_ENCODE)) || 4915b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang (decode && (trace_flag & VA_TRACE_FLAG_SURFACE_DECODE)) || 4925b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang (jpeg && (trace_flag & VA_TRACE_FLAG_SURFACE_JPEG))) { 4935b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang FILE *tmp = fopen(trace_context[idx].trace_surface_fn, "w"); 4945b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang 4955b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang if (tmp) 4965b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang trace_context[idx].trace_fp_surface = tmp; 4975b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang else { 4985b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang va_errorMessage("Open file %s failed (%s)\n", 4995b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang trace_context[idx].trace_surface_fn, 5005b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang strerror(errno)); 5015b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang trace_context[idx].trace_fp_surface = NULL; 5025b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang trace_flag &= ~(VA_TRACE_FLAG_SURFACE); 5035b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang } 5045b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang } 5055b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang 5065b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang if (encode && (trace_flag & VA_TRACE_FLAG_CODEDBUF)) { 5075b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang FILE *tmp = fopen(trace_context[idx].trace_codedbuf_fn, "w"); 5085b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang 5095b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang if (tmp) 5105b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang trace_context[idx].trace_fp_codedbuf = tmp; 5115b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang else { 5125b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang va_errorMessage("Open file %s failed (%s)\n", 5135b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang trace_context[idx].trace_codedbuf_fn, 5145b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang strerror(errno)); 5155b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang trace_context[idx].trace_fp_codedbuf = NULL; 5165b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang trace_flag &= ~VA_TRACE_FLAG_CODEDBUF; 5175b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang } 5185b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang } 519b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 520b0fac498ca4863166252f1268fda83394db54153Fei Jiang 5214b672db6ee89c9846451bbab23cf18e93c4260b2hding 5224b672db6ee89c9846451bbab23cf18e93c4260b2hdingvoid va_TraceCreateSurfaces( 523b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 524b0fac498ca4863166252f1268fda83394db54153Fei Jiang int width, 525b0fac498ca4863166252f1268fda83394db54153Fei Jiang int height, 526b0fac498ca4863166252f1268fda83394db54153Fei Jiang int format, 527b0fac498ca4863166252f1268fda83394db54153Fei Jiang int num_surfaces, 5284b672db6ee89c9846451bbab23cf18e93c4260b2hding VASurfaceID *surfaces, /* out */ 5294b672db6ee89c9846451bbab23cf18e93c4260b2hding VASurfaceAttrib *attrib_list, 5304b672db6ee89c9846451bbab23cf18e93c4260b2hding unsigned int num_attribs 53121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan) 532b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 533b0fac498ca4863166252f1268fda83394db54153Fei Jiang int i; 53421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan DPY2INDEX(dpy); 53521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 53621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan TRACE_FUNCNAME(idx); 537b0fac498ca4863166252f1268fda83394db54153Fei Jiang 53821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\twidth = %d\n", width); 53921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\theight = %d\n", height); 54021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tformat = %d\n", format); 54121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tnum_surfaces = %d\n", num_surfaces); 542b0fac498ca4863166252f1268fda83394db54153Fei Jiang 543b0fac498ca4863166252f1268fda83394db54153Fei Jiang for (i = 0; i < num_surfaces; i++) 54421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t\tsurfaces[%d] = 0x%08x\n", i, surfaces[i]); 54536bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang 54636bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 547b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 548b0fac498ca4863166252f1268fda83394db54153Fei Jiang 549b0fac498ca4863166252f1268fda83394db54153Fei Jiang 550293abef4f8172cc061d26f9d909c281b4190b514Bruce Bearevoid va_TraceCreateContext( 551b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 552b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAConfigID config_id, 553b0fac498ca4863166252f1268fda83394db54153Fei Jiang int picture_width, 554b0fac498ca4863166252f1268fda83394db54153Fei Jiang int picture_height, 555b0fac498ca4863166252f1268fda83394db54153Fei Jiang int flag, 556b0fac498ca4863166252f1268fda83394db54153Fei Jiang VASurfaceID *render_targets, 557b0fac498ca4863166252f1268fda83394db54153Fei Jiang int num_render_targets, 55836bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang VAContextID *context /* out */ 55921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan) 560b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 561b0fac498ca4863166252f1268fda83394db54153Fei Jiang int i; 56221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan DPY2INDEX(dpy); 563b0fac498ca4863166252f1268fda83394db54153Fei Jiang 56421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan TRACE_FUNCNAME(idx); 56521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 56621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\twidth = %d\n", picture_width); 56721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\theight = %d\n", picture_height); 56821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tflag = 0x%08x\n", flag); 56921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tnum_render_targets = %d\n", num_render_targets); 570b0fac498ca4863166252f1268fda83394db54153Fei Jiang for (i=0; i<num_render_targets; i++) 57121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t\trender_targets[%d] = 0x%08x\n", i, render_targets[i]); 57221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tcontext = 0x%08x\n", *context); 57336bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 574b0fac498ca4863166252f1268fda83394db54153Fei Jiang 57521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan trace_context[idx].trace_context = *context; 576b0fac498ca4863166252f1268fda83394db54153Fei Jiang 57721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan trace_context[idx].trace_frame_no = 0; 57821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan trace_context[idx].trace_slice_no = 0; 57921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 58021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan trace_context[idx].trace_frame_width = picture_width; 58121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan trace_context[idx].trace_frame_height = picture_height; 582eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan 583eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan if (trace_context[idx].trace_surface_width == 0) 584eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan trace_context[idx].trace_surface_width = picture_width; 585eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan if (trace_context[idx].trace_surface_height == 0) 586eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan trace_context[idx].trace_surface_height = picture_height; 587b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 588b0fac498ca4863166252f1268fda83394db54153Fei Jiang 589b0fac498ca4863166252f1268fda83394db54153Fei Jiang 590b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic char * buffer_type_to_string(int type) 591b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 592b0fac498ca4863166252f1268fda83394db54153Fei Jiang switch (type) { 593b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAPictureParameterBufferType: return "VAPictureParameterBufferType"; 594b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAIQMatrixBufferType: return "VAIQMatrixBufferType"; 595b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VABitPlaneBufferType: return "VABitPlaneBufferType"; 596b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VASliceGroupMapBufferType: return "VASliceGroupMapBufferType"; 597b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VASliceParameterBufferType: return "VASliceParameterBufferType"; 598b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VASliceDataBufferType: return "VASliceDataBufferType"; 599b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAProtectedSliceDataBufferType: return "VAProtectedSliceDataBufferType"; 600b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAMacroblockParameterBufferType: return "VAMacroblockParameterBufferType"; 601b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAResidualDataBufferType: return "VAResidualDataBufferType"; 602b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VADeblockingParameterBufferType: return "VADeblockingParameterBufferType"; 603b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAImageBufferType: return "VAImageBufferType"; 604b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncCodedBufferType: return "VAEncCodedBufferType"; 605b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncSequenceParameterBufferType: return "VAEncSequenceParameterBufferType"; 606b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncPictureParameterBufferType: return "VAEncPictureParameterBufferType"; 607b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncSliceParameterBufferType: return "VAEncSliceParameterBufferType"; 60821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan case VAEncMiscParameterBufferType: return "VAEncMiscParameterBufferType"; 609b0fac498ca4863166252f1268fda83394db54153Fei Jiang default: return "UnknowBuffer"; 610b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 611b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 612b0fac498ca4863166252f1268fda83394db54153Fei Jiang 61321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanvoid va_TraceMapBuffer ( 61421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VADisplay dpy, 61536bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang VABufferID buf_id, /* in */ 61636bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang void **pbuf /* out */ 61721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan) 61821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan{ 61921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VABufferType type; 62021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned int size; 62121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned int num_elements; 62221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 62321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VACodedBufferSegment *buf_list; 62421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan int i = 0; 62521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 62621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan DPY2INDEX(dpy); 62721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 62821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan vaBufferInfo(dpy, trace_context[idx].trace_context, buf_id, &type, &size, &num_elements); 62921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan /* 63072b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx, "\tbuf_id=0x%x\n", buf_id); 63172b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx, "\tbuf_type=%s\n", buffer_type_to_string(type)); 63272b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx, "\tbuf_size=%s\n", size); 63372b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx, "\tbuf_elements=%s\n", &num_elements); 63421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan */ 63521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 63621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan /* only trace CodedBuffer */ 63721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan if (type != VAEncCodedBufferType) 63821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan return; 63921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 64021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan buf_list = (VACodedBufferSegment *)(*pbuf); 64121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan while (buf_list != NULL) { 64221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tCodedbuf[%d] =\n", i++); 64321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 64421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t size = %d\n", buf_list->size); 64521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t bit_offset = %d\n", buf_list->bit_offset); 64621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t status = 0x%08x\n", buf_list->status); 64721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t reserved = 0x%08x\n", buf_list->reserved); 64821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t buf = 0x%08x\n", buf_list->buf); 64921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 65021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan buf_list = buf_list->next; 65121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan } 65236bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 65321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan} 654b0fac498ca4863166252f1268fda83394db54153Fei Jiang 65521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanstatic void va_TraceVABuffers( 656b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 657b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 658b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID buffer, 659b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType type, 660b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int size, 661b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int num_elements, 662b0fac498ca4863166252f1268fda83394db54153Fei Jiang void *pbuf 66321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan) 664b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 66521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned int i; 666b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned char *p = pbuf; 66721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned char check_sum = 0; 66821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan DPY2INDEX(dpy); 66921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 67072b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx, "%s\n", buffer_type_to_string(type)); 671b0fac498ca4863166252f1268fda83394db54153Fei Jiang 672b0fac498ca4863166252f1268fda83394db54153Fei Jiang for (i=0; i<size; i++) { 67321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned char value = p[i]; 67421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 6755b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang if ((trace_flag & VA_TRACE_FLAG_BUFDATA) && ((i%16) == 0)) 67621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\n0x%08x:", i); 67721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 6785b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang if (trace_flag & VA_TRACE_FLAG_BUFDATA) 67921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, " %02x", value); 68021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 68121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan check_sum ^= value; 682b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 683b0fac498ca4863166252f1268fda83394db54153Fei Jiang 68421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tchecksum = 0x%02x\n", check_sum & 0xff); 68536bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 68621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 68721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan return; 688b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 689b0fac498ca4863166252f1268fda83394db54153Fei Jiang 690b0fac498ca4863166252f1268fda83394db54153Fei Jiang 691b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic void va_TraceVAPictureParameterBufferMPEG2( 692b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 693b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 694b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID buffer, 695b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType type, 696b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int size, 697b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int num_elements, 698b0fac498ca4863166252f1268fda83394db54153Fei Jiang void *data) 699b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 70072b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang VAPictureParameterBufferMPEG2 *p=(VAPictureParameterBufferMPEG2 *)data; 70121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan DPY2INDEX(dpy); 70272b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang 70350ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx,"VAPictureParameterBufferMPEG2\n"); 70472b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang 70572b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\thorizontal size= %d\n", p->horizontal_size); 70672b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tvertical size= %d\n", p->vertical_size); 70772b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tforward reference picture= %d\n", p->forward_reference_picture); 70872b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tbackward reference picture= %d\n", p->backward_reference_picture); 70972b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tpicture coding type= %d\n", p->picture_coding_type); 71072b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tf mode= %d\n", p->f_code); 71172b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang 71272b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tpicture coding extension = %d\n", p->picture_coding_extension.value); 71372b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tintra_dc_precision= %d\n", p->picture_coding_extension.bits.intra_dc_precision); 71472b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tpicture_structure= %d\n", p->picture_coding_extension.bits.picture_structure); 71572b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\ttop_field_first= %d\n", p->picture_coding_extension.bits.top_field_first); 71672b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tframe_pred_frame_dct= %d\n", p->picture_coding_extension.bits.frame_pred_frame_dct); 71772b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tconcealment_motion_vectors= %d\n", p->picture_coding_extension.bits.concealment_motion_vectors); 71872b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tq_scale_type= %d\n", p->picture_coding_extension.bits.q_scale_type); 71972b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tintra_vlc_format= %d\n", p->picture_coding_extension.bits.intra_vlc_format); 72072b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\talternate_scan= %d\n", p->picture_coding_extension.bits.alternate_scan); 72172b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\trepeat_first_field= %d\n", p->picture_coding_extension.bits.repeat_first_field); 72272b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tprogressive_frame= %d\n", p->picture_coding_extension.bits.progressive_frame); 72372b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tis_first_field= %d\n", p->picture_coding_extension.bits.is_first_field); 72436bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 72572b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang 726b0fac498ca4863166252f1268fda83394db54153Fei Jiang return; 727b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 728b0fac498ca4863166252f1268fda83394db54153Fei Jiang 729b0fac498ca4863166252f1268fda83394db54153Fei Jiang 730b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic void va_TraceVAIQMatrixBufferMPEG2( 731b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 732b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 733b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID buffer, 734b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType type, 735b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int size, 736b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int num_elements, 737b0fac498ca4863166252f1268fda83394db54153Fei Jiang void *data) 738b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 73972b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang VAIQMatrixBufferMPEG2 *p=(VAIQMatrixBufferMPEG2 *)data; 74021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan DPY2INDEX(dpy); 74172b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang 74272b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"VAIQMatrixBufferMPEG2\n"); 74372b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang 74472b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tload_intra_quantiser_matrix = %d\n", p->load_intra_quantiser_matrix); 74572b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tload_non_intra_quantiser_matrix = %d\n", p->load_non_intra_quantiser_matrix); 74672b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tload_chroma_intra_quantiser_matrix = %d\n", p->load_chroma_intra_quantiser_matrix); 74772b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tload_chroma_non_intra_quantiser_matrix = %d\n", p->load_chroma_non_intra_quantiser_matrix); 74872b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tintra_quantiser_matrix = %d\n", p->intra_quantiser_matrix); 74972b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tnon_intra_quantiser_matrix = %d\n", p->non_intra_quantiser_matrix); 75072b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tchroma_intra_quantiser_matrix = %d\n", p->chroma_intra_quantiser_matrix); 75172b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tchroma_non_intra_quantiser_matrix = %d\n", p->chroma_non_intra_quantiser_matrix); 75236bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 75372b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang 754b0fac498ca4863166252f1268fda83394db54153Fei Jiang return; 755b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 756b0fac498ca4863166252f1268fda83394db54153Fei Jiang 757b0fac498ca4863166252f1268fda83394db54153Fei Jiang 758b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic void va_TraceVASliceParameterBufferMPEG2( 759b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 760b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 761b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID buffer, 762b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType type, 763b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int size, 764b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int num_elements, 765b0fac498ca4863166252f1268fda83394db54153Fei Jiang void *data) 766b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 76772b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang VASliceParameterBufferMPEG2 *p=(VASliceParameterBufferMPEG2 *)data; 76872b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang 76921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan DPY2INDEX(dpy); 77021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 77121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan trace_context[idx].trace_slice_no++; 77221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 77372b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang trace_context[idx].trace_slice_size = p->slice_data_size; 77472b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang 77572b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"VASliceParameterBufferMPEG2\n"); 77672b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang 77772b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tslice_data_size = %d\n", p->slice_data_size); 77872b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tslice_data_offset = %d\n", p->slice_data_offset); 77972b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tslice_data_flag = %d\n", p->slice_data_flag); 78072b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tmacroblock_offset = %d\n", p->macroblock_offset); 78172b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tslice_horizontal_position = %d\n", p->slice_horizontal_position); 78272b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tslice_vertical_position = %d\n", p->slice_vertical_position); 78372b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tquantiser_scale_code = %d\n", p->quantiser_scale_code); 78472b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tintra_slice_flag = %d\n", p->intra_slice_flag); 78536bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 78672b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang 787b0fac498ca4863166252f1268fda83394db54153Fei Jiang return; 788b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 789b0fac498ca4863166252f1268fda83394db54153Fei Jiang 790b0fac498ca4863166252f1268fda83394db54153Fei Jiang 791b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic void va_TraceVAPictureParameterBufferMPEG4( 792b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 793b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 794b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID buffer, 795b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType type, 796b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int size, 797b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int num_elements, 798b0fac498ca4863166252f1268fda83394db54153Fei Jiang void *data) 799b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 80072b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang int i; 80172b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang VAPictureParameterBufferMPEG4 *p=(VAPictureParameterBufferMPEG4 *)data; 802b0fac498ca4863166252f1268fda83394db54153Fei Jiang 80372b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang DPY2INDEX(dpy); 80472b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang 80572b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"*VAPictureParameterBufferMPEG4\n"); 80672b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tvop_width = %d\n", p->vop_width); 80772b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tvop_height = %d\n", p->vop_height); 80872b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tforward_reference_picture = %d\n", p->forward_reference_picture); 80972b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tbackward_reference_picture = %d\n", p->backward_reference_picture); 81072b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tvol_fields value = %d\n", p->vol_fields.value); 81172b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tshort_video_header= %d\n", p->vol_fields.bits.short_video_header); 81272b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tchroma_format= %d\n", p->vol_fields.bits.chroma_format); 81372b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tinterlaced= %d\n", p->vol_fields.bits.interlaced); 81472b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tobmc_disable= %d\n", p->vol_fields.bits.obmc_disable); 81572b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tsprite_enable= %d\n", p->vol_fields.bits.sprite_enable); 81672b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tsprite_warping_accuracy= %d\n", p->vol_fields.bits.sprite_warping_accuracy); 81772b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tquant_type= %d\n", p->vol_fields.bits.quant_type); 81872b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tquarter_sample= %d\n", p->vol_fields.bits.quarter_sample); 81972b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tdata_partitioned= %d\n", p->vol_fields.bits.data_partitioned); 82072b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\treversible_vlc= %d\n", p->vol_fields.bits.reversible_vlc); 82172b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tresync_marker_disable= %d\n", p->vol_fields.bits.resync_marker_disable); 82272b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tno_of_sprite_warping_points = %d\n", p->no_of_sprite_warping_points); 82372b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tsprite_trajectory_du ="); 82472b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang for(i=0;i<3;i++) 82572b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\t%d", p->sprite_trajectory_du[i]); 82672b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang 82772b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\n"); 82872b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tsprite_trajectory_dv ="); 82972b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang for(i=0;i<3;i++) 83072b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\t%d", p->sprite_trajectory_dv[i]); 83136bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx,"\n"); 83272b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tvop_fields value = %d\n", p->vop_fields.value); 83372b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tvop_coding_type= %d\n", p->vop_fields.bits.vop_coding_type); 83472b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tbackward_reference_vop_coding_type= %d\n", p->vop_fields.bits.backward_reference_vop_coding_type); 83572b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tvop_rounding_type= %d\n", p->vop_fields.bits.vop_rounding_type); 83672b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tintra_dc_vlc_thr= %d\n", p->vop_fields.bits.intra_dc_vlc_thr); 83772b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\ttop_field_first= %d\n", p->vop_fields.bits.top_field_first); 83872b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\talternate_vertical_scan_flag= %d\n", p->vop_fields.bits.alternate_vertical_scan_flag); 83972b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tvop_fcode_forward = %d\n", p->vop_fcode_forward); 84072b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tvop_fcode_backward = %d\n", p->vop_fcode_backward); 84172b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tnum_gobs_in_vop = %d\n", p->num_gobs_in_vop); 84272b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tnum_macroblocks_in_gob = %d\n", p->num_macroblocks_in_gob); 84372b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tTRB = %d\n", p->TRB); 84472b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tTRD = %d\n", p->TRD); 84536bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 84672b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang 847b0fac498ca4863166252f1268fda83394db54153Fei Jiang return; 848b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 849b0fac498ca4863166252f1268fda83394db54153Fei Jiang 850b0fac498ca4863166252f1268fda83394db54153Fei Jiang 851b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic void va_TraceVAIQMatrixBufferMPEG4( 852b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 853b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 854b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID buffer, 855b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType type, 856b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int size, 857b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int num_elements, 858b0fac498ca4863166252f1268fda83394db54153Fei Jiang void *data) 859b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 86072b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang int i; 86172b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang VAIQMatrixBufferMPEG4 *p=(VAIQMatrixBufferMPEG4 *)data; 86221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan DPY2INDEX(dpy); 86321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 86472b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"VAIQMatrixBufferMPEG4\n"); 86572b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang 86672b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tload_intra_quant_mat = %d\n", p->load_intra_quant_mat); 86772b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tload_non_intra_quant_mat = %d\n", p->load_non_intra_quant_mat); 86872b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tintra_quant_mat =\n"); 86972b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang for(i=0;i<64;i++) 87072b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\t\t%d\n", p->intra_quant_mat[i]); 87172b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang 87272b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tnon_intra_quant_mat =\n"); 87372b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang for(i=0;i<64;i++) 87472b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\t\t%d\n", p->non_intra_quant_mat[i]); 87536bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 87672b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang 877b0fac498ca4863166252f1268fda83394db54153Fei Jiang return; 878b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 879b0fac498ca4863166252f1268fda83394db54153Fei Jiang 88050ce1dbe8a3402d56c94238710964507db7d99e1Kun Wangstatic void va_TraceVAEncSequenceParameterBufferMPEG4( 88150ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang VADisplay dpy, 88250ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang VAContextID context, 88350ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang VABufferID buffer, 88450ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang VABufferType type, 88550ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang unsigned int size, 88650ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang unsigned int num_elements, 88750ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang void *data) 88850ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang{ 88950ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang VAEncSequenceParameterBufferMPEG4 *p = (VAEncSequenceParameterBufferMPEG4 *)data; 89050ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang DPY2INDEX(dpy); 89150ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang 89250ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "VAEncSequenceParameterBufferMPEG4\n"); 89350ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang 89450ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "\tprofile_and_level_indication = %d\n", p->profile_and_level_indication); 89550ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "\tintra_period = %d\n", p->intra_period); 89650ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "\tvideo_object_layer_width = %d\n", p->video_object_layer_width); 89750ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "\tvideo_object_layer_height = %d\n", p->video_object_layer_height); 89850ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "\tvop_time_increment_resolution = %d\n", p->vop_time_increment_resolution); 89950ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "\tfixed_vop_rate = %d\n", p->fixed_vop_rate); 90050ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "\tfixed_vop_time_increment = %d\n", p->fixed_vop_time_increment); 90150ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "\tbits_per_second = %d\n", p->bits_per_second); 90250ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "\tframe_rate = %d\n", p->frame_rate); 90350ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "\tinitial_qp = %d\n", p->initial_qp); 90450ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "\tmin_qp = %d\n", p->min_qp); 90550ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, NULL); 90650ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang 90750ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang /* start a new sequce, coded log file can be truncated */ 90850ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang trace_context[idx].trace_sequence_start = 1; 90950ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang 91050ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang return; 91150ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang} 91250ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang 91350ce1dbe8a3402d56c94238710964507db7d99e1Kun Wangstatic void va_TraceVAEncPictureParameterBufferMPEG4( 91450ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang VADisplay dpy, 91550ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang VAContextID context, 91650ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang VABufferID buffer, 91750ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang VABufferType type, 91850ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang unsigned int size, 91950ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang unsigned int num_elements, 92050ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang void *data) 92150ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang{ 92250ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang VAEncPictureParameterBufferMPEG4 *p = (VAEncPictureParameterBufferMPEG4 *)data; 92350ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang DPY2INDEX(dpy); 92450ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang 92550ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "VAEncPictureParameterBufferMPEG4\n"); 92650ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "\treference_picture = 0x%08x\n", p->reference_picture); 92750ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "\treconstructed_picture = 0x%08x\n", p->reconstructed_picture); 92850ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "\tcoded_buf = %08x\n", p->coded_buf); 92950ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "\tpicture_width = %d\n", p->picture_width); 93050ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "\tpicture_height = %d\n", p->picture_height); 93150ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "\tmodulo_time_base = %d\n", p->modulo_time_base); 93250ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "\tvop_time_increment = %d\n", p->vop_time_increment); 93350ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "\tpicture_type = %d\n", p->picture_type); 93450ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, NULL); 93550ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang 93650ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang trace_context[idx].trace_codedbuf = p->coded_buf; 93750ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang 93850ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang return; 93950ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang} 94050ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang 941b0fac498ca4863166252f1268fda83394db54153Fei Jiang 942b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic void va_TraceVASliceParameterBufferMPEG4( 943b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 944b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 945b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID buffer, 946b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType type, 947b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int size, 948b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int num_elements, 949b0fac498ca4863166252f1268fda83394db54153Fei Jiang void *data) 950b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 95172b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang VASliceParameterBufferMPEG4 *p=(VASliceParameterBufferMPEG4 *)data; 95272b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang 95321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan DPY2INDEX(dpy); 95421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 95521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan trace_context[idx].trace_slice_no++; 95621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 95772b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang trace_context[idx].trace_slice_size = p->slice_data_size; 95872b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang 95972b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"VASliceParameterBufferMPEG4\n"); 96072b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang 96172b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tslice_data_size = %d\n", p->slice_data_size); 96272b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tslice_data_offset = %d\n", p->slice_data_offset); 96372b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tslice_data_flag = %d\n", p->slice_data_flag); 96472b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tmacroblock_offset = %d\n", p->macroblock_offset); 96572b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tmacroblock_number = %d\n", p->macroblock_number); 96672b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx,"\tquant_scale = %d\n", p->quant_scale); 96736bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 96872b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang 969b0fac498ca4863166252f1268fda83394db54153Fei Jiang return; 970b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 971b0fac498ca4863166252f1268fda83394db54153Fei Jiang 972b0fac498ca4863166252f1268fda83394db54153Fei Jiang 97336bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sangstatic inline void va_TraceFlagIfNotZero( 97436bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang int idx, /* in */ 97536bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang const char *name, /* in */ 97636bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang unsigned int flag /* in */ 97736bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang) 97836bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang{ 97936bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang if (flag != 0) { 98036bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, "%s = %x\n", name, flag); 98136bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang } 98236bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang} 98336bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang 98436bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang 985b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic void va_TraceVAPictureParameterBufferH264( 986b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 987b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 988b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID buffer, 989b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType type, 990b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int size, 991b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int num_elements, 992b0fac498ca4863166252f1268fda83394db54153Fei Jiang void *data) 993b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 994b0fac498ca4863166252f1268fda83394db54153Fei Jiang int i; 995b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAPictureParameterBufferH264 *p = (VAPictureParameterBufferH264*)data; 99672b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang 99772b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang DPY2INDEX(dpy); 998b0fac498ca4863166252f1268fda83394db54153Fei Jiang 99972b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx, "VAPictureParameterBufferH264\n"); 1000b0fac498ca4863166252f1268fda83394db54153Fei Jiang 100136bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, "\tCurrPic.picture_id = 0x%08x\n", p->CurrPic.picture_id); 100221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tCurrPic.frame_idx = %d\n", p->CurrPic.frame_idx); 100321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tCurrPic.flags = %d\n", p->CurrPic.flags); 100421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tCurrPic.TopFieldOrderCnt = %d\n", p->CurrPic.TopFieldOrderCnt); 100521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tCurrPic.BottomFieldOrderCnt = %d\n", p->CurrPic.BottomFieldOrderCnt); 1006b0fac498ca4863166252f1268fda83394db54153Fei Jiang 100721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tReferenceFrames (TopFieldOrderCnt-BottomFieldOrderCnt-picture_id-frame_idx:\n"); 1008b0fac498ca4863166252f1268fda83394db54153Fei Jiang for (i = 0; i < 16; i++) 1009b0fac498ca4863166252f1268fda83394db54153Fei Jiang { 101021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan if (p->ReferenceFrames[i].flags != VA_PICTURE_H264_INVALID) { 101136bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, "\t\t%d-%d-0x%08x-%d\n", 101221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan p->ReferenceFrames[i].TopFieldOrderCnt, 101321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan p->ReferenceFrames[i].BottomFieldOrderCnt, 101421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan p->ReferenceFrames[i].picture_id, 101521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan p->ReferenceFrames[i].frame_idx); 101621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan } else 101772b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx, "\t\tinv-inv-inv-inv\n"); 1018b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 101921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\n"); 102021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 102121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tpicture_width_in_mbs_minus1 = %d\n", p->picture_width_in_mbs_minus1); 102221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tpicture_height_in_mbs_minus1 = %d\n", p->picture_height_in_mbs_minus1); 102321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tbit_depth_luma_minus8 = %d\n", p->bit_depth_luma_minus8); 102421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tbit_depth_chroma_minus8 = %d\n", p->bit_depth_chroma_minus8); 102521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tnum_ref_frames = %d\n", p->num_ref_frames); 102621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tseq fields = %d\n", p->seq_fields.value); 102721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tchroma_format_idc = %d\n", p->seq_fields.bits.chroma_format_idc); 102821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tresidual_colour_transform_flag = %d\n", p->seq_fields.bits.residual_colour_transform_flag); 102921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tframe_mbs_only_flag = %d\n", p->seq_fields.bits.frame_mbs_only_flag); 103021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tmb_adaptive_frame_field_flag = %d\n", p->seq_fields.bits.mb_adaptive_frame_field_flag); 103121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tdirect_8x8_inference_flag = %d\n", p->seq_fields.bits.direct_8x8_inference_flag); 103221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tMinLumaBiPredSize8x8 = %d\n", p->seq_fields.bits.MinLumaBiPredSize8x8); 103321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tnum_slice_groups_minus1 = %d\n", p->num_slice_groups_minus1); 103421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tslice_group_map_type = %d\n", p->slice_group_map_type); 103521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tslice_group_change_rate_minus1 = %d\n", p->slice_group_change_rate_minus1); 103621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tpic_init_qp_minus26 = %d\n", p->pic_init_qp_minus26); 103721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tpic_init_qs_minus26 = %d\n", p->pic_init_qs_minus26); 103821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tchroma_qp_index_offset = %d\n", p->chroma_qp_index_offset); 103921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tsecond_chroma_qp_index_offset = %d\n", p->second_chroma_qp_index_offset); 104036bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, "\tpic_fields = 0x%03x\n", p->pic_fields.value); 104136bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceFlagIfNotZero(idx, "\t\tentropy_coding_mode_flag", p->pic_fields.bits.entropy_coding_mode_flag); 104236bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceFlagIfNotZero(idx, "\t\tweighted_pred_flag", p->pic_fields.bits.weighted_pred_flag); 104336bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceFlagIfNotZero(idx, "\t\tweighted_bipred_idc", p->pic_fields.bits.weighted_bipred_idc); 104436bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceFlagIfNotZero(idx, "\t\ttransform_8x8_mode_flag", p->pic_fields.bits.transform_8x8_mode_flag); 104536bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceFlagIfNotZero(idx, "\t\tfield_pic_flag", p->pic_fields.bits.field_pic_flag); 104636bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceFlagIfNotZero(idx, "\t\tconstrained_intra_pred_flag", p->pic_fields.bits.constrained_intra_pred_flag); 104736bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceFlagIfNotZero(idx, "\t\tpic_order_present_flag", p->pic_fields.bits.pic_order_present_flag); 104836bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceFlagIfNotZero(idx, "\t\tdeblocking_filter_control_present_flag", p->pic_fields.bits.deblocking_filter_control_present_flag); 104936bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceFlagIfNotZero(idx, "\t\tredundant_pic_cnt_present_flag", p->pic_fields.bits.redundant_pic_cnt_present_flag); 105036bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceFlagIfNotZero(idx, "\t\treference_pic_flag", p->pic_fields.bits.reference_pic_flag); 105121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tframe_num = %d\n", p->frame_num); 105236bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 1053b0fac498ca4863166252f1268fda83394db54153Fei Jiang 1054b0fac498ca4863166252f1268fda83394db54153Fei Jiang return; 1055b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 1056b0fac498ca4863166252f1268fda83394db54153Fei Jiang 1057b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic void va_TraceVASliceParameterBufferH264( 1058b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 1059b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 1060b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID buffer, 1061b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType type, 1062b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int size, 1063b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int num_elements, 1064b0fac498ca4863166252f1268fda83394db54153Fei Jiang void *data) 1065b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 1066b0fac498ca4863166252f1268fda83394db54153Fei Jiang int i; 1067b0fac498ca4863166252f1268fda83394db54153Fei Jiang VASliceParameterBufferH264* p = (VASliceParameterBufferH264*)data; 106821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan DPY2INDEX(dpy); 106921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 107021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan trace_context[idx].trace_slice_no++; 107121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan trace_context[idx].trace_slice_size = p->slice_data_size; 107221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 107372b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx, "VASliceParameterBufferH264\n"); 107421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tslice_data_size = %d\n", p->slice_data_size); 107521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tslice_data_offset = %d\n", p->slice_data_offset); 107621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tslice_data_flag = %d\n", p->slice_data_flag); 107721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tslice_data_bit_offset = %d\n", p->slice_data_bit_offset); 107821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tfirst_mb_in_slice = %d\n", p->first_mb_in_slice); 107921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tslice_type = %d\n", p->slice_type); 108021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tdirect_spatial_mv_pred_flag = %d\n", p->direct_spatial_mv_pred_flag); 108121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tnum_ref_idx_l0_active_minus1 = %d\n", p->num_ref_idx_l0_active_minus1); 108221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tnum_ref_idx_l1_active_minus1 = %d\n", p->num_ref_idx_l1_active_minus1); 108321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tcabac_init_idc = %d\n", p->cabac_init_idc); 108421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tslice_qp_delta = %d\n", p->slice_qp_delta); 108521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tdisable_deblocking_filter_idc = %d\n", p->disable_deblocking_filter_idc); 108621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tslice_alpha_c0_offset_div2 = %d\n", p->slice_alpha_c0_offset_div2); 108736bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, "\tslice_beta_offset_div2 = %d\n", p->slice_beta_offset_div2); 108821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 108921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan if (p->slice_type == 0 || p->slice_type == 1) { 109021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tRefPicList0 ="); 109121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan for (i = 0; i < p->num_ref_idx_l0_active_minus1 + 1; i++) { 109236bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, "%d-%d-0x%08x-%d\n", p->RefPicList0[i].TopFieldOrderCnt, p->RefPicList0[i].BottomFieldOrderCnt, p->RefPicList0[i].picture_id, p->RefPicList0[i].frame_idx); 1093b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 109421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan if (p->slice_type == 1) { 109521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tRefPicList1 ="); 1096b0fac498ca4863166252f1268fda83394db54153Fei Jiang for (i = 0; i < p->num_ref_idx_l1_active_minus1 + 1; i++) 1097b0fac498ca4863166252f1268fda83394db54153Fei Jiang { 109836bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, "%d-%d-0x%08x-%d\n", p->RefPicList1[i].TopFieldOrderCnt, p->RefPicList1[i].BottomFieldOrderCnt, p->RefPicList1[i].picture_id, p->RefPicList1[i].frame_idx); 1099b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 1100b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 1101b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 110221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 110321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tluma_log2_weight_denom = %d\n", p->luma_log2_weight_denom); 110421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tchroma_log2_weight_denom = %d\n", p->chroma_log2_weight_denom); 110521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tluma_weight_l0_flag = %d\n", p->luma_weight_l0_flag); 110621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan if (p->luma_weight_l0_flag) { 110721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan for (i = 0; i <= p->num_ref_idx_l0_active_minus1; i++) { 110821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t%d ", p->luma_weight_l0[i]); 110921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t%d ", p->luma_offset_l0[i]); 1110b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 1111b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 111236bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang 111321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tchroma_weight_l0_flag = %d\n", p->chroma_weight_l0_flag); 111421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan if (p->chroma_weight_l0_flag) { 111521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan for (i = 0; i <= p->num_ref_idx_l0_active_minus1; i++) { 111621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t\t%d ", p->chroma_weight_l0[i][0]); 111721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t\t%d ", p->chroma_offset_l0[i][0]); 111821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t\t%d ", p->chroma_weight_l0[i][1]); 111921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t\t%d ", p->chroma_offset_l0[i][1]); 1120b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 1121b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 112221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 112321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tluma_weight_l1_flag = %d\n", p->luma_weight_l1_flag); 112421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan if (p->luma_weight_l1_flag) { 112521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan for (i = 0; i <= p->num_ref_idx_l1_active_minus1; i++) { 112621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t\t%d ", p->luma_weight_l1[i]); 112721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t\t%d ", p->luma_offset_l1[i]); 1128b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 1129b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 113021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 113121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tchroma_weight_l1_flag = %d\n", p->chroma_weight_l1_flag); 113221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan if (p->chroma_weight_l1_flag) { 113321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan for (i = 0; i <= p->num_ref_idx_l1_active_minus1; i++) { 113421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t\t%d ", p->chroma_weight_l1[i][0]); 113521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t\t%d ", p->chroma_offset_l1[i][0]); 113621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t\t%d ", p->chroma_weight_l1[i][1]); 113721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t\t%d ", p->chroma_offset_l1[i][1]); 1138b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 113936bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, "\n"); 114036bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang } 114136bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 1142b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 1143b0fac498ca4863166252f1268fda83394db54153Fei Jiang 1144b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic void va_TraceVAIQMatrixBufferH264( 1145b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 1146b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 1147b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID buffer, 1148b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType type, 1149b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int size, 1150b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int num_elements, 1151b0fac498ca4863166252f1268fda83394db54153Fei Jiang void *data 1152b0fac498ca4863166252f1268fda83394db54153Fei Jiang) 1153b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 115472b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang int i, j; 1155b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAIQMatrixBufferH264* p = (VAIQMatrixBufferH264* )data; 115672b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang 115721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan DPY2INDEX(dpy); 115821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 115972b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx, "VAIQMatrixBufferH264\n"); 116021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 116121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tScalingList4x4[6][16]=\n"); 116221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan for (i = 0; i < 6; i++) { 116321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan for (j = 0; j < 16; j++) { 116421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t%d\t", p->ScalingList4x4[i][j]); 1165b0fac498ca4863166252f1268fda83394db54153Fei Jiang if ((j + 1) % 8 == 0) 116621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\n"); 1167b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 1168b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 1169b0fac498ca4863166252f1268fda83394db54153Fei Jiang 117021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tScalingList8x8[2][64]=\n"); 117121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan for (i = 0; i < 2; i++) { 117221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan for (j = 0; j < 64; j++) { 117321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t%d", p->ScalingList8x8[i][j]); 1174b0fac498ca4863166252f1268fda83394db54153Fei Jiang if ((j + 1) % 8 == 0) 117521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\n"); 117636bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang } 1177b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 117836bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang 117936bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 1180b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 1181b0fac498ca4863166252f1268fda83394db54153Fei Jiang 118221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanstatic void va_TraceVAEncSequenceParameterBufferH264( 118321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VADisplay dpy, 118421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VAContextID context, 118521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VABufferID buffer, 118621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VABufferType type, 118721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned int size, 118821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned int num_elements, 118921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan void *data) 119021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan{ 119121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VAEncSequenceParameterBufferH264 *p = (VAEncSequenceParameterBufferH264 *)data; 119221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan DPY2INDEX(dpy); 1193eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan unsigned int i; 11944b672db6ee89c9846451bbab23cf18e93c4260b2hding 119572b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx, "VAEncSequenceParameterBufferH264\n"); 11964b672db6ee89c9846451bbab23cf18e93c4260b2hding 119721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tseq_parameter_set_id = %d\n", p->seq_parameter_set_id); 119821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tlevel_idc = %d\n", p->level_idc); 119921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tintra_period = %d\n", p->intra_period); 120021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tintra_idr_period = %d\n", p->intra_idr_period); 12014b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tip_period = %d\n", p->ip_period); 12024b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tbits_per_second = %d\n", p->bits_per_second); 1203cceaa0568f77a7452857559614100b71fb36ee3awangkun va_TraceMsg(idx, "\tmax_num_ref_frames = %d\n", p->max_num_ref_frames); 120421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tpicture_width_in_mbs = %d\n", p->picture_width_in_mbs); 120521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tpicture_height_in_mbs = %d\n", p->picture_height_in_mbs); 12064b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tchroma_format_idc = %d\n", p->seq_fields.bits.chroma_format_idc); 12074b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tframe_mbs_only_flag = %d\n", p->seq_fields.bits.frame_mbs_only_flag); 12084b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tmb_adaptive_frame_field_flag = %d\n", p->seq_fields.bits.mb_adaptive_frame_field_flag); 12094b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tseq_scaling_matrix_present_flag = %d\n", p->seq_fields.bits.seq_scaling_matrix_present_flag); 12104b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tdirect_8x8_inference_flag = %d\n", p->seq_fields.bits.direct_8x8_inference_flag); 12114b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tlog2_max_frame_num_minus4 = %d\n", p->seq_fields.bits.log2_max_frame_num_minus4); 12124b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tpic_order_cnt_type = %d\n", p->seq_fields.bits.pic_order_cnt_type); 12134b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tlog2_max_pic_order_cnt_lsb_minus4 = %d\n", p->seq_fields.bits.log2_max_pic_order_cnt_lsb_minus4); 12144b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tdelta_pic_order_always_zero_flag = %d\n", p->seq_fields.bits.delta_pic_order_always_zero_flag); 12154b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tbit_depth_luma_minus8 = %d\n", p->bit_depth_luma_minus8); 12164b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tbit_depth_chroma_minus8 = %d\n", p->bit_depth_chroma_minus8); 12174b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tnum_ref_frames_in_pic_order_cnt_cycle = %d\n", p->num_ref_frames_in_pic_order_cnt_cycle); 12184b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\toffset_for_non_ref_pic = %d\n", p->offset_for_non_ref_pic); 12194b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\toffset_for_top_to_bottom_field = %d\n", p->offset_for_top_to_bottom_field); 12204b672db6ee89c9846451bbab23cf18e93c4260b2hding for(i = 0; i< p->max_num_ref_frames; ++i) 12214b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\toffset_for_ref_frame[%d] = %d\n", i, p->offset_for_ref_frame[i]); 12224b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tframe_cropping_flag = %d\n", p->frame_cropping_flag); 12234b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tframe_crop_left_offset = %d\n", p->frame_crop_left_offset); 12244b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tframe_crop_right_offset = %d\n", p->frame_crop_right_offset); 12254b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tframe_crop_top_offset = %d\n", p->frame_crop_top_offset); 12264b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tframe_crop_bottom_offset = %d\n", p->frame_crop_bottom_offset); 12274b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tvui_parameters_present_flag = %d\n", p->vui_parameters_present_flag); 12284b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\taspect_ratio_info_present_flag = %d\n", p->vui_fields.bits.aspect_ratio_info_present_flag); 12294b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\ttiming_info_present_flag = %d\n", p->vui_fields.bits.timing_info_present_flag); 12304b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tbitstream_restriction_flag = %d\n", p->vui_fields.bits.bitstream_restriction_flag); 12314b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tlog2_max_mv_length_horizontal = %d\n", p->vui_fields.bits.log2_max_mv_length_horizontal); 12324b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tlog2_max_mv_length_vertical = %d\n", p->vui_fields.bits.log2_max_mv_length_vertical); 12334b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\taspect_ratio_idc = %d\n", p->aspect_ratio_idc); 12344b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tsar_width = %d\n", p->sar_width); 12354b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tsar_height = %d\n", p->sar_height); 12364b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tnum_units_in_tick = %d\n", p->num_units_in_tick); 12374b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\ttime_scale = %d\n", p->time_scale); 12384b672db6ee89c9846451bbab23cf18e93c4260b2hding 123936bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 124021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 124121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan /* start a new sequce, coded log file can be truncated */ 124221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan trace_context[idx].trace_sequence_start = 1; 124336bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang 124421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan return; 124521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan} 124621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 12474b672db6ee89c9846451bbab23cf18e93c4260b2hding 124821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanstatic void va_TraceVAEncPictureParameterBufferH264( 124921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VADisplay dpy, 125021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VAContextID context, 125121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VABufferID buffer, 125221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VABufferType type, 125321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned int size, 125421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned int num_elements, 125521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan void *data) 125621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan{ 125721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VAEncPictureParameterBufferH264 *p = (VAEncPictureParameterBufferH264 *)data; 125821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan DPY2INDEX(dpy); 12594b672db6ee89c9846451bbab23cf18e93c4260b2hding int i; 12604b672db6ee89c9846451bbab23cf18e93c4260b2hding 12610295fce5ef0741be8ea0a8c67ea69e459deda2fcFei Jiang va_TraceMsg(idx, "VAEncPictureParameterBufferH264\n"); 12624b672db6ee89c9846451bbab23cf18e93c4260b2hding 12634b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tCurrPic.picture_id = 0x%08x\n", p->CurrPic.picture_id); 12644b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tCurrPic.frame_idx = %d\n", p->CurrPic.frame_idx); 12654b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tCurrPic.flags = %d\n", p->CurrPic.flags); 12664b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tCurrPic.TopFieldOrderCnt = %d\n", p->CurrPic.TopFieldOrderCnt); 12674b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tCurrPic.BottomFieldOrderCnt = %d\n", p->CurrPic.BottomFieldOrderCnt); 12684b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tReferenceFrames (TopFieldOrderCnt-BottomFieldOrderCnt-picture_id-frame_idx:\n"); 12694b672db6ee89c9846451bbab23cf18e93c4260b2hding for (i = 0; i < 16; i++) 12704b672db6ee89c9846451bbab23cf18e93c4260b2hding { 12714b672db6ee89c9846451bbab23cf18e93c4260b2hding if (p->ReferenceFrames[i].flags != VA_PICTURE_H264_INVALID) { 12724b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\t\t%d-%d-0x%08x-%d\n", 12734b672db6ee89c9846451bbab23cf18e93c4260b2hding p->ReferenceFrames[i].TopFieldOrderCnt, 12744b672db6ee89c9846451bbab23cf18e93c4260b2hding p->ReferenceFrames[i].BottomFieldOrderCnt, 12754b672db6ee89c9846451bbab23cf18e93c4260b2hding p->ReferenceFrames[i].picture_id, 12764b672db6ee89c9846451bbab23cf18e93c4260b2hding p->ReferenceFrames[i].frame_idx); 12774b672db6ee89c9846451bbab23cf18e93c4260b2hding } else 12784b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\t\tinv-inv-inv-inv\n"); 12794b672db6ee89c9846451bbab23cf18e93c4260b2hding } 128072b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx, "\tcoded_buf = %08x\n", p->coded_buf); 12814b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tpic_parameter_set_id = %d\n", p->pic_parameter_set_id); 12824b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tseq_parameter_set_id = %d\n", p->seq_parameter_set_id); 128372b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx, "\tlast_picture = 0x%08x\n", p->last_picture); 12844b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tframe_num = %d\n", p->frame_num); 12854b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tpic_init_qp = %d\n", p->pic_init_qp); 12864b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tnum_ref_idx_l0_active_minus1 = %d\n", p->num_ref_idx_l0_active_minus1); 12874b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tnum_ref_idx_l1_active_minus1 = %d\n", p->num_ref_idx_l1_active_minus1); 12884b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tchroma_qp_index_offset = %d\n", p->chroma_qp_index_offset); 12894b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tsecond_chroma_qp_index_offset = %d\n", p->second_chroma_qp_index_offset); 12904b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tpic_fields = 0x%03x\n", p->pic_fields.value); 12914b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tidr_pic_flag = %d\n", p->pic_fields.bits.idr_pic_flag); 12924b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\treference_pic_flag = %d\n", p->pic_fields.bits.reference_pic_flag); 12934b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tentropy_coding_mode_flag = %d\n", p->pic_fields.bits.entropy_coding_mode_flag); 12944b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tweighted_pred_flag = %d\n", p->pic_fields.bits.weighted_pred_flag); 12954b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tweighted_bipred_idc = %d\n", p->pic_fields.bits.weighted_bipred_idc); 12964b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tconstrained_intra_pred_flag = %d\n", p->pic_fields.bits.constrained_intra_pred_flag); 12974b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\ttransform_8x8_mode_flag = %d\n", p->pic_fields.bits.transform_8x8_mode_flag); 12984b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tdeblocking_filter_control_present_flag = %d\n", p->pic_fields.bits.deblocking_filter_control_present_flag); 12994b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tredundant_pic_cnt_present_flag = %d\n", p->pic_fields.bits.redundant_pic_cnt_present_flag); 13004b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tpic_order_present_flag = %d\n", p->pic_fields.bits.pic_order_present_flag); 13014b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tpic_scaling_matrix_present_flag = %d\n", p->pic_fields.bits.pic_scaling_matrix_present_flag); 13024b672db6ee89c9846451bbab23cf18e93c4260b2hding 130336bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 130421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 130521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan trace_context[idx].trace_codedbuf = p->coded_buf; 13064b672db6ee89c9846451bbab23cf18e93c4260b2hding 130721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan return; 130821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan} 130921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 131021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanstatic void va_TraceVAEncSliceParameterBuffer( 131121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VADisplay dpy, 131221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VAContextID context, 131321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VABufferID buffer, 131421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VABufferType type, 131521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned int size, 131621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned int num_elements, 131721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan void *data) 131821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan{ 131921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VAEncSliceParameterBuffer* p = (VAEncSliceParameterBuffer*)data; 132021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan DPY2INDEX(dpy); 132121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 132272b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx, "VAEncSliceParameterBuffer\n"); 132321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 132421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tstart_row_number = %d\n", p->start_row_number); 132521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tslice_height = %d\n", p->slice_height); 132621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tslice_flags.is_intra = %d\n", p->slice_flags.bits.is_intra); 132721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tslice_flags.disable_deblocking_filter_idc = %d\n", p->slice_flags.bits.disable_deblocking_filter_idc); 1328cceaa0568f77a7452857559614100b71fb36ee3awangkun va_TraceMsg(idx, "\tslice_flags.uses_long_term_ref = %d\n", p->slice_flags.bits.uses_long_term_ref); 1329cceaa0568f77a7452857559614100b71fb36ee3awangkun va_TraceMsg(idx, "\tslice_flags.is_long_term_ref = %d\n", p->slice_flags.bits.is_long_term_ref); 133036bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 133136bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang 133221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan return; 133321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan} 133421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 13354b672db6ee89c9846451bbab23cf18e93c4260b2hdingstatic void va_TraceVAEncSliceParameterBufferH264( 13364b672db6ee89c9846451bbab23cf18e93c4260b2hding VADisplay dpy, 13374b672db6ee89c9846451bbab23cf18e93c4260b2hding VAContextID context, 13384b672db6ee89c9846451bbab23cf18e93c4260b2hding VABufferID buffer, 13394b672db6ee89c9846451bbab23cf18e93c4260b2hding VABufferType type, 13404b672db6ee89c9846451bbab23cf18e93c4260b2hding unsigned int size, 13414b672db6ee89c9846451bbab23cf18e93c4260b2hding unsigned int num_elements, 13424b672db6ee89c9846451bbab23cf18e93c4260b2hding void *data) 13434b672db6ee89c9846451bbab23cf18e93c4260b2hding{ 13444b672db6ee89c9846451bbab23cf18e93c4260b2hding VAEncSliceParameterBufferH264* p = (VAEncSliceParameterBufferH264*)data; 13454b672db6ee89c9846451bbab23cf18e93c4260b2hding DPY2INDEX(dpy); 13464b672db6ee89c9846451bbab23cf18e93c4260b2hding int i; 13474b672db6ee89c9846451bbab23cf18e93c4260b2hding 1348ac1c6d1120d34338e679ac23f1348ade77b61317Elaine Wang if (!p) 1349ac1c6d1120d34338e679ac23f1348ade77b61317Elaine Wang return; 13504b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "VAEncSliceParameterBufferH264\n"); 13514b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tmacroblock_address = %d\n", p->macroblock_address); 13524b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tnum_macroblocks = %d\n", p->num_macroblocks); 13534b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tmacroblock_info = %08x\n", p->macroblock_info); 13544b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tslice_type = %d\n", p->slice_type); 13554b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tpic_parameter_set_id = %d\n", p->pic_parameter_set_id); 13564b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tidr_pic_id = %d\n", p->idr_pic_id); 13574b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tpic_order_cnt_lsb = %d\n", p->pic_order_cnt_lsb); 13584b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tdelta_pic_order_cnt_bottom = %d\n", p->delta_pic_order_cnt_bottom); 13594b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tdelta_pic_order_cnt[0] = %d\n", p->delta_pic_order_cnt[0]); 13604b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tdelta_pic_order_cnt[1] = %d\n", p->delta_pic_order_cnt[1]); 13614b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tdirect_spatial_mv_pred_flag = %d\n", p->direct_spatial_mv_pred_flag); 13624b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tnum_ref_idx_active_override_flag = %d\n", p->num_ref_idx_active_override_flag); 13634b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tnum_ref_idx_l1_active_minus1 = %d\n", p->num_ref_idx_l1_active_minus1); 13644b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tslice_beta_offset_div2 = %d\n", p->slice_beta_offset_div2); 13654b672db6ee89c9846451bbab23cf18e93c4260b2hding 13664b672db6ee89c9846451bbab23cf18e93c4260b2hding if (p->slice_type == 0 || p->slice_type == 1) { 13674b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tRefPicList0 ="); 1368ac1c6d1120d34338e679ac23f1348ade77b61317Elaine Wang for (i = 0; i < p->num_ref_idx_l0_active_minus1 + 1 && i < 32; i++) { 13694b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "%d-%d-0x%08x-%d\n", p->RefPicList0[i].TopFieldOrderCnt, p->RefPicList0[i].BottomFieldOrderCnt, p->RefPicList0[i].picture_id, p->RefPicList0[i].frame_idx); 13704b672db6ee89c9846451bbab23cf18e93c4260b2hding } 13714b672db6ee89c9846451bbab23cf18e93c4260b2hding if (p->slice_type == 1) { 13724b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tRefPicList1 ="); 1373ac1c6d1120d34338e679ac23f1348ade77b61317Elaine Wang for (i = 0; i < p->num_ref_idx_l1_active_minus1 + 1 && i < 32; i++) 13744b672db6ee89c9846451bbab23cf18e93c4260b2hding { 13754b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "%d-%d-0x%08x-%d\n", p->RefPicList1[i].TopFieldOrderCnt, p->RefPicList1[i].BottomFieldOrderCnt, p->RefPicList1[i].picture_id, p->RefPicList1[i].frame_idx); 13764b672db6ee89c9846451bbab23cf18e93c4260b2hding } 13774b672db6ee89c9846451bbab23cf18e93c4260b2hding } 13784b672db6ee89c9846451bbab23cf18e93c4260b2hding } 13794b672db6ee89c9846451bbab23cf18e93c4260b2hding 13804b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tluma_log2_weight_denom = %d\n", p->luma_log2_weight_denom); 13814b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tchroma_log2_weight_denom = %d\n", p->chroma_log2_weight_denom); 13824b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tluma_weight_l0_flag = %d\n", p->luma_weight_l0_flag); 1383ac1c6d1120d34338e679ac23f1348ade77b61317Elaine Wang if (p->luma_weight_l0_flag && p->num_ref_idx_l0_active_minus1 < 32) { 13844b672db6ee89c9846451bbab23cf18e93c4260b2hding for (i = 0; i <= p->num_ref_idx_l0_active_minus1; i++) { 13854b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\t%d ", p->luma_weight_l0[i]); 13864b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\t%d ", p->luma_offset_l0[i]); 13874b672db6ee89c9846451bbab23cf18e93c4260b2hding } 13884b672db6ee89c9846451bbab23cf18e93c4260b2hding } 13894b672db6ee89c9846451bbab23cf18e93c4260b2hding 13904b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tchroma_weight_l0_flag = %d\n", p->chroma_weight_l0_flag); 1391ac1c6d1120d34338e679ac23f1348ade77b61317Elaine Wang if (p->chroma_weight_l0_flag && p->num_ref_idx_l0_active_minus1 < 32) { 13924b672db6ee89c9846451bbab23cf18e93c4260b2hding for (i = 0; i <= p->num_ref_idx_l0_active_minus1; i++) { 13934b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\t\t%d ", p->chroma_weight_l0[i][0]); 13944b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\t\t%d ", p->chroma_offset_l0[i][0]); 13954b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\t\t%d ", p->chroma_weight_l0[i][1]); 13964b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\t\t%d ", p->chroma_offset_l0[i][1]); 13974b672db6ee89c9846451bbab23cf18e93c4260b2hding } 13984b672db6ee89c9846451bbab23cf18e93c4260b2hding } 13994b672db6ee89c9846451bbab23cf18e93c4260b2hding 14004b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tluma_weight_l1_flag = %d\n", p->luma_weight_l1_flag); 1401ac1c6d1120d34338e679ac23f1348ade77b61317Elaine Wang if (p->luma_weight_l1_flag && p->num_ref_idx_l1_active_minus1 < 32) { 14024b672db6ee89c9846451bbab23cf18e93c4260b2hding for (i = 0; i <= p->num_ref_idx_l1_active_minus1; i++) { 14034b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\t\t%d ", p->luma_weight_l1[i]); 14044b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\t\t%d ", p->luma_offset_l1[i]); 14054b672db6ee89c9846451bbab23cf18e93c4260b2hding } 14064b672db6ee89c9846451bbab23cf18e93c4260b2hding } 14074b672db6ee89c9846451bbab23cf18e93c4260b2hding 14084b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tchroma_weight_l1_flag = %d\n", p->chroma_weight_l1_flag); 1409ac1c6d1120d34338e679ac23f1348ade77b61317Elaine Wang if (p->chroma_weight_l1_flag && p->num_ref_idx_l1_active_minus1 < 32) { 14104b672db6ee89c9846451bbab23cf18e93c4260b2hding for (i = 0; i <= p->num_ref_idx_l1_active_minus1; i++) { 14114b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\t\t%d ", p->chroma_weight_l1[i][0]); 14124b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\t\t%d ", p->chroma_offset_l1[i][0]); 14134b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\t\t%d ", p->chroma_weight_l1[i][1]); 14144b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\t\t%d ", p->chroma_offset_l1[i][1]); 14154b672db6ee89c9846451bbab23cf18e93c4260b2hding } 14164b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\n"); 14174b672db6ee89c9846451bbab23cf18e93c4260b2hding } 14184b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, NULL); 14194b672db6ee89c9846451bbab23cf18e93c4260b2hding 14204b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tcabac_init_idc = %d\n", p->cabac_init_idc); 14214b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tslice_qp_delta = %d\n", p->slice_qp_delta); 14224b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tdisable_deblocking_filter_idc = %d\n", p->disable_deblocking_filter_idc); 14234b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tslice_alpha_c0_offset_div2 = %d\n", p->slice_alpha_c0_offset_div2); 14244b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tslice_beta_offset_div2 = %d\n", p->slice_beta_offset_div2); 14254b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, NULL); 14264b672db6ee89c9846451bbab23cf18e93c4260b2hding 14274b672db6ee89c9846451bbab23cf18e93c4260b2hding return; 14284b672db6ee89c9846451bbab23cf18e93c4260b2hding} 14294b672db6ee89c9846451bbab23cf18e93c4260b2hding 143021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanstatic void va_TraceVAEncMiscParameterBuffer( 143121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VADisplay dpy, 143221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VAContextID context, 143321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VABufferID buffer, 143421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VABufferType type, 143521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned int size, 143621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned int num_elements, 143721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan void *data) 143821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan{ 143921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VAEncMiscParameterBuffer* tmp = (VAEncMiscParameterBuffer*)data; 144021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan DPY2INDEX(dpy); 144121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 144221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan switch (tmp->type) { 144321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan case VAEncMiscParameterTypeFrameRate: 144421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan { 144521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VAEncMiscParameterFrameRate *p = (VAEncMiscParameterFrameRate *)tmp->data; 144672b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx, "VAEncMiscParameterFrameRate\n"); 144721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tframerate = %d\n", p->framerate); 144821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 144921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan break; 145021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan } 145121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan case VAEncMiscParameterTypeRateControl: 145221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan { 145321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VAEncMiscParameterRateControl *p = (VAEncMiscParameterRateControl *)tmp->data; 145421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 145572b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx, "VAEncMiscParameterRateControl\n"); 145621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tbits_per_second = %d\n", p->bits_per_second); 145721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\twindow_size = %d\n", p->window_size); 145821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tinitial_qp = %d\n", p->initial_qp); 145921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tmin_qp = %d\n", p->min_qp); 146021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan break; 146121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan } 146221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan case VAEncMiscParameterTypeMaxSliceSize: 146321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan { 146421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VAEncMiscParameterMaxSliceSize *p = (VAEncMiscParameterMaxSliceSize *)tmp->data; 146521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 146672b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx, "VAEncMiscParameterTypeMaxSliceSize\n"); 146721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tmax_slice_size = %d\n", p->max_slice_size); 146821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan break; 146921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan } 147021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan case VAEncMiscParameterTypeAIR: 147121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan { 147221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VAEncMiscParameterAIR *p = (VAEncMiscParameterAIR *)tmp->data; 147321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 147472b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx, "VAEncMiscParameterAIR\n"); 147521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tair_num_mbs = %d\n", p->air_num_mbs); 147621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tair_threshold = %d\n", p->air_threshold); 147721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tair_auto = %d\n", p->air_auto); 147821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan break; 147921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan } 14804b672db6ee89c9846451bbab23cf18e93c4260b2hding case VAEncMiscParameterTypeHRD: 14814b672db6ee89c9846451bbab23cf18e93c4260b2hding { 14824b672db6ee89c9846451bbab23cf18e93c4260b2hding VAEncMiscParameterHRD *p = (VAEncMiscParameterHRD *)tmp->data; 14834b672db6ee89c9846451bbab23cf18e93c4260b2hding 14844b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "VAEncMiscParameterHRD\n"); 14854b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tinitial_buffer_fullness = %d\n", p->initial_buffer_fullness); 14864b672db6ee89c9846451bbab23cf18e93c4260b2hding va_TraceMsg(idx, "\tbuffer_size = %d\n", p->buffer_size); 14874b672db6ee89c9846451bbab23cf18e93c4260b2hding break; 14884b672db6ee89c9846451bbab23cf18e93c4260b2hding } 148921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan default: 149021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "invalid VAEncMiscParameterBuffer type = %d\n", tmp->type); 149121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan break; 149221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan } 149336bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 149436bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang 149521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan return; 149621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan} 149721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 149821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 1499b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic void va_TraceVAPictureParameterBufferVC1( 1500b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 1501b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 1502b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID buffer, 1503b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType type, 1504b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int size, 1505b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int num_elements, 1506b0fac498ca4863166252f1268fda83394db54153Fei Jiang void *data 1507b0fac498ca4863166252f1268fda83394db54153Fei Jiang) 1508b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 1509b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAPictureParameterBufferVC1* p = (VAPictureParameterBufferVC1*)data; 151021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan DPY2INDEX(dpy); 151121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 151272b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx, "VAPictureParameterBufferVC1\n"); 151321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 151421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tforward_reference_picture = 0x%08x\n", p->forward_reference_picture); 151521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tbackward_reference_picture = 0x%08x\n", p->backward_reference_picture); 151621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tinloop_decoded_picture = 0x%08x\n", p->inloop_decoded_picture); 151721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 151821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tpulldown = %d\n", p->sequence_fields.bits.pulldown); 151921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tinterlace = %d\n", p->sequence_fields.bits.interlace); 152021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\ttfcntrflag = %d\n", p->sequence_fields.bits.tfcntrflag); 152121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tfinterpflag = %d\n", p->sequence_fields.bits.finterpflag); 152221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tpsf = %d\n", p->sequence_fields.bits.psf); 152321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tmultires = %d\n", p->sequence_fields.bits.multires); 152421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\toverlap = %d\n", p->sequence_fields.bits.overlap); 152521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tsyncmarker = %d\n", p->sequence_fields.bits.syncmarker); 152621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\trangered = %d\n", p->sequence_fields.bits.rangered); 152721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tmax_b_frames = %d\n", p->sequence_fields.bits.max_b_frames); 152836bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, "\tprofile = %d\n", p->sequence_fields.bits.profile); 152921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tcoded_width = %d\n", p->coded_width); 153021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tcoded_height = %d\n", p->coded_height); 153121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tclosed_entry = %d\n", p->entrypoint_fields.bits.closed_entry); 153221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tbroken_link = %d\n", p->entrypoint_fields.bits.broken_link); 153321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tclosed_entry = %d\n", p->entrypoint_fields.bits.closed_entry); 153421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tpanscan_flag = %d\n", p->entrypoint_fields.bits.panscan_flag); 153521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tloopfilter = %d\n", p->entrypoint_fields.bits.loopfilter); 153621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tconditional_overlap_flag = %d\n", p->conditional_overlap_flag); 153721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tfast_uvmc_flag = %d\n", p->fast_uvmc_flag); 153821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\trange_mapping_luma_flag = %d\n", p->range_mapping_fields.bits.luma_flag); 153921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\trange_mapping_luma = %d\n", p->range_mapping_fields.bits.luma); 154021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\trange_mapping_chroma_flag = %d\n", p->range_mapping_fields.bits.chroma_flag); 154121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\trange_mapping_chroma = %d\n", p->range_mapping_fields.bits.chroma); 154221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tb_picture_fraction = %d\n", p->b_picture_fraction); 154321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tcbp_table = %d\n", p->cbp_table); 154421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tmb_mode_table = %d\n", p->mb_mode_table); 154521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\trange_reduction_frame = %d\n", p->range_reduction_frame); 154621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\trounding_control = %d\n", p->rounding_control); 154721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tpost_processing = %d\n", p->post_processing); 154821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tpicture_resolution_index = %d\n", p->picture_resolution_index); 154921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tluma_scale = %d\n", p->luma_scale); 155021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tluma_shift = %d\n", p->luma_shift); 155121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tpicture_type = %d\n", p->picture_fields.bits.picture_type); 155221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tframe_coding_mode = %d\n", p->picture_fields.bits.frame_coding_mode); 155321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\ttop_field_first = %d\n", p->picture_fields.bits.top_field_first); 155421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tis_first_field = %d\n", p->picture_fields.bits.is_first_field); 155521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tintensity_compensation = %d\n", p->picture_fields.bits.intensity_compensation); 155621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tmv_type_mb = %d\n", p->raw_coding.flags.mv_type_mb); 155721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tdirect_mb = %d\n", p->raw_coding.flags.direct_mb); 155821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tskip_mb = %d\n", p->raw_coding.flags.skip_mb); 155921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tfield_tx = %d\n", p->raw_coding.flags.field_tx); 156021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tforward_mb = %d\n", p->raw_coding.flags.forward_mb); 156121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tac_pred = %d\n", p->raw_coding.flags.ac_pred); 156221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\toverflags = %d\n", p->raw_coding.flags.overflags); 156321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tbp_mv_type_mb = %d\n", p->bitplane_present.flags.bp_mv_type_mb); 156421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tbp_direct_mb = %d\n", p->bitplane_present.flags.bp_direct_mb); 156521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tbp_skip_mb = %d\n", p->bitplane_present.flags.bp_skip_mb); 156621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tbp_field_tx = %d\n", p->bitplane_present.flags.bp_field_tx); 156721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tbp_forward_mb = %d\n", p->bitplane_present.flags.bp_forward_mb); 156821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tbp_ac_pred = %d\n", p->bitplane_present.flags.bp_ac_pred); 156921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tbp_overflags = %d\n", p->bitplane_present.flags.bp_overflags); 157021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\treference_distance_flag = %d\n", p->reference_fields.bits.reference_distance_flag); 157121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\treference_distance = %d\n", p->reference_fields.bits.reference_distance); 157221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tnum_reference_pictures = %d\n", p->reference_fields.bits.num_reference_pictures); 157321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\treference_field_pic_indicator = %d\n", p->reference_fields.bits.reference_field_pic_indicator); 157421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tmv_mode = %d\n", p->mv_fields.bits.mv_mode); 157521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tmv_mode2 = %d\n", p->mv_fields.bits.mv_mode2); 157621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tmv_table = %d\n", p->mv_fields.bits.mv_table); 157721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\ttwo_mv_block_pattern_table = %d\n", p->mv_fields.bits.two_mv_block_pattern_table); 157821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tfour_mv_switch = %d\n", p->mv_fields.bits.four_mv_switch); 157921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tfour_mv_block_pattern_table = %d\n", p->mv_fields.bits.four_mv_block_pattern_table); 158021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\textended_mv_flag = %d\n", p->mv_fields.bits.extended_mv_flag); 158121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\textended_mv_range = %d\n", p->mv_fields.bits.extended_mv_range); 158221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\textended_dmv_flag = %d\n", p->mv_fields.bits.extended_dmv_flag); 158321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\textended_dmv_range = %d\n", p->mv_fields.bits.extended_dmv_range); 158421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tdquant = %d\n", p->pic_quantizer_fields.bits.dquant); 158521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tquantizer = %d\n", p->pic_quantizer_fields.bits.quantizer); 158621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\thalf_qp = %d\n", p->pic_quantizer_fields.bits.half_qp); 158721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tpic_quantizer_scale = %d\n", p->pic_quantizer_fields.bits.pic_quantizer_scale); 158821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tpic_quantizer_type = %d\n", p->pic_quantizer_fields.bits.pic_quantizer_type); 158921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tdq_frame = %d\n", p->pic_quantizer_fields.bits.dq_frame); 159021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tdq_profile = %d\n", p->pic_quantizer_fields.bits.dq_profile); 159121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tdq_sb_edge = %d\n", p->pic_quantizer_fields.bits.dq_sb_edge); 159221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tdq_db_edge = %d\n", p->pic_quantizer_fields.bits.dq_db_edge); 159321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tdq_binary_level = %d\n", p->pic_quantizer_fields.bits.dq_binary_level); 159421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\talt_pic_quantizer = %d\n", p->pic_quantizer_fields.bits.alt_pic_quantizer); 159521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tvariable_sized_transform_flag = %d\n", p->transform_fields.bits.variable_sized_transform_flag); 159621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tmb_level_transform_type_flag = %d\n", p->transform_fields.bits.mb_level_transform_type_flag); 159721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tframe_level_transform_type = %d\n", p->transform_fields.bits.frame_level_transform_type); 159821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\ttransform_ac_codingset_idx1 = %d\n", p->transform_fields.bits.transform_ac_codingset_idx1); 159921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\ttransform_ac_codingset_idx2 = %d\n", p->transform_fields.bits.transform_ac_codingset_idx2); 160021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tintra_transform_dc_table = %d\n", p->transform_fields.bits.intra_transform_dc_table); 160136bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 1602b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 1603b0fac498ca4863166252f1268fda83394db54153Fei Jiang 1604b0fac498ca4863166252f1268fda83394db54153Fei Jiangstatic void va_TraceVASliceParameterBufferVC1( 1605b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 1606b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 1607b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID buffer, 1608b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType type, 1609b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int size, 1610b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int num_elements, 1611b0fac498ca4863166252f1268fda83394db54153Fei Jiang void* data 1612b0fac498ca4863166252f1268fda83394db54153Fei Jiang) 1613b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 1614b0fac498ca4863166252f1268fda83394db54153Fei Jiang VASliceParameterBufferVC1 *p = (VASliceParameterBufferVC1*)data; 161521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan DPY2INDEX(dpy); 161621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 161721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan trace_context[idx].trace_slice_no++; 161821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan trace_context[idx].trace_slice_size = p->slice_data_size; 1619b0fac498ca4863166252f1268fda83394db54153Fei Jiang 162072b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx, "VASliceParameterBufferVC1\n"); 162121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tslice_data_size = %d\n", p->slice_data_size); 162221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tslice_data_offset = %d\n", p->slice_data_offset); 162321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tslice_data_flag = %d\n", p->slice_data_flag); 162421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tmacroblock_offset = %d\n", p->macroblock_offset); 162521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tslice_vertical_position = %d\n", p->slice_vertical_position); 162636bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 1627b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 1628b0fac498ca4863166252f1268fda83394db54153Fei Jiang 1629293abef4f8172cc061d26f9d909c281b4190b514Bruce Bearevoid va_TraceBeginPicture( 1630b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 1631b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 1632b0fac498ca4863166252f1268fda83394db54153Fei Jiang VASurfaceID render_target 1633b0fac498ca4863166252f1268fda83394db54153Fei Jiang) 1634b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 163521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan DPY2INDEX(dpy); 1636b0fac498ca4863166252f1268fda83394db54153Fei Jiang 163721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan TRACE_FUNCNAME(idx); 1638cceaa0568f77a7452857559614100b71fb36ee3awangkun 163921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tcontext = 0x%08x\n", context); 164021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\trender_targets = 0x%08x\n", render_target); 1641cceaa0568f77a7452857559614100b71fb36ee3awangkun va_TraceMsg(idx, "\tframe_count = #%d\n", trace_context[idx].trace_frame_no); 164236bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 1643b0fac498ca4863166252f1268fda83394db54153Fei Jiang 164421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan trace_context[idx].trace_rendertarget = render_target; /* for surface data dump after vaEndPicture */ 1645b0fac498ca4863166252f1268fda83394db54153Fei Jiang 164621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan trace_context[idx].trace_frame_no++; 164721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan trace_context[idx].trace_slice_no = 0; 1648b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 1649b0fac498ca4863166252f1268fda83394db54153Fei Jiang 1650901c77a7aa491f56b63af7b655b67439481e4177Fei Jiangstatic void va_TraceMPEG2Buf( 1651b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 1652b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 1653b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID buffer, 1654b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType type, 1655b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int size, 1656b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int num_elements, 1657b0fac498ca4863166252f1268fda83394db54153Fei Jiang void *pbuf 1658b0fac498ca4863166252f1268fda83394db54153Fei Jiang) 1659b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 1660b0fac498ca4863166252f1268fda83394db54153Fei Jiang switch (type) { 1661b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAPictureParameterBufferType: 1662b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVAPictureParameterBufferMPEG2(dpy, context, buffer, type, size, num_elements, pbuf); 1663b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1664b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAIQMatrixBufferType: 1665b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVAIQMatrixBufferMPEG2(dpy, context, buffer, type, size, num_elements, pbuf); 1666b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1667b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VABitPlaneBufferType: 166821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 1669b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1670b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VASliceGroupMapBufferType: 167121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 1672b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1673b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VASliceParameterBufferType: 1674b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVASliceParameterBufferMPEG2(dpy, context, buffer, type, size, num_elements, pbuf); 1675b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1676b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VASliceDataBufferType: 1677b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 1678b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1679b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAMacroblockParameterBufferType: 168021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 1681b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1682b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAResidualDataBufferType: 168321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 1684b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1685b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VADeblockingParameterBufferType: 168621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 1687b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1688b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAImageBufferType: 1689b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1690b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAProtectedSliceDataBufferType: 169121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 1692b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1693b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncCodedBufferType: 1694b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1695b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncSequenceParameterBufferType: 1696b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1697b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncPictureParameterBufferType: 1698b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1699b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncSliceParameterBufferType: 1700b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 170121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan default: 170221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan break; 1703b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 1704b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 1705b0fac498ca4863166252f1268fda83394db54153Fei Jiang 170650ce1dbe8a3402d56c94238710964507db7d99e1Kun Wangstatic void va_TraceVAEncSequenceParameterBufferH263( 170750ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang VADisplay dpy, 170850ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang VAContextID context, 170950ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang VABufferID buffer, 171050ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang VABufferType type, 171150ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang unsigned int size, 171250ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang unsigned int num_elements, 171350ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang void *data) 171450ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang{ 171550ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang VAEncSequenceParameterBufferH263 *p = (VAEncSequenceParameterBufferH263 *)data; 171650ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang DPY2INDEX(dpy); 171750ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang 171850ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "VAEncSequenceParameterBufferH263\n"); 171950ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang 172050ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "\tintra_period = %d\n", p->intra_period); 172150ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "\tbits_per_second = %d\n", p->bits_per_second); 172250ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "\tframe_rate = %d\n", p->frame_rate); 172350ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "\tinitial_qp = %d\n", p->initial_qp); 172450ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "\tmin_qp = %d\n", p->min_qp); 172550ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, NULL); 172650ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang 172750ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang /* start a new sequce, coded log file can be truncated */ 172850ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang trace_context[idx].trace_sequence_start = 1; 172950ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang 173050ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang return; 173150ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang} 173250ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang 173350ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang 173450ce1dbe8a3402d56c94238710964507db7d99e1Kun Wangstatic void va_TraceVAEncPictureParameterBufferH263( 173550ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang VADisplay dpy, 173650ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang VAContextID context, 173750ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang VABufferID buffer, 173850ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang VABufferType type, 173950ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang unsigned int size, 174050ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang unsigned int num_elements, 174150ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang void *data) 174250ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang{ 174350ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang VAEncPictureParameterBufferH263 *p = (VAEncPictureParameterBufferH263 *)data; 174450ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang DPY2INDEX(dpy); 174550ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang 174650ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "VAEncPictureParameterBufferH263\n"); 174750ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "\treference_picture = 0x%08x\n", p->reference_picture); 174850ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "\treconstructed_picture = 0x%08x\n", p->reconstructed_picture); 174950ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "\tcoded_buf = %08x\n", p->coded_buf); 175050ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "\tpicture_width = %d\n", p->picture_width); 175150ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "\tpicture_height = %d\n", p->picture_height); 175250ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "\tpicture_type = 0x%08x\n", p->picture_type); 175350ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, NULL); 175450ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang 175550ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang trace_context[idx].trace_codedbuf = p->coded_buf; 175650ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang 175750ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang return; 175850ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang} 175950ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang 1760cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wangstatic void va_TraceVAEncPictureParameterBufferJPEG( 1761cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang VADisplay dpy, 1762cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang VAContextID context, 1763cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang VABufferID buffer, 1764cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang VABufferType type, 1765cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang unsigned int size, 1766cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang unsigned int num_elements, 1767cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang void *data) 1768cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang{ 1769cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang VAEncPictureParameterBufferJPEG *p = (VAEncPictureParameterBufferJPEG *)data; 1770cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang DPY2INDEX(dpy); 1771cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang 1772cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang va_TraceMsg(idx, "VAEncPictureParameterBufferJPEG\n"); 1773cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang va_TraceMsg(idx, "\treconstructed_picture = 0x%08x\n", p->reconstructed_picture); 1774cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang va_TraceMsg(idx, "\tcoded_buf = %08x\n", p->coded_buf); 1775cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang va_TraceMsg(idx, "\tpicture_width = %d\n", p->picture_width); 1776cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang va_TraceMsg(idx, "\tpicture_height = %d\n", p->picture_height); 1777cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang va_TraceMsg(idx, NULL); 1778cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang 1779cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang trace_context[idx].trace_codedbuf = p->coded_buf; 1780cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang 1781cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang return; 1782cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang} 1783cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang 1784cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wangstatic void va_TraceVAEncQMatrixBufferJPEG( 1785cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang VADisplay dpy, 1786cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang VAContextID context, 1787cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang VABufferID buffer, 1788cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang VABufferType type, 1789cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang unsigned int size, 1790cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang unsigned int num_elements, 1791cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang void *data) 1792cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang{ 1793cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang VAQMatrixBufferJPEG *p = (VAQMatrixBufferJPEG *)data; 1794cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang DPY2INDEX(dpy); 1795cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang 1796cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang va_TraceMsg(idx, "VAQMatrixBufferJPEG\n"); 1797cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang va_TraceMsg(idx, "\tload_lum_quantiser_matrix = %d", p->load_lum_quantiser_matrix); 1798cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang if (p->load_lum_quantiser_matrix) { 1799cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang int i; 1800cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang for (i = 0; i < 64; i++) { 1801cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang if ((i % 8) == 0) 1802cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang va_TraceMsg(idx, "\n\t"); 1803cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang va_TraceMsg(idx, "\t0x%02x", p->lum_quantiser_matrix[i]); 1804cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang } 1805cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang va_TraceMsg(idx, "\n"); 1806cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang } 1807cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang va_TraceMsg(idx, "\tload_chroma_quantiser_matrix = %08x\n", p->load_chroma_quantiser_matrix); 1808cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang if (p->load_chroma_quantiser_matrix) { 1809cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang int i; 1810cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang for (i = 0; i < 64; i++) { 1811cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang if ((i % 8) == 0) 1812cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang va_TraceMsg(idx, "\n\t"); 1813cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang va_TraceMsg(idx, "\t0x%02x", p->chroma_quantiser_matrix[i]); 1814cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang } 1815cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang va_TraceMsg(idx, "\n"); 1816cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang } 1817cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang 1818cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang va_TraceMsg(idx, NULL); 1819cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang 1820cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang return; 1821cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang} 182250ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang 182350ce1dbe8a3402d56c94238710964507db7d99e1Kun Wangstatic void va_TraceH263Buf( 182450ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang VADisplay dpy, 182550ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang VAContextID context, 182650ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang VABufferID buffer, 182750ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang VABufferType type, 182850ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang unsigned int size, 182950ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang unsigned int num_elements, 183050ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang void *pbuf 183150ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang) 183250ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang{ 183350ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang switch (type) { 1834e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan case VAPictureParameterBufferType:/* print MPEG4 buffer */ 1835e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan va_TraceVAPictureParameterBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf); 1836e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan break; 1837e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan case VAIQMatrixBufferType:/* print MPEG4 buffer */ 1838e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan va_TraceVAIQMatrixBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf); 1839e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan break; 1840e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan case VABitPlaneBufferType:/* print MPEG4 buffer */ 1841e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 1842e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan break; 184350ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang case VASliceGroupMapBufferType: 1844e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan break; 1845e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan case VASliceParameterBufferType:/* print MPEG4 buffer */ 1846e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan va_TraceVASliceParameterBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf); 1847e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan break; 184850ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang case VASliceDataBufferType: 1849e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 1850e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan break; 185150ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang case VAMacroblockParameterBufferType: 1852e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 1853e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan break; 185450ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang case VAResidualDataBufferType: 1855e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 1856e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan break; 185750ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang case VADeblockingParameterBufferType: 1858e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 1859e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan break; 186050ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang case VAImageBufferType: 1861e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan break; 186250ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang case VAProtectedSliceDataBufferType: 186350ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 186450ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang break; 186550ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang case VAEncCodedBufferType: 186650ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang break; 186750ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang case VAEncSequenceParameterBufferType: 186850ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceVAEncSequenceParameterBufferH263(dpy, context, buffer, type, size, num_elements, pbuf); 186950ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang break; 187050ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang case VAEncPictureParameterBufferType: 187150ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceVAEncPictureParameterBufferH263(dpy, context, buffer, type, size, num_elements, pbuf); 187250ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang break; 187350ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang case VAEncSliceParameterBufferType: 187450ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceVAEncSliceParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf); 187550ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang break; 187650ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang default: 187750ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang break; 187850ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang } 187950ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang} 188050ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang 1881cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang 1882cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wangstatic void va_TraceJPEGBuf( 1883cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang VADisplay dpy, 1884cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang VAContextID context, 1885cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang VABufferID buffer, 1886cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang VABufferType type, 1887cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang unsigned int size, 1888cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang unsigned int num_elements, 1889cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang void *pbuf 1890cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang) 1891cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang{ 1892cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang switch (type) { 1893cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang case VAPictureParameterBufferType:/* print MPEG4 buffer */ 1894cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang case VAIQMatrixBufferType:/* print MPEG4 buffer */ 1895cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang case VABitPlaneBufferType:/* print MPEG4 buffer */ 1896cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang case VASliceGroupMapBufferType: 1897cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang case VASliceParameterBufferType:/* print MPEG4 buffer */ 1898cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang case VASliceDataBufferType: 1899cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang case VAMacroblockParameterBufferType: 1900cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang case VAResidualDataBufferType: 1901cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang case VADeblockingParameterBufferType: 1902cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang case VAImageBufferType: 1903cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang case VAProtectedSliceDataBufferType: 1904cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang case VAEncCodedBufferType: 1905cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang case VAEncSequenceParameterBufferType: 1906cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang case VAEncSliceParameterBufferType: 1907cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 1908cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang break; 1909cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang case VAEncPictureParameterBufferType: 1910cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang va_TraceVAEncPictureParameterBufferJPEG(dpy, context, buffer, type, size, num_elements, pbuf); 1911cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang break; 1912cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang case VAQMatrixBufferType: 1913cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang va_TraceVAEncQMatrixBufferJPEG(dpy, context, buffer, type, size, num_elements, pbuf); 1914cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang break; 1915cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang default: 1916cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang break; 1917cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang } 1918cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang} 1919cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang 1920901c77a7aa491f56b63af7b655b67439481e4177Fei Jiangstatic void va_TraceMPEG4Buf( 1921b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 1922b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 1923b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID buffer, 1924b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType type, 1925b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int size, 1926b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int num_elements, 1927b0fac498ca4863166252f1268fda83394db54153Fei Jiang void *pbuf 1928b0fac498ca4863166252f1268fda83394db54153Fei Jiang) 1929b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 1930b0fac498ca4863166252f1268fda83394db54153Fei Jiang switch (type) { 1931b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAPictureParameterBufferType: 1932b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVAPictureParameterBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf); 1933b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1934b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAIQMatrixBufferType: 1935b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVAIQMatrixBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf); 1936b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1937b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VABitPlaneBufferType: 193821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 1939b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1940b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VASliceGroupMapBufferType: 1941b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1942b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VASliceParameterBufferType: 1943b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVASliceParameterBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf); 1944b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1945b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VASliceDataBufferType: 1946b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 1947b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1948b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAMacroblockParameterBufferType: 194921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 1950b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1951b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAResidualDataBufferType: 195221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 1953b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1954b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VADeblockingParameterBufferType: 195521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 1956b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1957b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAImageBufferType: 1958b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1959b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAProtectedSliceDataBufferType: 1960b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 1961b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1962b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncCodedBufferType: 1963b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1964b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncSequenceParameterBufferType: 196550ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceVAEncSequenceParameterBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf); 1966b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1967b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncPictureParameterBufferType: 196850ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceVAEncPictureParameterBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf); 1969b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1970b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncSliceParameterBufferType: 197121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceVAEncSliceParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf); 1972b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1973b0fac498ca4863166252f1268fda83394db54153Fei Jiang default: 1974b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1975b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 1976b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 1977b0fac498ca4863166252f1268fda83394db54153Fei Jiang 1978b0fac498ca4863166252f1268fda83394db54153Fei Jiang 1979901c77a7aa491f56b63af7b655b67439481e4177Fei Jiangstatic void va_TraceH264Buf( 1980b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 1981b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 1982b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID buffer, 1983b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType type, 1984b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int size, 1985b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int num_elements, 1986b0fac498ca4863166252f1268fda83394db54153Fei Jiang void *pbuf 1987b0fac498ca4863166252f1268fda83394db54153Fei Jiang) 1988b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 198921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan DPY2INDEX(dpy); 199021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 1991b0fac498ca4863166252f1268fda83394db54153Fei Jiang switch (type) { 1992b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAPictureParameterBufferType: 1993901c77a7aa491f56b63af7b655b67439481e4177Fei Jiang va_TraceVAPictureParameterBufferH264(dpy, context, buffer, type, size, num_elements, pbuf); 1994b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1995b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAIQMatrixBufferType: 1996b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVAIQMatrixBufferH264(dpy, context, buffer, type, size, num_elements, pbuf); 1997b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 1998b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VABitPlaneBufferType: 199921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 2000b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2001b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VASliceGroupMapBufferType: 200221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 2003b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2004b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VASliceParameterBufferType: 2005b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVASliceParameterBufferH264(dpy, context, buffer, type, size, num_elements, pbuf); 2006b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2007b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VASliceDataBufferType: 200821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceVABuffers(dpy, context, buffer, type, trace_context[idx].trace_slice_size, num_elements, pbuf); 2009b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2010b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAMacroblockParameterBufferType: 201121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 2012b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2013b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAResidualDataBufferType: 201421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 2015b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2016b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VADeblockingParameterBufferType: 201721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 2018b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2019b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAImageBufferType: 2020b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2021b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAProtectedSliceDataBufferType: 2022b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 2023b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2024b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncCodedBufferType: 2025b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2026b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncSequenceParameterBufferType: 202721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceVAEncSequenceParameterBufferH264(dpy, context, buffer, type, size, num_elements, pbuf); 2028b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2029b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncPictureParameterBufferType: 203021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceVAEncPictureParameterBufferH264(dpy, context, buffer, type, size, num_elements, pbuf); 2031b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2032b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncSliceParameterBufferType: 2033ac1c6d1120d34338e679ac23f1348ade77b61317Elaine Wang if (size == sizeof(VAEncSliceParameterBuffer)) 2034ac1c6d1120d34338e679ac23f1348ade77b61317Elaine Wang va_TraceVAEncSliceParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf); 2035ac1c6d1120d34338e679ac23f1348ade77b61317Elaine Wang else 2036ac1c6d1120d34338e679ac23f1348ade77b61317Elaine Wang va_TraceVAEncSliceParameterBufferH264(dpy, context, buffer, type, size, num_elements, pbuf); 203721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan break; 203821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan case VAEncMiscParameterBufferType: 203921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceVAEncMiscParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf); 2040b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2041b0fac498ca4863166252f1268fda83394db54153Fei Jiang default: 2042b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2043b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 2044b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 2045b0fac498ca4863166252f1268fda83394db54153Fei Jiang 2046b0fac498ca4863166252f1268fda83394db54153Fei Jiang 2047901c77a7aa491f56b63af7b655b67439481e4177Fei Jiangstatic void va_TraceVC1Buf( 2048b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 2049b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 2050b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID buffer, 2051b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType type, 2052b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int size, 2053b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int num_elements, 2054b0fac498ca4863166252f1268fda83394db54153Fei Jiang void *pbuf 2055b0fac498ca4863166252f1268fda83394db54153Fei Jiang) 2056b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 205721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan DPY2INDEX(dpy); 205821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 2059b0fac498ca4863166252f1268fda83394db54153Fei Jiang switch (type) { 2060b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAPictureParameterBufferType: 2061b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVAPictureParameterBufferVC1(dpy, context, buffer, type, size, num_elements, pbuf); 2062b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2063b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAIQMatrixBufferType: 2064b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2065b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VABitPlaneBufferType: 2066b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 2067b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2068b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VASliceGroupMapBufferType: 206921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 2070b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2071b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VASliceParameterBufferType: 2072b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVASliceParameterBufferVC1(dpy, context, buffer, type, size, num_elements, pbuf); 2073b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2074b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VASliceDataBufferType: 207521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceVABuffers(dpy, context, buffer, type, trace_context[idx].trace_slice_size, num_elements, pbuf); 2076b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2077b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAMacroblockParameterBufferType: 207821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 2079b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2080b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAResidualDataBufferType: 208121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 2082b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2083b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VADeblockingParameterBufferType: 208421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 2085b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2086b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAImageBufferType: 2087b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2088b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAProtectedSliceDataBufferType: 2089b0fac498ca4863166252f1268fda83394db54153Fei Jiang va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 2090b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2091b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncCodedBufferType: 2092b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2093b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncSequenceParameterBufferType: 209421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 2095b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2096b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncPictureParameterBufferType: 209721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 2098b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2099b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAEncSliceParameterBufferType: 210021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); 2101b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2102b0fac498ca4863166252f1268fda83394db54153Fei Jiang default: 2103b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2104b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 2105b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 2106b0fac498ca4863166252f1268fda83394db54153Fei Jiang 2107293abef4f8172cc061d26f9d909c281b4190b514Bruce Bearevoid va_TraceRenderPicture( 2108b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 2109b0fac498ca4863166252f1268fda83394db54153Fei Jiang VAContextID context, 2110b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferID *buffers, 2111b0fac498ca4863166252f1268fda83394db54153Fei Jiang int num_buffers 2112b0fac498ca4863166252f1268fda83394db54153Fei Jiang) 2113b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 2114b0fac498ca4863166252f1268fda83394db54153Fei Jiang VABufferType type; 2115b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int size; 2116b0fac498ca4863166252f1268fda83394db54153Fei Jiang unsigned int num_elements; 2117b0fac498ca4863166252f1268fda83394db54153Fei Jiang int i; 211821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan DPY2INDEX(dpy); 2119b0fac498ca4863166252f1268fda83394db54153Fei Jiang 212021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan TRACE_FUNCNAME(idx); 212121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 212221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tcontext = 0x%08x\n", context); 212321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tnum_buffers = %d\n", num_buffers); 2124b0fac498ca4863166252f1268fda83394db54153Fei Jiang for (i = 0; i < num_buffers; i++) { 21255b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang unsigned char *pbuf; 212621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned int j; 212721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 2128b0fac498ca4863166252f1268fda83394db54153Fei Jiang /* get buffer type information */ 2129b0fac498ca4863166252f1268fda83394db54153Fei Jiang vaBufferInfo(dpy, context, buffers[i], &type, &size, &num_elements); 213072b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang 213172b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx, "\t---------------------------\n"); 213221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tbuffers[%d] = 0x%08x\n", i, buffers[i]); 213321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t type = %s\n", buffer_type_to_string(type)); 213421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t size = %d\n", size); 213521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t num_elements = %d\n", num_elements); 2136b0fac498ca4863166252f1268fda83394db54153Fei Jiang 21375b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang vaMapBuffer(dpy, buffers[i], (void **)&pbuf); 2138b0fac498ca4863166252f1268fda83394db54153Fei Jiang 213921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan switch (trace_context[idx].trace_profile) { 2140b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAProfileMPEG2Simple: 2141b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAProfileMPEG2Main: 214221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan for (j=0; j<num_elements; j++) { 214350ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "\t---------------------------\n", j); 214472b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx, "\telement[%d] = ", j); 214521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMPEG2Buf(dpy, context, buffers[i], type, size, num_elements, pbuf + size*j); 214621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan } 2147b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2148b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAProfileMPEG4Simple: 2149b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAProfileMPEG4AdvancedSimple: 2150b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAProfileMPEG4Main: 215121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan for (j=0; j<num_elements; j++) { 215250ce1dbe8a3402d56c94238710964507db7d99e1Kun Wang va_TraceMsg(idx, "\t---------------------------\n", j); 215372b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx, "\telement[%d] = ", j); 215421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMPEG4Buf(dpy, context, buffers[i], type, size, num_elements, pbuf + size*j); 215521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan } 2156b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2157b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAProfileH264Baseline: 2158b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAProfileH264Main: 2159b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAProfileH264High: 2160cceaa0568f77a7452857559614100b71fb36ee3awangkun case VAProfileH264ConstrainedBaseline: 216121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan for (j=0; j<num_elements; j++) { 216272b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx, "\t---------------------------\n", j); 216372b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx, "\telement[%d] = ", j); 216472b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang 216521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceH264Buf(dpy, context, buffers[i], type, size, num_elements, pbuf + size*j); 216621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan } 2167b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2168b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAProfileVC1Simple: 2169b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAProfileVC1Main: 2170b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAProfileVC1Advanced: 217121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan for (j=0; j<num_elements; j++) { 217272b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx, "\t---------------------------\n", j); 217372b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx, "\telement[%d] = ", j); 217472b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang 217521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceVC1Buf(dpy, context, buffers[i], type, size, num_elements, pbuf + size*j); 217621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan } 2177b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2178b0fac498ca4863166252f1268fda83394db54153Fei Jiang case VAProfileH263Baseline: 217921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan for (j=0; j<num_elements; j++) { 218072b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx, "\t---------------------------\n", j); 218172b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang va_TraceMsg(idx, "\telement[%d] = ", j); 218272b466b2b0f0ab67f78e9f1b964b0ca86b036292Fei Jiang 2183e742a3c7d8b89b69f65326582ea549c13a75b350Austin Yuan va_TraceH263Buf(dpy, context, buffers[i], type, size, num_elements, pbuf + size*j); 218421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan } 218521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan break; 2186cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang case VAProfileJPEGBaseline: 2187cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang for (j=0; j<num_elements; j++) { 2188cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang va_TraceMsg(idx, "\t---------------------------\n", j); 2189cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang va_TraceMsg(idx, "\telement[%d] = ", j); 2190cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang 2191cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang va_TraceJPEGBuf(dpy, context, buffers[i], type, size, num_elements, pbuf + size*j); 2192cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang } 2193cb99e83c12e445ca5b8fc8e56b4c04dbf1719fb4Kun Wang break; 219421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan default: 2195b0fac498ca4863166252f1268fda83394db54153Fei Jiang break; 2196b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 2197b0fac498ca4863166252f1268fda83394db54153Fei Jiang 2198b0fac498ca4863166252f1268fda83394db54153Fei Jiang vaUnmapBuffer(dpy, buffers[i]); 2199b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 220036bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang 220136bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 2202b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 2203b0fac498ca4863166252f1268fda83394db54153Fei Jiang 2204293abef4f8172cc061d26f9d909c281b4190b514Bruce Bearevoid va_TraceEndPicture( 2205b0fac498ca4863166252f1268fda83394db54153Fei Jiang VADisplay dpy, 22065b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang VAContextID context, 22075b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang int endpic_done 2208b0fac498ca4863166252f1268fda83394db54153Fei Jiang) 2209b0fac498ca4863166252f1268fda83394db54153Fei Jiang{ 22105b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang int encode, decode, jpeg; 221121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan DPY2INDEX(dpy); 221221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 221321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan TRACE_FUNCNAME(idx); 2214b0fac498ca4863166252f1268fda83394db54153Fei Jiang 2215eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan va_TraceMsg(idx, "\tcontext = 0x%08x\n", context); 2216eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan va_TraceMsg(idx, "\trender_targets = 0x%08x\n", trace_context[idx].trace_rendertarget); 22175b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang 22185b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang encode = (trace_context[idx].trace_entrypoint == VAEntrypointEncSlice) && 22195b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang (trace_flag & VA_TRACE_FLAG_SURFACE_ENCODE); 22205b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang decode = (trace_context[idx].trace_entrypoint == VAEntrypointVLD) && 22215b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang (trace_flag & VA_TRACE_FLAG_SURFACE_DECODE); 22225b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang jpeg = (trace_context[idx].trace_entrypoint == VAEntrypointEncPicture) && 22235b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang (trace_flag & VA_TRACE_FLAG_SURFACE_JPEG); 2224eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan 2225eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan /* trace encode source surface, can do it before HW completes rendering */ 2226eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan if (encode || jpeg) 22275b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang va_TraceSurface(dpy); 22285b3d55a0433b48477823f81821817a78ef53ac2eShuduo Sang 2229eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan /* trace coded buffer, do it after HW completes rendering */ 2230eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan if ((encode || jpeg) && (trace_flag & VA_TRACE_FLAG_CODEDBUF)) { 223121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan vaSyncSurface(dpy, trace_context[idx].trace_rendertarget); 223221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceCodedBuf(dpy); 223321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan } 2234b0fac498ca4863166252f1268fda83394db54153Fei Jiang 2235eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan /* trace decoded surface, do it after HW completes rendering */ 2236eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan if (decode) { 223721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan vaSyncSurface(dpy, trace_context[idx].trace_rendertarget); 223821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceSurface(dpy); 2239901c77a7aa491f56b63af7b655b67439481e4177Fei Jiang } 2240eb172ee78b4442658da7b4c7df17a9287d638089Austin Yuan 224136bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 224221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan} 2243b0fac498ca4863166252f1268fda83394db54153Fei Jiang 2244cceaa0568f77a7452857559614100b71fb36ee3awangkunvoid va_TraceSyncSurface( 2245cceaa0568f77a7452857559614100b71fb36ee3awangkun VADisplay dpy, 2246cceaa0568f77a7452857559614100b71fb36ee3awangkun VASurfaceID render_target 2247cceaa0568f77a7452857559614100b71fb36ee3awangkun) 2248cceaa0568f77a7452857559614100b71fb36ee3awangkun{ 2249cceaa0568f77a7452857559614100b71fb36ee3awangkun DPY2INDEX(dpy); 2250cceaa0568f77a7452857559614100b71fb36ee3awangkun 2251cceaa0568f77a7452857559614100b71fb36ee3awangkun TRACE_FUNCNAME(idx); 2252cceaa0568f77a7452857559614100b71fb36ee3awangkun 2253cceaa0568f77a7452857559614100b71fb36ee3awangkun va_TraceMsg(idx, "\trender_target = 0x%08x\n", render_target); 225436bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 2255cceaa0568f77a7452857559614100b71fb36ee3awangkun} 2256cceaa0568f77a7452857559614100b71fb36ee3awangkun 2257cceaa0568f77a7452857559614100b71fb36ee3awangkun 2258cceaa0568f77a7452857559614100b71fb36ee3awangkunvoid va_TraceQuerySurfaceStatus( 2259cceaa0568f77a7452857559614100b71fb36ee3awangkun VADisplay dpy, 2260cceaa0568f77a7452857559614100b71fb36ee3awangkun VASurfaceID render_target, 226136bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang VASurfaceStatus *status /* out */ 2262cceaa0568f77a7452857559614100b71fb36ee3awangkun) 2263cceaa0568f77a7452857559614100b71fb36ee3awangkun{ 2264cceaa0568f77a7452857559614100b71fb36ee3awangkun DPY2INDEX(dpy); 2265cceaa0568f77a7452857559614100b71fb36ee3awangkun 2266cceaa0568f77a7452857559614100b71fb36ee3awangkun TRACE_FUNCNAME(idx); 2267cceaa0568f77a7452857559614100b71fb36ee3awangkun 2268cceaa0568f77a7452857559614100b71fb36ee3awangkun va_TraceMsg(idx, "\trender_target = 0x%08x\n", render_target); 2269cceaa0568f77a7452857559614100b71fb36ee3awangkun va_TraceMsg(idx, "\tstatus = 0x%08x\n", *status); 227036bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 2271cceaa0568f77a7452857559614100b71fb36ee3awangkun} 2272cceaa0568f77a7452857559614100b71fb36ee3awangkun 2273cceaa0568f77a7452857559614100b71fb36ee3awangkun 2274cceaa0568f77a7452857559614100b71fb36ee3awangkunvoid va_TraceQuerySurfaceError( 227536bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang VADisplay dpy, 227636bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang VASurfaceID surface, 227736bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang VAStatus error_status, 227836bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang void **error_info /*out*/ 2279cceaa0568f77a7452857559614100b71fb36ee3awangkun) 2280cceaa0568f77a7452857559614100b71fb36ee3awangkun{ 2281cceaa0568f77a7452857559614100b71fb36ee3awangkun DPY2INDEX(dpy); 2282cceaa0568f77a7452857559614100b71fb36ee3awangkun 2283cceaa0568f77a7452857559614100b71fb36ee3awangkun TRACE_FUNCNAME(idx); 2284cceaa0568f77a7452857559614100b71fb36ee3awangkun va_TraceMsg(idx, "\tsurface = 0x%08x\n", surface); 2285cceaa0568f77a7452857559614100b71fb36ee3awangkun va_TraceMsg(idx, "\terror_status = 0x%08x\n", error_status); 2286cceaa0568f77a7452857559614100b71fb36ee3awangkun if (error_status == VA_STATUS_ERROR_DECODING_ERROR) { 228736bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang VASurfaceDecodeMBErrors *p = *error_info; 228836bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang while (p->status != -1) { 228936bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, "\t\tstatus = %d\n", p->status); 229036bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, "\t\tstart_mb = %d\n", p->start_mb); 229136bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, "\t\tend_mb = %d\n", p->end_mb); 229236bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang p++; /* next error record */ 229336bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang } 2294cceaa0568f77a7452857559614100b71fb36ee3awangkun } 229536bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 2296cceaa0568f77a7452857559614100b71fb36ee3awangkun} 2297b0fac498ca4863166252f1268fda83394db54153Fei Jiang 229821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanvoid va_TraceMaxNumDisplayAttributes ( 229921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VADisplay dpy, 230021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan int number 230121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan) 230221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan{ 230321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan DPY2INDEX(dpy); 2304b0fac498ca4863166252f1268fda83394db54153Fei Jiang 230521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan TRACE_FUNCNAME(idx); 230621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 2307cceaa0568f77a7452857559614100b71fb36ee3awangkun va_TraceMsg(idx, "\tmax_display_attributes = %d\n", number); 230836bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 230921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan} 231021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 231121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanvoid va_TraceQueryDisplayAttributes ( 231221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VADisplay dpy, 231336bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang VADisplayAttribute *attr_list, /* out */ 231436bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang int *num_attributes /* out */ 231521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan) 231621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan{ 231721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan int i; 231821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 231921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan DPY2INDEX(dpy); 232021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 232121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tnum_attributes = %d\n", *num_attributes); 232221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 232321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan for (i=0; i<*num_attributes; i++) { 232421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tattr_list[%d] =\n"); 232521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t typ = 0x%08x\n", attr_list[i].type); 232621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t min_value = %d\n", attr_list[i].min_value); 232721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t max_value = %d\n", attr_list[i].max_value); 232821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t value = %d\n", attr_list[i].value); 232921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t flags = %d\n", attr_list[i].flags); 2330b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 233136bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 233221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan} 2333b0fac498ca4863166252f1268fda83394db54153Fei Jiang 2334b0fac498ca4863166252f1268fda83394db54153Fei Jiang 233521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanstatic void va_TraceDisplayAttributes ( 233621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VADisplay dpy, 233721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VADisplayAttribute *attr_list, 233821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan int num_attributes 233921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan) 234021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan{ 234121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan int i; 234221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 234321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan DPY2INDEX(dpy); 234421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 234521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tnum_attributes = %d\n", num_attributes); 234621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan for (i=0; i<num_attributes; i++) { 234721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tattr_list[%d] =\n"); 234821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t typ = 0x%08x\n", attr_list[i].type); 234921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t min_value = %d\n", attr_list[i].min_value); 235021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t max_value = %d\n", attr_list[i].max_value); 235121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t value = %d\n", attr_list[i].value); 235221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\t flags = %d\n", attr_list[i].flags); 2353b0fac498ca4863166252f1268fda83394db54153Fei Jiang } 235436bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 235521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan} 235621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 235721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 235821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanvoid va_TraceGetDisplayAttributes ( 235921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VADisplay dpy, 236021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VADisplayAttribute *attr_list, 236121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan int num_attributes 236221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan) 236321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan{ 236421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan DPY2INDEX(dpy); 2365901c77a7aa491f56b63af7b655b67439481e4177Fei Jiang 236621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan TRACE_FUNCNAME(idx); 236721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 236821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceDisplayAttributes (dpy, attr_list, num_attributes); 236921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan} 237021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 237121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanvoid va_TraceSetDisplayAttributes ( 237221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VADisplay dpy, 237321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VADisplayAttribute *attr_list, 237421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan int num_attributes 237521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan) 237621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan{ 237721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan DPY2INDEX(dpy); 237821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 237921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan TRACE_FUNCNAME(idx); 238021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 238121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceDisplayAttributes (dpy, attr_list, num_attributes); 238221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan} 238321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 238421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 238521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuanvoid va_TracePutSurface ( 238621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VADisplay dpy, 238721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VASurfaceID surface, 238821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan void *draw, /* the target Drawable */ 238921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan short srcx, 239021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan short srcy, 239121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned short srcw, 239221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned short srch, 239321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan short destx, 239421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan short desty, 239521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned short destw, 239621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned short desth, 239721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan VARectangle *cliprects, /* client supplied clip list */ 239821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned int number_cliprects, /* number of clip rects in the clip list */ 239921e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan unsigned int flags /* de-interlacing flags */ 240021e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan) 240121e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan{ 240221e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan DPY2INDEX(dpy); 240321e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 240421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan TRACE_FUNCNAME(idx); 240521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan 240621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tsurface = 0x%08x\n", surface); 240721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tdraw = 0x%08x\n", draw); 2408942aa8ad7f4275a637fb2c1e5edfab686110cc52Kun Wang va_TraceMsg(idx, "\tsrcx = %d\n", srcx); 2409942aa8ad7f4275a637fb2c1e5edfab686110cc52Kun Wang va_TraceMsg(idx, "\tsrcy = %d\n", srcy); 2410942aa8ad7f4275a637fb2c1e5edfab686110cc52Kun Wang va_TraceMsg(idx, "\tsrcw = %d\n", srcw); 2411942aa8ad7f4275a637fb2c1e5edfab686110cc52Kun Wang va_TraceMsg(idx, "\tsrch = %d\n", srch); 2412942aa8ad7f4275a637fb2c1e5edfab686110cc52Kun Wang va_TraceMsg(idx, "\tdestx = %d\n", destx); 2413942aa8ad7f4275a637fb2c1e5edfab686110cc52Kun Wang va_TraceMsg(idx, "\tdesty = %d\n", desty); 241421e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tdestw = %d\n", destw); 241521e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tdesth = %d\n", desth); 241621e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tcliprects = 0x%08x\n", cliprects); 241721e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tnumber_cliprects = %d\n", number_cliprects); 241821e26478769d887b8357289ebb7faa47b8b415aeAustin Yuan va_TraceMsg(idx, "\tflags = 0x%08x\n", flags); 241936bee3ca78947ad82f87473b5d29b9a7177ebaedShuduo Sang va_TraceMsg(idx, NULL); 2420b0fac498ca4863166252f1268fda83394db54153Fei Jiang} 2421