1/* 2* Copyright (c) 2011 Intel Corporation. All Rights Reserved. 3* Copyright (c) Imagination Technologies Limited, UK 4* 5* Permission is hereby granted, free of charge, to any person obtaining a 6* copy of this software and associated documentation files (the 7* "Software"), to deal in the Software without restriction, including 8* without limitation the rights to use, copy, modify, merge, publish, 9* distribute, sub license, and/or sell copies of the Software, and to 10* permit persons to whom the Software is furnished to do so, subject to 11* the following conditions: 12* 13* The above copyright notice and this permission notice (including the 14* next paragraph) shall be included in all copies or substantial portions 15* of the Software. 16* 17* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 18* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 19* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 20* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR 21* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 22* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 23* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 24* 25*/ 26 27#include <errno.h> 28#include <stdlib.h> 29#include <unistd.h> 30#include <stdint.h> 31#include <string.h> 32#include <limits.h> 33 34#include "psb_drv_debug.h" 35#include "tng_hostdefs.h" 36#include "tng_hostheader.h" 37#include "tng_picmgmt.h" 38#include "tng_jpegES.h" 39#include "tng_trace.h" 40 41#include "hwdefs/topazhp_core_regs.h" 42#include "hwdefs/topazhp_multicore_regs_old.h" 43#include "hwdefs/topaz_db_regs.h" 44#include "hwdefs/topaz_vlc_regs.h" 45#include "hwdefs/mvea_regs.h" 46#include "hwdefs/topazhp_default_params.h" 47 48unsigned int dump_address_content = 1; 49 50#define PRINT_ARRAY_NEW( FEILD, NUM) \ 51 for(i=0;i< NUM;i++) { \ 52 if(i%6==0) \ 53 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\n\t\t"); \ 54 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t0x%x", data->FEILD[i]); } \ 55 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\n\t\t}\n"); 56 57#define PRINT_ARRAY_INT( FEILD, NUM) \ 58do { \ 59 int tmp; \ 60 \ 61 for(tmp=0;tmp< NUM;tmp++) { \ 62 if(tmp%6==0) \ 63 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\n\t\t"); \ 64 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t0x%08x", FEILD[tmp]); \ 65 } \ 66 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\n\t\t}\n"); \ 67} while (0) 68 69 70#define PRINT_ARRAY_BYTE( FEILD, NUM) \ 71do { \ 72 int tmp; \ 73 \ 74 for(tmp=0;tmp< NUM;tmp++) { \ 75 if(tmp%8==0) \ 76 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\n\t\t"); \ 77 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t0x%02x", FEILD[tmp]); \ 78 } \ 79 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\n\t\t}\n"); \ 80} while (0) 81 82 83/* 84#define PRINT_ARRAY( FEILD, NUM) \ 85 for(i=0;i< NUM;i++) \ 86 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t0x%x", data->FEILD[i]); \ 87 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\n\t\t}\n"); 88*/ 89 90#define PRINT_ARRAY( FEILD, NUM) PRINT_ARRAY_NEW(FEILD, NUM) 91 92#define PRINT_ARRAY_ADDR(STR, FEILD, NUM) \ 93do { \ 94 int i = 0; \ 95 unsigned char *virt; \ 96 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\n"); \ 97 for (i=0;i< NUM;i++) { \ 98 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t%s[%02d]=x%08x\n", STR, i, data->FEILD[i]); \ 99 } \ 100} while (0) 101 102static int MTX_HEADER_PARAMS_dump(MTX_HEADER_PARAMS *p); 103 104static int DO_HEADER_dump(MTX_HEADER_PARAMS *data) 105{ 106 MTX_HEADER_PARAMS *p = data; 107 unsigned char *q=(unsigned char *)data; 108 109 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t(===RawBits===)"); 110 PRINT_ARRAY_BYTE(q, 128); 111 112 MTX_HEADER_PARAMS_dump(p); 113 114 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\n\n"); 115 116 return 0; 117} 118 119static void JPEG_MTX_DMA_dump(JPEG_MTX_DMA_SETUP *data) 120{ 121 int i; 122 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t ComponentPlane{\n"); 123 for(i=0;i<MTX_MAX_COMPONENTS ;i++) 124 { 125 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t\t ui32PhysAddr=%d\n",data->ComponentPlane[i].ui32PhysAddr); 126 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32Stride=%d",data->ComponentPlane[i].ui32Stride); 127 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32Height=%d\n",data->ComponentPlane[i].ui32Height); 128 } 129 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t }\n"); 130 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t MCUComponent{\n"); 131 for(i=0;i<MTX_MAX_COMPONENTS ;i++) 132 { 133 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t\t ui32WidthBlocks=%d",data->MCUComponent[i].ui32WidthBlocks); 134 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32HeightBlocks=%d",data->MCUComponent[i].ui32HeightBlocks); 135 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32XLimit=%d\n",data->MCUComponent[i].ui32XLimit); 136 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32YLimit=%d\n",data->MCUComponent[i].ui32YLimit); 137 } 138 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t }\n"); 139 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t ui32ComponentsInScan =%d\n", data->ui32ComponentsInScan); 140 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t ui32TableA =%d\n", data->ui32TableA); 141 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t ui16DataInterleaveStatus =%d\n", data->ui16DataInterleaveStatus); 142 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t ui16MaxPipes =%d\n", data->ui16MaxPipes); 143 //drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t apWritebackRegions {"); 144 //PRINT_ARRAY( apWritebackRegions, WB_FIFO_SIZE); 145} 146 147static void ISSUE_BUFFER_dump(MTX_ISSUE_BUFFERS *data) 148{ 149 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t ui32MCUPositionOfScanAndPipeNo =%d\n", data->ui32MCUPositionOfScanAndPipeNo); 150 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t ui32MCUCntAndResetFlag =%d\n", data->ui32MCUCntAndResetFlag); 151} 152 153static void JPEG_TABLE_dump(JPEG_MTX_QUANT_TABLE *data) 154{ 155 int i; 156 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t aui8LumaQuantParams {"); 157 PRINT_ARRAY( aui8LumaQuantParams, QUANT_TABLE_SIZE_BYTES); 158 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t aui8ChromaQuantParams {"); 159 PRINT_ARRAY( aui8ChromaQuantParams, QUANT_TABLE_SIZE_BYTES); 160} 161 162static char *IMG_FRAME_TEMPLATE_TYPE2Str(IMG_FRAME_TEMPLATE_TYPE tmp) 163{ 164 switch (tmp){ 165 case IMG_FRAME_IDR:return "IMG_FRAME_IDR"; 166 case IMG_FRAME_INTRA:return "IMG_FRAME_INTRA"; 167 case IMG_FRAME_INTER_P:return "IMG_FRAME_INTER_P"; 168 case IMG_FRAME_INTER_B:return "IMG_FRAME_INTER_B"; 169 case IMG_FRAME_INTER_P_IDR:return "IMG_FRAME_INTER_P_IDR"; 170 case IMG_FRAME_UNDEFINED:return "IMG_FRAME_UNDEFINED"; 171 } 172 173 return "Undefined"; 174} 175 176static int apReconstructured_dump(context_ENC_p ctx) 177{ 178 int i; 179 context_ENC_mem* ps_mem = &(ctx->ctx_mem[0]); 180 context_ENC_mem_size *ps_mem_size = &(ctx->ctx_mem_size); 181 IMG_MTX_VIDEO_CONTEXT* data = NULL; 182 183 psb_buffer_map(&(ps_mem->bufs_mtx_context), &(ps_mem->bufs_mtx_context.virtual_addr)); 184 if (ps_mem->bufs_mtx_context.virtual_addr == NULL) { 185 drv_debug_msg(VIDEO_DEBUG_ERROR, "%s error: mapping mtx context\n", __FUNCTION__); 186 return 0; 187 } 188 data = (IMG_MTX_VIDEO_CONTEXT*)(ps_mem->bufs_mtx_context.virtual_addr); 189 if (data == NULL) { 190 drv_debug_msg(VIDEO_DEBUG_ERROR,"%s data pointer is NULL\n", __FUNCTION__); 191 return 0; 192 } 193 194 data = (IMG_MTX_VIDEO_CONTEXT*)(ps_mem->bufs_mtx_context.virtual_addr); 195 196 psb_buffer_map(&(ps_mem->bufs_recon_pictures), &(ps_mem->bufs_recon_pictures.virtual_addr)); 197 if (ps_mem->bufs_recon_pictures.virtual_addr == NULL) { 198 drv_debug_msg(VIDEO_DEBUG_ERROR, "%s error: mapping reconstructed buf\n", __FUNCTION__); 199 return 0; 200 } 201 202 for (i = 0; i < 8; i++) { 203 if (dump_address_content && data->apReconstructured[i]) { 204 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\tapReconstructured[%02d]=x%08x\n", i, data->apReconstructured[i]); 205 PRINT_ARRAY_BYTE(ps_mem->bufs_recon_pictures.virtual_addr, 64); 206 } else { 207 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\tapReconstructured[%02d]=x%08x = { }\n", i, data->apReconstructured[i]); 208 } 209 } 210 211 psb_buffer_unmap(&(ps_mem->bufs_mtx_context)); 212 psb_buffer_unmap(&(ps_mem->bufs_recon_pictures)); 213 return 0; 214} 215 216static int apColocated_dump(context_ENC_p ctx) 217{ 218 int i; 219 context_ENC_mem* ps_mem = &(ctx->ctx_mem[0]); 220 context_ENC_mem_size *ps_mem_size = &(ctx->ctx_mem_size); 221 IMG_MTX_VIDEO_CONTEXT* data = NULL; 222 223 psb_buffer_map(&(ps_mem->bufs_mtx_context), &(ps_mem->bufs_mtx_context.virtual_addr)); 224 if (ps_mem->bufs_mtx_context.virtual_addr == NULL) { 225 drv_debug_msg(VIDEO_DEBUG_ERROR, "%s error: mapping mtx context\n", __FUNCTION__); 226 return 0; 227 } 228 data = (IMG_MTX_VIDEO_CONTEXT*)(ps_mem->bufs_mtx_context.virtual_addr); 229 if (data == NULL) { 230 drv_debug_msg(VIDEO_DEBUG_ERROR,"%s data pointer is NULL\n", __FUNCTION__); 231 return 0; 232 } 233 234 data = (IMG_MTX_VIDEO_CONTEXT*)(ps_mem->bufs_mtx_context.virtual_addr); 235 236 psb_buffer_map(&(ps_mem->bufs_colocated), &(ps_mem->bufs_colocated.virtual_addr)); 237 if (ps_mem->bufs_colocated.virtual_addr == NULL) { 238 drv_debug_msg(VIDEO_DEBUG_ERROR, "%s error: mapping colocated buf\n", __FUNCTION__); 239 return 0; 240 } 241 242 for (i = 0; i < 8; i++) { 243 if (dump_address_content && data->apReconstructured[i]) { 244 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\tapColocated[%02d]=x%08x\n", i, data->apColocated[i]); 245 PRINT_ARRAY_BYTE(ps_mem->bufs_colocated.virtual_addr, 64); 246 } else { 247 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\tapColocated[%02d]=x%08x = { }\n", i, data->apColocated[i]); 248 } 249 } 250 251 psb_buffer_unmap(&(ps_mem->bufs_mtx_context)); 252 psb_buffer_unmap(&(ps_mem->bufs_colocated)); 253 return 0; 254} 255 256static int apPV_dump(context_ENC_p ctx) 257{ 258 int i; 259 context_ENC_mem* ps_mem = &(ctx->ctx_mem[0]); 260 context_ENC_mem_size *ps_mem_size = &(ctx->ctx_mem_size); 261 IMG_MTX_VIDEO_CONTEXT* data = NULL; 262 263 psb_buffer_map(&(ps_mem->bufs_mtx_context), &(ps_mem->bufs_mtx_context.virtual_addr)); 264 if (ps_mem->bufs_mtx_context.virtual_addr == NULL) { 265 drv_debug_msg(VIDEO_DEBUG_ERROR, "%s error: mapping mtx context\n", __FUNCTION__); 266 return 0; 267 } 268 data = (IMG_MTX_VIDEO_CONTEXT*)(ps_mem->bufs_mtx_context.virtual_addr); 269 if (data == NULL) { 270 drv_debug_msg(VIDEO_DEBUG_ERROR,"%s data pointer is NULL\n", __FUNCTION__); 271 return 0; 272 } 273 274 data = (IMG_MTX_VIDEO_CONTEXT*)(ps_mem->bufs_mtx_context.virtual_addr); 275 276 psb_buffer_map(&(ps_mem->bufs_mv), &(ps_mem->bufs_mv.virtual_addr)); 277 if (ps_mem->bufs_mv.virtual_addr == NULL) { 278 drv_debug_msg(VIDEO_DEBUG_ERROR, "%s error: mapping apMV buf\n", __FUNCTION__); 279 return 0; 280 } 281 282 for (i = 0; i < 16; i++) { 283 if (dump_address_content && data->apMV[i]) { 284 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\tapMV[%02d]=x%08x\n", i, data->apMV[i]); 285 PRINT_ARRAY_BYTE(ps_mem->bufs_mv.virtual_addr, 64); 286 } else { 287 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\tapMV[%02d]=x%08x = { }\n", i, data->apMV[i]); 288 } 289 } 290 291 psb_buffer_unmap(&(ps_mem->bufs_mtx_context)); 292 psb_buffer_unmap(&(ps_mem->bufs_mv)); 293 return 0; 294} 295 296static int apWritebackRegions_dump(context_ENC_p ctx) 297{ 298 int i; 299 context_ENC_mem* ps_mem = &(ctx->ctx_mem[0]); 300 context_ENC_mem_size *ps_mem_size = &(ctx->ctx_mem_size); 301 IMG_MTX_VIDEO_CONTEXT* data = NULL; 302 303 psb_buffer_map(&(ps_mem->bufs_mtx_context), &(ps_mem->bufs_mtx_context.virtual_addr)); 304 if (ps_mem->bufs_mtx_context.virtual_addr == NULL) { 305 drv_debug_msg(VIDEO_DEBUG_ERROR, "%s error: mapping mtx context\n", __FUNCTION__); 306 return 0; 307 } 308 data = (IMG_MTX_VIDEO_CONTEXT*)(ps_mem->bufs_mtx_context.virtual_addr); 309 if (data == NULL) { 310 drv_debug_msg(VIDEO_DEBUG_ERROR,"%s data pointer is NULL\n", __FUNCTION__); 311 return 0; 312 } 313 314 data = (IMG_MTX_VIDEO_CONTEXT*)(ps_mem->bufs_mtx_context.virtual_addr); 315 316 psb_buffer_map(&(ctx->bufs_writeback), &(ctx->bufs_writeback.virtual_addr)); 317 if (ctx->bufs_writeback.virtual_addr == NULL) { 318 drv_debug_msg(VIDEO_DEBUG_ERROR, "%s error: mapping write back buf\n", __FUNCTION__); 319 return 0; 320 } 321 322 for (i = 0; i < 32; i++) { 323 if (dump_address_content && data->apWritebackRegions[i]) { 324 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\tapWritebackRegions[%02d]=x%08x\n", i, data->apWritebackRegions[i]); 325 PRINT_ARRAY_BYTE(ctx->bufs_writeback.virtual_addr, 64); 326 } else { 327 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\tapWritebackRegions[%02d]=x%08x = { }\n", i, data->apWritebackRegions[i]); 328 } 329 } 330 331 psb_buffer_unmap(&(ps_mem->bufs_mtx_context)); 332 psb_buffer_unmap(&(ctx->bufs_writeback)); 333 return 0; 334} 335 336int apSliceParamsTemplates_dump(context_ENC_p ctx, IMG_UINT32 ui32StreamIndex, IMG_UINT32 ui32SliceBufIdx) 337{ 338 //IMG_FRAME_TEMPLATE_TYPE eSliceType = (IMG_FRAME_TEMPLATE_TYPE)ui32SliceType; 339 context_ENC_mem *ps_mem = &(ctx->ctx_mem[ui32StreamIndex]); 340 SLICE_PARAMS *p = NULL; 341 342 psb_buffer_map(&(ps_mem->bufs_slice_template), &(ps_mem->bufs_slice_template.virtual_addr)); 343 if (ps_mem->bufs_slice_template.virtual_addr == NULL) { 344 drv_debug_msg(VIDEO_DEBUG_ERROR, "%s error: mapping slice template\n", __FUNCTION__); 345 return 0; 346 } 347 348 p = (SLICE_PARAMS*)(ps_mem->bufs_slice_template.virtual_addr + (ctx->ctx_mem_size.slice_template * ui32SliceBufIdx)); 349 350 unsigned char *ptmp = (unsigned char*)&p->sSliceHdrTmpl; 351 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\tui32Flags=0x%08x\n", p->ui32Flags); 352 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\tui32SliceConfig=0x%08x\n", p->ui32SliceConfig); 353 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\tui32IPEControl=0x%08x\n", p->ui32IPEControl); 354 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\tui32SeqConfig=0x%08x\n", p->ui32SeqConfig); 355 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\teTemplateType=%s\n", IMG_FRAME_TEMPLATE_TYPE2Str(p->eTemplateType)); 356 357 //PRINT_ARRAY_BYTE(ptmp, 64); 358 359 MTX_HEADER_PARAMS_dump(&p->sSliceHdrTmpl); 360 361 psb_buffer_unmap(&(ps_mem->bufs_slice_template)); 362 363 return 0; 364} 365 366static int apPicHdrTemplates_dump(context_ENC_p ctx, IMG_UINT32 ui32StreamIndex, IMG_UINT32 count) 367{ 368 uint32_t i; 369 context_ENC_mem *ps_mem = &(ctx->ctx_mem[ui32StreamIndex]); 370 MTX_HEADER_PARAMS *data; 371 372 psb_buffer_map(&(ps_mem->bufs_pic_template), &(ps_mem->bufs_pic_template.virtual_addr)); 373 if (ps_mem->bufs_pic_template.virtual_addr == NULL) { 374 drv_debug_msg(VIDEO_DEBUG_ERROR, "%s error: mapping pic template\n", __FUNCTION__); 375 return 0; 376 } 377 378 for (i = 0; i < count; i++) { 379 data = (MTX_HEADER_PARAMS *)(ps_mem->bufs_pic_template.virtual_addr + ctx->ctx_mem_size.pic_template * i); 380 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\tapPicHdrTemplates[%02d]=0x%08x {\n", i, data); 381 PRINT_ARRAY_BYTE(data, 64); \ 382 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t}\n"); 383 } 384 385 data = (MTX_HEADER_PARAMS *)ps_mem->bufs_pic_template.virtual_addr; 386 MTX_HEADER_PARAMS_dump(data); 387 388 psb_buffer_unmap(&(ps_mem->bufs_pic_template)); 389 return 0; 390} 391 392static int auui32SliceMap_dump(context_ENC_p ctx) 393{ 394 int i; 395 context_ENC_mem* ps_mem = &(ctx->ctx_mem[0]); 396 context_ENC_mem_size *ps_mem_size = &(ctx->ctx_mem_size); 397 IMG_MTX_VIDEO_CONTEXT* data = NULL; 398 399 psb_buffer_map(&(ps_mem->bufs_mtx_context), &(ps_mem->bufs_mtx_context.virtual_addr)); 400 if (ps_mem->bufs_mtx_context.virtual_addr == NULL) { 401 drv_debug_msg(VIDEO_DEBUG_ERROR, "%s error: mapping mtx context\n", __FUNCTION__); 402 return 0; 403 } 404 data = (IMG_MTX_VIDEO_CONTEXT*)(ps_mem->bufs_mtx_context.virtual_addr); 405 if (data == NULL) { 406 drv_debug_msg(VIDEO_DEBUG_ERROR,"%s data pointer is NULL\n", __FUNCTION__); 407 return 0; 408 } 409 410 data = (IMG_MTX_VIDEO_CONTEXT*)(ps_mem->bufs_mtx_context.virtual_addr); 411 412 psb_buffer_map(&(ps_mem->bufs_slice_map), &(ps_mem->bufs_slice_map.virtual_addr)); 413 if (ps_mem->bufs_slice_map.virtual_addr == NULL) { 414 drv_debug_msg(VIDEO_DEBUG_ERROR, "%s error: mapping slice map buf\n", __FUNCTION__); 415 return 0; 416 } 417 418 for (i = 0; i < 9; i++) { 419 if (dump_address_content && data->aui32SliceMap[i]) { 420 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\taui32SliceMap[%02d]=x%08x\n", i, data->aui32SliceMap[i]); 421 PRINT_ARRAY_BYTE(ps_mem->bufs_slice_map.virtual_addr, 64); 422 } else { 423 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\taui32SliceMap[%02d]=x%08x = { }\n", i, data->aui32SliceMap[i]); 424 } 425 } 426 427 psb_buffer_unmap(&(ps_mem->bufs_mtx_context)); 428 psb_buffer_unmap(&(ps_mem->bufs_slice_map)); 429 return 0; 430} 431 432static int apSeqHeader_dump(context_ENC_p ctx, IMG_UINT32 ui32StreamIndex) 433{ 434 MTX_HEADER_PARAMS *data; 435 context_ENC_mem *ps_mem = &(ctx->ctx_mem[ui32StreamIndex]); 436 tng_cmdbuf_p cmdbuf = ctx->obj_context->tng_cmdbuf; 437 IMG_RC_PARAMS *psRCParams = &(ctx->sRCParams); 438 H264_VUI_PARAMS *psVuiParams = &(ctx->sVuiParams); 439 440 psb_buffer_map(&(ps_mem->bufs_seq_header), &(ps_mem->bufs_seq_header.virtual_addr)); 441 if (ps_mem->bufs_seq_header.virtual_addr == NULL) { 442 drv_debug_msg(VIDEO_DEBUG_ERROR, "%s error: mapping seq header\n", __FUNCTION__); 443 return 0; 444 } 445 446 data = (MTX_HEADER_PARAMS *)ps_mem->bufs_seq_header.virtual_addr; 447 448 DO_HEADER_dump(data); 449 450 psb_buffer_unmap(&(ps_mem->bufs_seq_header)); 451 return 0; 452} 453 454static int pFirstPassOutParamAddr_dump(context_ENC_p ctx) 455{ 456 int i; 457 context_ENC_mem* ps_mem = &(ctx->ctx_mem[0]); 458 context_ENC_mem_size *ps_mem_size = &(ctx->ctx_mem_size); 459 IMG_MTX_VIDEO_CONTEXT* data= NULL; 460 461 psb_buffer_map(&(ps_mem->bufs_mtx_context), &(ps_mem->bufs_mtx_context.virtual_addr)); 462 if (ps_mem->bufs_mtx_context.virtual_addr == NULL) { 463 drv_debug_msg(VIDEO_DEBUG_ERROR, "%s error: mapping mtx ctx buf\n", __FUNCTION__); 464 return 0; 465 } 466 467 data = (IMG_MTX_VIDEO_CONTEXT*)(ps_mem->bufs_mtx_context.virtual_addr); 468 469 // if enabled, return the input-control buffer corresponding to this slot 470 psb_buffer_map(&(ps_mem->bufs_first_pass_out_params), &(ps_mem->bufs_first_pass_out_params.virtual_addr)); 471 if (ps_mem->bufs_first_pass_out_params.virtual_addr == NULL) { 472 drv_debug_msg(VIDEO_DEBUG_ERROR, "%s error: mapping first pass out param buf\n", __FUNCTION__); 473 return 0; 474 } 475 476 for (i=0; i < 9; i++) { 477 if (dump_address_content && data->pFirstPassOutParamAddr[i]) { 478 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\tpFirstPassOutParamAddr[%02d]=x%08x\n", i, data->pFirstPassOutParamAddr[i]); 479 PRINT_ARRAY_BYTE(ps_mem->bufs_first_pass_out_params.virtual_addr, 64); 480 } else { 481 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\tpFirstPassOutParamAddr[%02d]=x%08x = { }\n", i, data->pFirstPassOutParamAddr[i]); 482 } 483 } 484 485 psb_buffer_unmap(&(ps_mem->bufs_mtx_context)); 486 psb_buffer_unmap(&(ps_mem->bufs_first_pass_out_params)); 487 return 0; 488} 489 490static int pFirstPassOutBestMultipassParamAddr_dump(context_ENC_p ctx) 491{ 492 int i; 493 context_ENC_mem* ps_mem = &(ctx->ctx_mem[0]); 494 context_ENC_mem_size *ps_mem_size = &(ctx->ctx_mem_size); 495 IMG_MTX_VIDEO_CONTEXT* data= NULL; 496 497 psb_buffer_map(&(ps_mem->bufs_mtx_context), &(ps_mem->bufs_mtx_context.virtual_addr)); 498 if (ps_mem->bufs_mtx_context.virtual_addr == NULL) { 499 drv_debug_msg(VIDEO_DEBUG_ERROR, "%s error: mapping mtx ctx buf\n", __FUNCTION__); 500 return 0; 501 } 502 503 data = (IMG_MTX_VIDEO_CONTEXT*)(ps_mem->bufs_mtx_context.virtual_addr); 504 505 // if enabled, return the input-control buffer corresponding to this slot 506 psb_buffer_map(&(ps_mem->bufs_first_pass_out_best_multipass_param), &(ps_mem->bufs_first_pass_out_best_multipass_param.virtual_addr)); 507 if (ps_mem->bufs_first_pass_out_best_multipass_param.virtual_addr == NULL) { 508 drv_debug_msg(VIDEO_DEBUG_ERROR, "%s error: mapping first pass out param buf\n", __FUNCTION__); 509 return 0; 510 } 511 512 for (i=0; i < 9; i++) { 513 if (dump_address_content && data->pFirstPassOutBestMultipassParamAddr[i]) { 514 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\tpFirstPassOutBestMultipassParamAddr[%02d]=x%08x\n", i, data->pFirstPassOutBestMultipassParamAddr[i]); 515 PRINT_ARRAY_BYTE(ps_mem->bufs_first_pass_out_best_multipass_param.virtual_addr, 64); 516 } else { 517 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\tpFirstPassOutBestMultipassParamAddr[%02d]=x%08x = { }\n", i, data->pFirstPassOutBestMultipassParamAddr[i]); 518 } 519 } 520 521 psb_buffer_unmap(&(ps_mem->bufs_mtx_context)); 522 psb_buffer_unmap(&(ps_mem->bufs_first_pass_out_best_multipass_param)); 523 return 0; 524} 525 526static int pMBCtrlInParamsAddr_dump(context_ENC_p ctx, IMG_UINT32 __maybe_unused ui32StreamIndex) 527{ 528 int i; 529 context_ENC_mem* ps_mem = &(ctx->ctx_mem[0]); 530 context_ENC_mem_size *ps_mem_size = &(ctx->ctx_mem_size); 531 IMG_MTX_VIDEO_CONTEXT* data= NULL; 532 533 psb_buffer_map(&(ps_mem->bufs_mtx_context), &(ps_mem->bufs_mtx_context.virtual_addr)); 534 if (ps_mem->bufs_mtx_context.virtual_addr == NULL) { 535 drv_debug_msg(VIDEO_DEBUG_ERROR, "%s error: mapping mtx ctx buf\n", __FUNCTION__); 536 return 0; 537 } 538 539 data = (IMG_MTX_VIDEO_CONTEXT*)(ps_mem->bufs_mtx_context.virtual_addr); 540 541 // if enabled, return the input-control buffer corresponding to this slot 542 psb_buffer_map(&(ps_mem->bufs_mb_ctrl_in_params), &(ps_mem->bufs_mb_ctrl_in_params.virtual_addr)); 543 if (ps_mem->bufs_mb_ctrl_in_params.virtual_addr == NULL) { 544 drv_debug_msg(VIDEO_DEBUG_ERROR, "%s error: mapping mb ctrl buf\n", __FUNCTION__); 545 return 0; 546 } 547 548 for (i=0; i < 9; i++) { 549 if (dump_address_content && data->pMBCtrlInParamsAddr[i]) { 550 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\tpMBCtrlInParamsAddr[%02d]=x%08x\n", i, data->pMBCtrlInParamsAddr[i]); 551 PRINT_ARRAY_BYTE(ps_mem->bufs_mb_ctrl_in_params.virtual_addr, 64); 552 } else { 553 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\tpMBCtrlInParamsAddr[%02d]=x%08x = { }\n", i, data->pMBCtrlInParamsAddr[i]); 554 } 555 } 556 557 psb_buffer_unmap(&(ps_mem->bufs_mtx_context)); 558 psb_buffer_unmap(&(ps_mem->bufs_mb_ctrl_in_params)); 559 return 0; 560} 561 562static int apAboveParams_dump(context_ENC_p ctx) 563{ 564 int i; 565 context_ENC_mem* ps_mem = &(ctx->ctx_mem[0]); 566 context_ENC_mem_size *ps_mem_size = &(ctx->ctx_mem_size); 567 IMG_MTX_VIDEO_CONTEXT* data= NULL; 568 569 psb_buffer_map(&(ps_mem->bufs_mtx_context), &(ps_mem->bufs_mtx_context.virtual_addr)); 570 if (ps_mem->bufs_mtx_context.virtual_addr == NULL) { 571 drv_debug_msg(VIDEO_DEBUG_ERROR, "%s error: mapping mtx ctx buf\n", __FUNCTION__); 572 return 0; 573 } 574 575 data = (IMG_MTX_VIDEO_CONTEXT*)(ps_mem->bufs_mtx_context.virtual_addr); 576 577 // if enabled, return the input-control buffer corresponding to this slot 578 psb_buffer_map(&(ps_mem->bufs_above_params), &(ps_mem->bufs_above_params.virtual_addr)); 579 if (ps_mem->bufs_above_params.virtual_addr == NULL) { 580 drv_debug_msg(VIDEO_DEBUG_ERROR, "%s error: mapping above param ctrl buf\n", __FUNCTION__); 581 return 0; 582 } 583 584 for (i=0; i < 2; i++) { 585 if (dump_address_content && data->apAboveParams[i]) { 586 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\tapAboveParams[%02d]=x%08x\n", i, data->apAboveParams[i]); 587 PRINT_ARRAY_BYTE(ps_mem->bufs_above_params.virtual_addr, 64); 588 } else { 589 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\tapAboveParams[%02d]=x%08x = { }\n", i, data->apAboveParams[i]); 590 } 591 } 592 593 psb_buffer_unmap(&(ps_mem->bufs_mtx_context)); 594 psb_buffer_unmap(&(ps_mem->bufs_above_params)); 595 return 0; 596} 597 598static int aui32LTRefHeader_dump(context_ENC_p ctx) 599{ 600 int i; 601 context_ENC_mem* ps_mem = &(ctx->ctx_mem[0]); 602 context_ENC_mem_size *ps_mem_size = &(ctx->ctx_mem_size); 603 IMG_MTX_VIDEO_CONTEXT* data = NULL; 604 605 psb_buffer_map(&(ps_mem->bufs_mtx_context), &(ps_mem->bufs_mtx_context.virtual_addr)); 606 if (ps_mem->bufs_mtx_context.virtual_addr == NULL) { 607 drv_debug_msg(VIDEO_DEBUG_ERROR, "%s error: mapping mtx context\n", __FUNCTION__); 608 return 0; 609 } 610 data = (IMG_MTX_VIDEO_CONTEXT*)(ps_mem->bufs_mtx_context.virtual_addr); 611 if (data == NULL) { 612 drv_debug_msg(VIDEO_DEBUG_ERROR,"%s data pointer is NULL\n", __FUNCTION__); 613 return 0; 614 } 615 616 data = (IMG_MTX_VIDEO_CONTEXT*)(ps_mem->bufs_mtx_context.virtual_addr); 617 618 psb_buffer_map(&(ps_mem->bufs_lt_ref_header), &(ps_mem->bufs_lt_ref_header.virtual_addr)); 619 if (ps_mem->bufs_lt_ref_header.virtual_addr == NULL) { 620 drv_debug_msg(VIDEO_DEBUG_ERROR, "%s error: mapping lt ref buf\n", __FUNCTION__); 621 return 0; 622 } 623 624 for (i = 0; i < 9; i++) { 625 if (dump_address_content && data->aui32LTRefHeader[i]) { 626 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\taui32LTRefHeader[%02d]=x%08x\n", i, data->aui32LTRefHeader[i]); 627 PRINT_ARRAY_BYTE(ps_mem->bufs_lt_ref_header.virtual_addr, 64); 628 } else { 629 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\taui32LTRefHeader[%02d]=x%08x = { }\n", i, data->aui32LTRefHeader[i]); 630 } 631 } 632 633 psb_buffer_unmap(&(ps_mem->bufs_mtx_context)); 634 psb_buffer_unmap(&(ps_mem->bufs_lt_ref_header)); 635 return 0; 636} 637 638void tng_trace_setvideo(context_ENC_p ctx, IMG_UINT32 ui32StreamID) 639{ 640 unsigned int i; 641 642 context_ENC_mem *ps_mem = &(ctx->ctx_mem[ui32StreamID]); 643 context_ENC_mem_size *ps_mem_size = &(ctx->ctx_mem_size); 644 IMG_MTX_VIDEO_CONTEXT* data= NULL; 645 646 psb_buffer_map(&(ps_mem->bufs_mtx_context), &(ps_mem->bufs_mtx_context.virtual_addr)); 647 if (ps_mem->bufs_mtx_context.virtual_addr == NULL) { 648 drv_debug_msg(VIDEO_DEBUG_ERROR, "%s error: mapping mtx context\n", __FUNCTION__); 649 return ; 650 } 651 652 data = (IMG_MTX_VIDEO_CONTEXT*)(ps_mem->bufs_mtx_context.virtual_addr); 653 654 if (data == NULL) { 655 drv_debug_msg(VIDEO_DEBUG_ERROR,"%s data pointer is NULL\n", __FUNCTION__); 656 return ; 657 } 658 659 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t==========IMG_MTX_VIDEO_CONTEXT=============\n"); 660 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui64ClockDivBitrate=%lld\n", data->ui64ClockDivBitrate); 661 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32WidthInMbs=%d\n", data->ui32WidthInMbs); 662 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32PictureHeightInMbs=%d\n", data->ui32PictureHeightInMbs); 663#ifdef FORCED_REFERENCE 664 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t apTmpReconstructured {"); 665 PRINT_ARRAY_ADDR("apTmpReconstructured", apTmpReconstructured, MAX_PIC_NODES); 666#endif 667 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t apReconstructured {\n"); 668 apReconstructured_dump(ctx); 669 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t apColocated {\n"); 670 apColocated_dump(ctx); 671 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t apMV {\n"); 672 apPV_dump(ctx); 673 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t apInterViewMV {"); 674// PRINT_ARRAY( apInterViewMV, 2 ); 675 PRINT_ARRAY_ADDR("apInterViewMV", apInterViewMV, 2); 676 677 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32DebugCRCs=0x%x\n", data->ui32DebugCRCs); 678 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t apWritebackRegions {\n"); 679 apWritebackRegions_dump(ctx); 680 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32InitialCPBremovaldelayoffset=0x%x\n", data->ui32InitialCPBremovaldelayoffset); 681 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32MaxBufferMultClockDivBitrate=0x%x\n", data->ui32MaxBufferMultClockDivBitrate); 682 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t pSEIBufferingPeriodTemplate=0x%x\n", data->pSEIBufferingPeriodTemplate); 683 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t pSEIPictureTimingTemplate=0x%x\n", data->pSEIPictureTimingTemplate); 684 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t b16EnableMvc=%d\n", data->b16EnableMvc); 685 //drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t b16EnableInterViewReference=%d\n", data->b16EnableInterViewReference); 686 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui16MvcViewIdx=0x%x\n", data->ui16MvcViewIdx); 687 688 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t apSliceParamsTemplates {\n"); 689 //PRINT_ARRAY_ADDR( apSliceParamsTemplates, 5); 690 for (i=0; i<5; i++) { 691 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\tapSliceParamsTemplates[%d]=0x%08x {\n", i, data->apSliceParamsTemplates[i]); 692 apSliceParamsTemplates_dump(ctx, 0, i); 693 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t}\n"); 694 } 695 696 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t apPicHdrTemplates {\n"); 697 apPicHdrTemplates_dump(ctx, 0, 5); 698 699 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t aui32SliceMap {\n"); 700 auui32SliceMap_dump(ctx); 701 702 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32FlatGopStruct=0x%x\n", data->ui32FlatGopStruct); 703 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t apSeqHeader =0x%x\n", data->apSeqHeader); 704 apSeqHeader_dump(ctx, 0); 705 706 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t apSubSetSeqHeader =0x%x\n", data->apSubSetSeqHeader); 707 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t b16NoSequenceHeaders =0x%x\n", data->b16NoSequenceHeaders); 708 709 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t b8WeightedPredictionEnabled=%d\n", data->b8WeightedPredictionEnabled); 710 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui8MTXWeightedImplicitBiPred=0x%x\n", data->ui8MTXWeightedImplicitBiPred); 711 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t aui32WeightedPredictionVirtAddr {"); 712 PRINT_ARRAY(aui32WeightedPredictionVirtAddr, MAX_SOURCE_SLOTS_SL); 713 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32HierarGopStruct=0x%x\n", data->ui32HierarGopStruct); 714 715 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t pFirstPassOutParamAddr {\n"); 716 pFirstPassOutParamAddr_dump(ctx); 717#ifndef EXCLUDE_BEST_MP_DECISION_DATA 718 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t pFirstPassOutBestMultipassParamAddr {"); 719 pFirstPassOutBestMultipassParamAddr_dump(ctx); 720#endif 721 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t pMBCtrlInParamsAddr {\n"); 722 pMBCtrlInParamsAddr_dump(ctx, 0); 723 724 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32InterIntraScale{"); 725 PRINT_ARRAY( ui32InterIntraScale, SCALE_TBL_SZ); 726 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32SkippedCodedScale {"); 727 PRINT_ARRAY( ui32SkippedCodedScale, SCALE_TBL_SZ); 728 729 730 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32PicRowStride=0x%x\n", data->ui32PicRowStride); 731 732 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t apAboveParams {\n"); 733 apAboveParams_dump(ctx); 734 735 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32IdrPeriod =0x%x\n ", data->ui32IdrPeriod); 736 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32IntraLoopCnt =0x%x\n", data->ui32IntraLoopCnt); 737 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32BFrameCount =0x%x\n", data->ui32BFrameCount); 738 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t b8Hierarchical=%d\n", data->b8Hierarchical); 739 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui8MPEG2IntraDCPrecision =0x%x\n", data->ui8MPEG2IntraDCPrecision); 740 741 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t aui8PicOnLevel {"); 742 PRINT_ARRAY(aui8PicOnLevel, MAX_REF_LEVELS); 743 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32VopTimeResolution=0x%x\n", data->ui32VopTimeResolution); 744 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32InitialQp=0x%x\n", data->ui32InitialQp); 745 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32BUSize=0x%x\n", data->ui32BUSize); 746 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t sMVSettingsIdr { \n\t\t\tui32MVCalc_Below=0x%x\n \t\t\tui32MVCalc_Colocated=0x%x\n \t\t\tui32MVCalc_Config=0x%x\n \t\t}\n", data->sMVSettingsIdr.ui32MVCalc_Below,data->sMVSettingsIdr.ui32MVCalc_Colocated, data->sMVSettingsIdr.ui32MVCalc_Config); 747 748 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t sMVSettingsNonB { \n"); 749 for(i=0;i<MAX_BFRAMES +1;i++) 750 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t\tui32MVCalc_Below=0x%x ui32MVCalc_Colocated=0x%x ui32MVCalc_Config=0x%x }\n", data->sMVSettingsNonB[i].ui32MVCalc_Below,data->sMVSettingsNonB[i].ui32MVCalc_Colocated, data->sMVSettingsNonB[i].ui32MVCalc_Config); 751 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t}\n"); 752 753 drv_debug_msg(VIDEO_ENCODE_PDUMP," \t ui32MVSettingsBTable=0x%x\n", data->ui32MVSettingsBTable); 754 drv_debug_msg(VIDEO_ENCODE_PDUMP," \t ui32MVSettingsHierarchical=0x%x\n", data->ui32MVSettingsHierarchical); 755 756#ifdef FIRMWARE_BIAS 757 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t aui32DirectBias_P {"); 758 PRINT_ARRAY_NEW(aui32DirectBias_P,27 ); 759 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t aui32InterBias_P {"); 760 PRINT_ARRAY_NEW(aui32InterBias_P,27 ); 761 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t aui32DirectBias_B {"); 762 PRINT_ARRAY_NEW(aui32DirectBias_B,27 ); 763 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t aui32InterBias_B {"); 764 PRINT_ARRAY_NEW(aui32InterBias_B,27 ); 765#endif 766 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t eFormat=%d\n", data->eFormat); 767 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t eStandard=%d\n", data->eStandard); 768 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t eRCMode=%d\n", data->eRCMode); 769 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t b8FirstPic=%d\n", data->b8FirstPic); 770 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t b8IsInterlaced=%d\n", data->b8IsInterlaced); 771 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t b8TopFieldFirst=%d\n", data->b8TopFieldFirst); 772 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t b8ArbitrarySO=%d\n", data->b8ArbitrarySO); 773 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t bOutputReconstructed=%d\n", data->bOutputReconstructed); 774 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t b8DisableBitStuffing=%d\n", data->b8DisableBitStuffing); 775 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t b8InsertHRDparams=%d\n", data->b8InsertHRDparams); 776 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui8MaxSlicesPerPicture=%d\n", data->ui8MaxSlicesPerPicture); 777 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui8NumPipes=%d\n", data->ui8NumPipes); 778 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t bCARC=%d\n", data->bCARC); 779 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t iCARCBaseline=%d\n", data->iCARCBaseline); 780 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t uCARCThreshold=%d\n", data->uCARCThreshold); 781 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t uCARCCutoff=%d\n", data->uCARCCutoff); 782 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t uCARCNegRange=%d\n", data->uCARCNegRange); 783 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t uCARCNegScale=%d\n", data->uCARCNegScale); 784 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t uCARCPosRange=%d\n", data->uCARCPosRange); 785 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t uCARCPosScale=%d\n", data->uCARCPosScale); 786 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t uCARCShift=%d\n", data->uCARCShift); 787 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32MVClip_Config=%d\n", data->ui32MVClip_Config); 788 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32PredCombControl=%d\n", data->ui32PredCombControl); 789 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32LRITC_Tile_Use_Config=%d\n", data->ui32LRITC_Tile_Use_Config); 790 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32LRITC_Cache_Chunk_Config=%d\n", data->ui32LRITC_Cache_Chunk_Config); 791 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32IPEVectorClipping=%d\n", data->ui32IPEVectorClipping); 792 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32H264CompControl=%d\n", data->ui32H264CompControl); 793 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32H264CompIntraPredModes=%d\n", data->ui32H264CompIntraPredModes); 794 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32IPCM_0_Config=%d\n", data->ui32IPCM_0_Config); 795 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32IPCM_1_Config=%d\n", data->ui32IPCM_1_Config); 796 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32SPEMvdClipRange=%d\n", data->ui32SPEMvdClipRange); 797 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32JMCompControl=%d\n", data->ui32JMCompControl); 798 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32MBHostCtrl=%d\n", data->ui32MBHostCtrl); 799 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32DeblockCtrl=%d\n", data->ui32DeblockCtrl); 800 801 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32SkipCodedInterIntra=%d\n", data->ui32SkipCodedInterIntra); 802 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32VLCControl=%d\n", data->ui32VLCControl); 803 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32VLCSliceControl=%d\n", data->ui32VLCSliceControl); 804 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32VLCSliceMBControl=%d\n", data->ui32VLCSliceMBControl); 805 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui16CQPOffset=%d\n", data->ui16CQPOffset); 806 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t b8CodedHeaderPerSlice=%d\n", data->b8CodedHeaderPerSlice); 807 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32FirstPicFlags=%d\n", data->ui32FirstPicFlags); 808 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32NonFirstPicFlags=%d\n", data->ui32NonFirstPicFlags); 809 810#ifndef EXCLUDE_ADAPTIVE_ROUNDING 811 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t bMCAdaptiveRoundingDisable=%d\n",data->bMCAdaptiveRoundingDisable); 812 int j; 813 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui16MCAdaptiveRoundingOffsets[18][4]"); 814 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\n"); 815 for(i=0;i<18;i++){ 816 for(j=0;j<4;j++) 817 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t\t0x%x", data-> ui16MCAdaptiveRoundingOffsets[i][j]); 818 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\n"); 819 } 820#endif 821 822#ifdef FORCED_REFERENCE 823 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32PatchedReconAddress=0x%x\n", data->ui32PatchedReconAddress); 824 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32PatchedRef0Address=0x%x\n", data->ui32PatchedRef0Address); 825 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui32PatchedRef1Address=0x%x\n", data->ui32PatchedRef1Address); 826#endif 827#ifdef LTREFHEADER 828 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t aui32LTRefHeader {\n"); 829 aui32LTRefHeader_dump(ctx); 830 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t i8SliceHeaderSlotNum=%d\n",data->i8SliceHeaderSlotNum); 831#endif 832 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t b8ReconIsLongTerm=%d\n", data->b8ReconIsLongTerm); 833 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t b8Ref0IsLongTerm=%d\n", data->b8Ref0IsLongTerm); 834 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t b8Ref1IsLongTerm=%d\n", data->b8Ref1IsLongTerm); 835 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui8RefSpacing=0x%x\n", data->ui8RefSpacing); 836 837 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui8FirstPipe=0x%x\n", data->ui8FirstPipe); 838 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui8LastPipe=0x%x\n", data->ui8LastPipe); 839 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t ui8PipesToUseFlags=0x%x\n", data->ui8PipesToUseFlags); 840 841 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t sInParams {\n"); 842 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t ui16MBPerFrm=%d\n",data->sInParams.ui16MBPerFrm); 843 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t ui16MBPerBU=%d\n", data->sInParams.ui16MBPerBU); 844 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t ui16BUPerFrm=%d\n",data->sInParams.ui16BUPerFrm); 845 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t ui16IntraPerio=%d\n",data->sInParams.ui16IntraPeriod); 846 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t ui16BFrames=%d\n", data->sInParams.ui16BFrames); 847 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t bHierarchicalMode=%d\n",data->sInParams.mode.h264.bHierarchicalMode); 848 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t i32BitsPerFrm=%d\n", data->sInParams.i32BitsPerFrm); 849 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t i32BitsPerBU=%d\n", data->sInParams.i32BitsPerBU); 850 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t i32BitsPerMB=%d\n", data->sInParams.mode.other.i32BitsPerMB); 851 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t i32BitRate=%d\n",data->sInParams.i32BitRate); 852 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t i32BufferSiz=%d\n",data->sInParams.i32BufferSize ); 853 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t i32InitialLevel=%d\n", data->sInParams.i32InitialLevel); 854 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t i32InitialDelay=%d\n", data->sInParams.i32InitialDelay); 855 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t i32BitsPerGOP=%d\n", data->sInParams.mode.other.i32BitsPerGOP); 856 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t ui16AvQPVal=%d\n", data->sInParams.mode.other.ui16AvQPVal); 857 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t ui16MyInitQP=%d\n",data->sInParams.mode.other.ui16MyInitQP); 858 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t ui32RCScaleFactor=%d\n",data->sInParams.mode.h264.ui32RCScaleFactor); 859 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t bScDetectDis;=%d\n", data->sInParams.mode.h264.bScDetectDisable); 860 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t bFrmSkipDisable=%d\n",data->sInParams.bFrmSkipDisable); 861 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t bBUSkipDisable=%d\n",data->sInParams.mode.other.bBUSkipDisable); 862 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t ui8SeInitQP=%d\n", data->sInParams.ui8SeInitQP ); 863 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t ui8MinQPVal=%d\n", data->sInParams.ui8MinQPVal ); 864 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t ui8MaxQPVal=%d\n", data->sInParams.ui8MaxQPVal ); 865 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t ui8MBPerRow=%d\n", data->sInParams.ui8MBPerRow ); 866 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t ui8ScaleFactor=%d\n", data->sInParams.ui8ScaleFactor); 867 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t ui8HalfFrame=%d\n", data->sInParams.mode.other.ui8HalfFrameRate); 868 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t ui8FCode=%d\n", data->sInParams.mode.other.ui8FCode); 869 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t i32TransferRate=%d\n",data->sInParams.mode.h264.i32TransferRate); 870 871 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t}\n"); 872 873 psb_buffer_unmap(&(ps_mem->bufs_mtx_context)); 874 875 return; 876} 877 878struct header_token { 879 int token; 880 char *str; 881} header_tokens[] = { 882 {ELEMENT_STARTCODE_RAWDATA,"ELEMENT_STARTCODE_RAWDATA=0"}, 883 {ELEMENT_STARTCODE_MIDHDR,"ELEMENT_STARTCODE_MIDHDR"}, 884 {ELEMENT_RAWDATA,"ELEMENT_RAWDATA"}, 885 {ELEMENT_QP,"ELEMENT_QP"}, 886 {ELEMENT_SQP,"ELEMENT_SQP"}, 887 {ELEMENT_FRAMEQSCALE,"ELEMENT_FRAMEQSCALE"}, 888 {ELEMENT_SLICEQSCALE,"ELEMENT_SLICEQSCALE"}, 889 {ELEMENT_INSERTBYTEALIGN_H264,"ELEMENT_INSERTBYTEALIGN_H264"}, 890 {ELEMENT_INSERTBYTEALIGN_MPG4,"ELEMENT_INSERTBYTEALIGN_MPG4"}, 891 {ELEMENT_INSERTBYTEALIGN_MPG2,"ELEMENT_INSERTBYTEALIGN_MPG2"}, 892 {ELEMENT_VBV_MPG2,"ELEMENT_VBV_MPG2"}, 893 {ELEMENT_TEMPORAL_REF_MPG2,"ELEMENT_TEMPORAL_REF_MPG2"}, 894 {ELEMENT_CURRMBNR,"ELEMENT_CURRMBNR"}, 895 {ELEMENT_FRAME_NUM,"ELEMENT_FRAME_NUM"}, 896 {ELEMENT_TEMPORAL_REFERENCE,"ELEMENT_TEMPORAL_REFERENCE"}, 897 {ELEMENT_EXTENDED_TR,"ELEMENT_EXTENDED_TR"}, 898 {ELEMENT_IDR_PIC_ID,"ELEMENT_IDR_PIC_ID"}, 899 {ELEMENT_PIC_ORDER_CNT,"ELEMENT_PIC_ORDER_CNT"}, 900 {ELEMENT_GOB_FRAME_ID,"ELEMENT_GOB_FRAME_ID"}, 901 {ELEMENT_VOP_TIME_INCREMENT,"ELEMENT_VOP_TIME_INCREMENT"}, 902 {ELEMENT_MODULO_TIME_BASE,"ELEMENT_MODULO_TIME_BASE"}, 903 {ELEMENT_BOTTOM_FIELD,"ELEMENT_BOTTOM_FIELD"}, 904 {ELEMENT_SLICE_NUM,"ELEMENT_SLICE_NUM"}, 905 {ELEMENT_MPEG2_SLICE_VERTICAL_POS,"ELEMENT_MPEG2_SLICE_VERTICAL_POS"}, 906 {ELEMENT_MPEG2_IS_INTRA_SLICE,"ELEMENT_MPEG2_IS_INTRA_SLICE"}, 907 {ELEMENT_MPEG2_PICTURE_STRUCTURE,"ELEMENT_MPEG2_PICTURE_STRUCTURE"}, 908 {ELEMENT_REFERENCE,"ELEMENT_REFERENCE"}, 909 {ELEMENT_ADAPTIVE,"ELEMENT_ADAPTIVE"}, 910 {ELEMENT_DIRECT_SPATIAL_MV_FLAG,"ELEMENT_DIRECT_SPATIAL_MV_FLAG"}, 911 {ELEMENT_NUM_REF_IDX_ACTIVE,"ELEMENT_NUM_REF_IDX_ACTIVE"}, 912 {ELEMENT_REORDER_L0,"ELEMENT_REORDER_L0"}, 913 {ELEMENT_REORDER_L1,"ELEMENT_REORDER_L1"}, 914 {ELEMENT_TEMPORAL_ID,"ELEMENT_TEMPORAL_ID"}, 915 {ELEMENT_ANCHOR_PIC_FLAG,"ELEMENT_ANCHOR_PIC_FLAG"}, 916 {BPH_SEI_NAL_INITIAL_CPB_REMOVAL_DELAY,"BPH_SEI_NAL_INITIAL_CPB_REMOVAL_DELAY"}, 917 {BPH_SEI_NAL_INITIAL_CPB_REMOVAL_DELAY_OFFSET,"BPH_SEI_NAL_INITIAL_CPB_REMOVAL_DELAY_OFFSET"}, 918 {PTH_SEI_NAL_CPB_REMOVAL_DELAY,"PTH_SEI_NAL_CPB_REMOVAL_DELAY"}, 919 {PTH_SEI_NAL_DPB_OUTPUT_DELAY,"PTH_SEI_NAL_DPB_OUTPUT_DELAY"}, 920 {ELEMENT_SLICEWEIGHTEDPREDICTIONSTRUCT,"ELEMENT_SLICEWEIGHTEDPREDICTIONSTRUCT"}, 921 {ELEMENT_CUSTOM_QUANT,"ELEMENT_CUSTOM_QUANT"} 922}; 923 924static char *header_to_str(int token) 925{ 926 unsigned int i; 927 struct header_token *p; 928 929 for (i=0; i<sizeof(header_tokens)/sizeof(struct header_token); i++) { 930 p = &header_tokens[i]; 931 if (p->token == token) 932 return p->str; 933 } 934 935 return "Invalid header token"; 936} 937 938static int MTX_HEADER_PARAMS_dump(MTX_HEADER_PARAMS *p) 939{ 940 MTX_HEADER_ELEMENT *last_element=NULL; 941 unsigned int i; 942 943 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\tui32Elements=%d\n", p->ui32Elements); 944 for (i=0; i<p->ui32Elements; i++) { 945 MTX_HEADER_ELEMENT *q = &(p->asElementStream[0]); 946 947 if (last_element) { 948 int ui8Offset = 0; 949 IMG_UINT8 *ui8P; 950 951 if (last_element->Element_Type==ELEMENT_STARTCODE_RAWDATA || 952 last_element->Element_Type==ELEMENT_RAWDATA || 953 last_element->Element_Type==ELEMENT_STARTCODE_MIDHDR) 954 { 955 //Add a new element aligned to word boundary 956 //Find RAWBit size in bytes (rounded to word boundary)) 957 ui8Offset=last_element->ui8Size+8+31; // NumberofRawbits (excluding size of bit count field)+ size of the bitcount field 958 ui8Offset/=32; //Now contains rawbits size in words 959 ui8Offset+=1; //Now contains rawbits+element_type size in words 960 ui8Offset*=4; //Convert to number of bytes (total size of structure in bytes, aligned to word boundary). 961 } 962 else 963 { 964 ui8Offset=4; 965 } 966 ui8P=(IMG_UINT8 *) last_element; 967 ui8P+=ui8Offset; 968 q=(MTX_HEADER_ELEMENT *) ui8P; 969 } 970 971 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t----Head %d----\n",i); 972 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t\tElement_Type=%d(0x%x:%s)\n", 973 q->Element_Type, q->Element_Type, header_to_str(q->Element_Type)); 974 975 if (q->Element_Type==ELEMENT_STARTCODE_RAWDATA || 976 q->Element_Type==ELEMENT_RAWDATA || 977 q->Element_Type==ELEMENT_STARTCODE_MIDHDR) { 978 int i, ui8Offset = 0; 979 IMG_UINT8 *ui8P; 980 981 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t\tui8Size=%d(0x%x)\n", q->ui8Size, q->ui8Size); 982 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t\t(====aui8Bits===)"); 983 984 //Find RAWBit size in bytes (rounded to word boundary)) 985 ui8Offset=q->ui8Size+8+31; // NumberofRawbits (excluding size of bit count field)+ size of the bitcount field 986 ui8Offset/=32; //Now contains rawbits size in words 987 //ui8Offset+=1; //Now contains rawbits+element_type size in words 988 ui8Offset*=4; //Convert to number of bytes (total size of structure in bytes, aligned to word boundar 989 990 ui8P = &q->aui8Bits; 991 for (i=0; i<ui8Offset; i++) { 992 if ((i%8) == 0) 993 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\n\t\t\t"); 994 drv_debug_msg(VIDEO_ENCODE_PDUMP,"0x%02x\t", *ui8P); 995 ui8P++; 996 } 997 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\n"); 998 } else { 999 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\t\t(no ui8Size/aui8Bits for this type header)\n"); 1000 } 1001 1002 last_element = q; 1003 } 1004 1005 return 0; 1006} 1007 1008static char *eBufferType2str(IMG_REF_BUFFER_TYPE tmp) 1009{ 1010 switch (tmp) { 1011 case IMG_BUFFER_REF0: 1012 return "IMG_BUFFER_REF0"; 1013 case IMG_BUFFER_REF1: 1014 return "IMG_BUFFER_REF1"; 1015 case IMG_BUFFER_RECON: 1016 return "IMG_BUFFER_RECON"; 1017 default: 1018 return "Unknown Buffer Type"; 1019 } 1020} 1021 1022static void PROVIDEBUFFER_SOURCE_dump(void *data) 1023{ 1024 IMG_SOURCE_BUFFER_PARAMS *source = (IMG_SOURCE_BUFFER_PARAMS*) data; 1025 1026 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\tui32PhysAddrYPlane_Field0=0x%x\n",source->ui32PhysAddrYPlane_Field0); 1027 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\tui32PhysAddrUPlane_Field0=0x%x\n",source->ui32PhysAddrUPlane_Field0); 1028 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\tui32PhysAddrVPlane_Field0=0x%x\n",source->ui32PhysAddrVPlane_Field0); 1029 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\tui32PhysAddrYPlane_Field1=0x%x\n",source->ui32PhysAddrYPlane_Field1); 1030 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\tui32PhysAddrUPlane_Field1=0x%x\n",source->ui32PhysAddrUPlane_Field1); 1031 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\tui32PhysAddrVPlane_Field1=0x%x\n",source->ui32PhysAddrVPlane_Field1); 1032 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\tui32HostContext=%d\n",source->ui32HostContext); 1033 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\tui8DisplayOrderNum=%d\n",source->ui8DisplayOrderNum); 1034 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\tui8SlotNum=%d\n",source->ui8SlotNum); 1035 return ; 1036} 1037 1038static int PROVIDEBUFFER_dump(unsigned int data) 1039{ 1040 IMG_REF_BUFFER_TYPE eBufType = (data & MASK_MTX_MSG_PROVIDE_REF_BUFFER_USE) >> SHIFT_MTX_MSG_PROVIDE_REF_BUFFER_USE; 1041 //IMG_BUFFER_DATA *bufdata = p->sData; 1042 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\t\teBufferType=(%s)\n", eBufferType2str(eBufType)); 1043 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\n\n"); 1044 1045 return 0; 1046} 1047 1048static char *eSubtype2str(IMG_PICMGMT_TYPE eSubtype) 1049{ 1050 switch (eSubtype) { 1051 case IMG_PICMGMT_REF_TYPE:return "IMG_PICMGMT_REF_TYPE"; 1052 case IMG_PICMGMT_GOP_STRUCT:return "IMG_PICMGMT_GOP_STRUCT"; 1053 case IMG_PICMGMT_SKIP_FRAME:return "IMG_PICMGMT_SKIP_FRAME"; 1054 case IMG_PICMGMT_EOS:return "IMG_PICMGMT_EOS"; 1055 case IMG_PICMGMT_FLUSH:return "IMG_PICMGMT_FLUSH"; 1056 case IMG_PICMGMT_QUANT:return "IMG_PICMGMT_QUANT"; 1057 default: return "Unknow"; 1058 } 1059} 1060int PICMGMT_dump(IMG_UINT32 data) 1061{ 1062 IMG_PICMGMT_TYPE eSubType = (data & MASK_MTX_MSG_PICMGMT_SUBTYPE) >> SHIFT_MTX_MSG_PICMGMT_SUBTYPE; 1063 IMG_FRAME_TYPE eFrameType = 0; 1064 IMG_UINT32 ui32FrameCount = 0; 1065 1066 drv_debug_msg(VIDEO_ENCODE_PDUMP, 1067 "\t\teSubtype=%d(%s)\n", eSubType, eSubtype2str(eSubType)); 1068 drv_debug_msg(VIDEO_ENCODE_PDUMP, 1069 "\t\t(=====(additional data)=====\n"); 1070 switch (eSubType) { 1071 case IMG_PICMGMT_REF_TYPE: 1072 eFrameType = (data & MASK_MTX_MSG_PICMGMT_DATA) >> SHIFT_MTX_MSG_PICMGMT_DATA; 1073 switch (eFrameType) { 1074 case IMG_INTRA_IDR: 1075 drv_debug_msg(VIDEO_ENCODE_PDUMP, 1076 "\t\teFrameType=IMG_INTRA_IDR\n"); 1077 break; 1078 case IMG_INTRA_FRAME: 1079 drv_debug_msg(VIDEO_ENCODE_PDUMP, 1080 "\t\teFrameType=IMG_INTRA_FRAME\n"); 1081 break; 1082 case IMG_INTER_P: 1083 drv_debug_msg(VIDEO_ENCODE_PDUMP, 1084 "\t\teFrameType=IMG_INTER_P\n"); 1085 break; 1086 case IMG_INTER_B: 1087 drv_debug_msg(VIDEO_ENCODE_PDUMP, 1088 "\t\teFrameType=IMG_INTER_B\n"); 1089 break; 1090 } 1091 break; 1092 case IMG_PICMGMT_EOS: 1093 ui32FrameCount = (data & MASK_MTX_MSG_PICMGMT_DATA) >> SHIFT_MTX_MSG_PICMGMT_DATA; 1094 drv_debug_msg(VIDEO_ENCODE_PDUMP, 1095 "\t\tui32FrameCount=%d\n", ui32FrameCount); 1096 break; 1097 default: 1098 break; 1099 } 1100 drv_debug_msg(VIDEO_ENCODE_PDUMP,"\n\n"); 1101 1102 return 0; 1103} 1104 1105 1106static char * cmd2str(int cmdid) 1107{ 1108 switch (cmdid) { 1109 case MTX_CMDID_NULL: return "MTX_CMDID_NULL"; 1110 case MTX_CMDID_SHUTDOWN: return "MTX_CMDID_SHUTDOWN"; 1111 // Video Commands 1112 case MTX_CMDID_DO_HEADER: return "MTX_CMDID_DO_HEADER"; 1113 case MTX_CMDID_ENCODE_FRAME:return "MTX_CMDID_ENCODE_FRAME"; 1114 case MTX_CMDID_START_FRAME: return "MTX_CMDID_START_FRAME"; 1115 case MTX_CMDID_ENCODE_SLICE:return "MTX_CMDID_ENCODE_SLICE"; 1116 case MTX_CMDID_END_FRAME: return "MTX_CMDID_END_FRAME"; 1117 case MTX_CMDID_SETVIDEO: return "MTX_CMDID_SETVIDEO"; 1118 case MTX_CMDID_GETVIDEO: return "MTX_CMDID_GETVIDEO"; 1119 case MTX_CMDID_PICMGMT: return "MTX_CMDID_PICMGMT"; 1120 case MTX_CMDID_RC_UPDATE: return "MTX_CMDID_RC_UPDATE"; 1121 case MTX_CMDID_PROVIDE_SOURCE_BUFFER:return "MTX_CMDID_PROVIDE_SOURCE_BUFFER"; 1122 case MTX_CMDID_PROVIDE_REF_BUFFER: return "MTX_CMDID_PROVIDE_REF_BUFFER"; 1123 case MTX_CMDID_PROVIDE_CODED_BUFFER: return "MTX_CMDID_PROVIDE_CODED_BUFFER"; 1124 case MTX_CMDID_ABORT: return "MTX_CMDID_ABORT"; 1125 // JPEG commands 1126 case MTX_CMDID_SETQUANT: return "MTX_CMDID_SETQUANT"; 1127 case MTX_CMDID_SETUP_INTERFACE: return "MTX_CMDID_SETUP_INTERFACE"; 1128 case MTX_CMDID_ISSUEBUFF: return "MTX_CMDID_ISSUEBUFF"; 1129 case MTX_CMDID_SETUP: return "MTX_CMDID_SETUP"; 1130 case MTX_CMDID_ENDMARKER: 1131 default: 1132 return "Invalid Command (%d)"; 1133 } 1134} 1135 1136void tng_H264ES_trace_seq_params(VAEncSequenceParameterBufferH264 *psTraceSeqParams) 1137{ 1138 drv_debug_msg(VIDEO_DEBUG_GENERAL,"%s: level_idc = 0x%08x\n", __FUNCTION__, psTraceSeqParams->level_idc); 1139 drv_debug_msg(VIDEO_DEBUG_GENERAL,"%s: max_num_ref_frames = 0x%08x\n", __FUNCTION__, psTraceSeqParams->max_num_ref_frames); 1140 drv_debug_msg(VIDEO_DEBUG_GENERAL,"%s: intra_idr_period = 0x%08x\n", __FUNCTION__, psTraceSeqParams->intra_idr_period); 1141 drv_debug_msg(VIDEO_DEBUG_GENERAL,"%s: intra_period = 0x%08x\n", __FUNCTION__, psTraceSeqParams->intra_period); 1142 drv_debug_msg(VIDEO_DEBUG_GENERAL,"%s: ip_period = 0x%08x\n", __FUNCTION__, psTraceSeqParams->ip_period); 1143 drv_debug_msg(VIDEO_DEBUG_GENERAL,"%s: bits_per_second = 0x%08x\n", __FUNCTION__, psTraceSeqParams->bits_per_second); 1144 1145 drv_debug_msg(VIDEO_DEBUG_GENERAL,"%s: frame_cropping_flag = 0x%08x\n", __FUNCTION__, psTraceSeqParams->frame_cropping_flag); 1146 drv_debug_msg(VIDEO_DEBUG_GENERAL,"%s: frame_crop_left_offset = 0x%08x\n", __FUNCTION__, psTraceSeqParams->frame_crop_left_offset); 1147 drv_debug_msg(VIDEO_DEBUG_GENERAL,"%s: frame_crop_right_offset = 0x%08x\n", __FUNCTION__, psTraceSeqParams->frame_crop_right_offset); 1148 drv_debug_msg(VIDEO_DEBUG_GENERAL,"%s: frame_crop_top_offset = 0x%08x\n", __FUNCTION__, psTraceSeqParams->frame_crop_top_offset); 1149 drv_debug_msg(VIDEO_DEBUG_GENERAL,"%s: frame_crop_bottom_offset = 0x%08x\n", __FUNCTION__, psTraceSeqParams->frame_crop_bottom_offset); 1150 return; 1151} 1152 1153 1154void tng_H264ES_trace_pic_params(VAEncPictureParameterBufferH264 *psTracePicParams) 1155{ 1156 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s: CurrPic.picture_id = 0x%08x\n",__FUNCTION__, psTracePicParams->CurrPic.picture_id); 1157 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s: coded_buf = 0x%08x\n",__FUNCTION__, psTracePicParams->coded_buf); 1158 1159 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s: ReferenceFrames[0] = 0x%08x\n",__FUNCTION__, psTracePicParams->ReferenceFrames[0].picture_id); 1160 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s: ReferenceFrames[1] = 0x%08x\n",__FUNCTION__, psTracePicParams->ReferenceFrames[1].picture_id); 1161 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s: ReferenceFrames[2] = 0x%08x\n",__FUNCTION__, psTracePicParams->ReferenceFrames[2].picture_id); 1162 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s: ReferenceFrames[3] = 0x%08x\n",__FUNCTION__, psTracePicParams->ReferenceFrames[3].picture_id); 1163 1164 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s: pic_fields = 0x%08x\n",__FUNCTION__, psTracePicParams->pic_fields.value); 1165 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s: pic_init_qp = 0x%08x\n",__FUNCTION__, psTracePicParams->pic_init_qp); 1166 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s: last_picture = 0x%08x\n",__FUNCTION__, psTracePicParams->last_picture); 1167 return; 1168} 1169 1170 1171void tng_H264ES_trace_slice_params(VAEncSliceParameterBufferH264 *psTraceSliceParams) 1172{ 1173 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s: disable_deblocking_filter_idc = 0x%08x\n",__FUNCTION__, psTraceSliceParams->disable_deblocking_filter_idc); 1174 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s: macroblock_address = 0x%08x\n",__FUNCTION__, psTraceSliceParams->macroblock_address); 1175 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s: num_macroblocks = 0x%08x\n",__FUNCTION__, psTraceSliceParams->num_macroblocks); 1176 return; 1177} 1178 1179void tng_H264ES_trace_misc_rc_params(VAEncMiscParameterRateControl *psTraceMiscRcParams) 1180{ 1181 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s bits_per_second = 0x%08x\n", __FUNCTION__, psTraceMiscRcParams->bits_per_second); 1182 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s window_size = 0x%08x\n", __FUNCTION__, psTraceMiscRcParams->window_size); 1183 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s initial_qp = 0x%08x\n", __FUNCTION__, psTraceMiscRcParams->initial_qp); 1184 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s min_qp = 0x%08x\n", __FUNCTION__, psTraceMiscRcParams->min_qp); 1185 return; 1186} 1187 1188/*********************************************************************/ 1189void tng_trace_seq_header_params(H264_SEQUENCE_HEADER_PARAMS *psSHParams) 1190{ 1191 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s ucProfile = %x\n", __FUNCTION__, psSHParams->ucProfile); 1192 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s ucLevel = %x\n", __FUNCTION__, psSHParams->ucLevel); 1193 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s ucWidth_in_mbs_minus1 = %x\n", __FUNCTION__, psSHParams->ucWidth_in_mbs_minus1); 1194 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s ucHeight_in_maps_units_minus1 = %x\n", __FUNCTION__, psSHParams->ucHeight_in_maps_units_minus1); 1195 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s log2_max_pic_order_cnt = %x\n", __FUNCTION__, psSHParams->log2_max_pic_order_cnt); 1196 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s max_num_ref_frames = %x\n", __FUNCTION__, psSHParams->max_num_ref_frames); 1197 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s gaps_in_frame_num_value = %x\n", __FUNCTION__, psSHParams->gaps_in_frame_num_value); 1198 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s ucFrame_mbs_only_flag = %x\n", __FUNCTION__, psSHParams->ucFrame_mbs_only_flag); 1199 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s VUI_Params_Present = %x\n", __FUNCTION__, psSHParams->VUI_Params_Present); 1200 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s seq_scaling_matrix_present_flag = %x\n", __FUNCTION__, psSHParams->seq_scaling_matrix_present_flag); 1201 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s bUseDefaultScalingList = %x\n", __FUNCTION__, psSHParams->bUseDefaultScalingList); 1202 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s bIsLossless = %x\n", __FUNCTION__, psSHParams->bIsLossless); 1203 if (psSHParams->VUI_Params_Present) { 1204 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s Time_Scale = %x\n", __FUNCTION__, psSHParams->VUI_Params.Time_Scale); //!< Time scale as defined in the H.264 specification 1205 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s bit_rate_value_minus1 = %x\n", __FUNCTION__, psSHParams->VUI_Params.bit_rate_value_minus1); //!< An inter framebitrate/64)-1 1206 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s cbp_size_value_minus1 = %x\n", __FUNCTION__, psSHParams->VUI_Params.cbp_size_value_minus1); //!< An inter frame(bitrate*1.5)/16 1207 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s CBR = %x\n", __FUNCTION__, psSHParams->VUI_Params.CBR); //!< CBR as defined in the H.264 specification 1208 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s initial_cpb_removal = %x\n", __FUNCTION__, psSHParams->VUI_Params.initial_cpb_removal_delay_length_minus1); //!< as defined in the H.264 specification 1209 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s cpb_removal_delay_length_minus1 = %x\n", __FUNCTION__, psSHParams->VUI_Params.cpb_removal_delay_length_minus1); //!< as defined in the H.264 specification 1210 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s dpb_output_delay_length_minus1 = %x\n", __FUNCTION__, psSHParams->VUI_Params.dpb_output_delay_length_minus1); //!< as defined in the H.264 specification 1211 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s time_offset_length = %x\n", __FUNCTION__, psSHParams->VUI_Params.time_offset_length); //!< as defined in the H.264 specification 1212 } 1213} 1214 1215void tng_trace_pic_header_params(H264_PICTURE_HEADER_PARAMS *psSHParams) 1216{ 1217 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s pic_parameter_set_id; = %x\n", __FUNCTION__, psSHParams->pic_parameter_set_id); 1218 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s seq_parameter_set_id; = %x\n", __FUNCTION__, psSHParams->seq_parameter_set_id); 1219 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s entropy_coding_mode_flag; = %x\n", __FUNCTION__, psSHParams->entropy_coding_mode_flag); 1220 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s weighted_pred_flag; = %x\n", __FUNCTION__, psSHParams->weighted_pred_flag); 1221 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s weighted_bipred_idc; = %x\n", __FUNCTION__, psSHParams->weighted_bipred_idc); 1222 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s chroma_qp_index_offset; = %x\n", __FUNCTION__, psSHParams->chroma_qp_index_offset); 1223 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s constrained_intra_pred_flag; = %x\n", __FUNCTION__, psSHParams->constrained_intra_pred_flag); 1224 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s transform_8x8_mode_flag; = %x\n", __FUNCTION__, psSHParams->transform_8x8_mode_flag); 1225 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s pic_scaling_matrix_present_flag = %x\n", __FUNCTION__, psSHParams->pic_scaling_matrix_present_flag); 1226 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s bUseDefaultScalingList; = %x\n", __FUNCTION__, psSHParams->bUseDefaultScalingList); 1227 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s second_chroma_qp_index_offset; = %x\n", __FUNCTION__, psSHParams->second_chroma_qp_index_offset); 1228 1229} 1230 1231void tng_trace_slice_header_params(H264_SLICE_HEADER_PARAMS *psSlHParams) 1232{ 1233 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s: start addr = 0x%08x\n", __FUNCTION__, psSlHParams); 1234 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.ui8Start_Code_Prefix_Size_Bytes 0x%08x\n", psSlHParams->ui8Start_Code_Prefix_Size_Bytes); 1235 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.SliceFrame_Type 0x%08x\n", psSlHParams->SliceFrame_Type); 1236 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.First_MB_Address 0x%08x\n", psSlHParams->First_MB_Address); 1237 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.Frame_Num_DO 0x%08x\n", psSlHParams->Frame_Num_DO); 1238 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.Idr_Pic_Id 0x%08x\n", psSlHParams->Idr_Pic_Id); 1239 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.log2_max_pic_order_cnt 0x%08x\n", psSlHParams->log2_max_pic_order_cnt); 1240 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.Picture_Num_DO 0x%08x\n", psSlHParams->Picture_Num_DO); 1241 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.Disable_Deblocking_Filter_Idc 0x%08x\n", psSlHParams->Disable_Deblocking_Filter_Idc); 1242 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.bPiCInterlace 0x%08x\n", psSlHParams->bPiCInterlace); 1243 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.bFieldType 0x%08x\n", psSlHParams->bFieldType); 1244 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.bReferencePicture 0x%08x\n", psSlHParams->bReferencePicture); 1245 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.iDebAlphaOffsetDiv2 0x%08x\n", psSlHParams->iDebAlphaOffsetDiv2); 1246 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.iDebBetaOffsetDiv2 0x%08x\n", psSlHParams->iDebBetaOffsetDiv2); 1247 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.direct_spatial_mv_pred_flag 0x%08x\n", psSlHParams->direct_spatial_mv_pred_flag); 1248 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.num_ref_idx_l0_active_minus1 0x%08x\n", psSlHParams->num_ref_idx_l0_active_minus1); 1249 1250 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.diff_ref_pic_num[0] 0x%08x\n", psSlHParams->diff_ref_pic_num[0]); 1251 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.diff_ref_pic_num[1] 0x%08x\n", psSlHParams->diff_ref_pic_num[1]); 1252 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.weighted_pred_flag 0x%08x\n", psSlHParams->weighted_pred_flag); 1253 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.weighted_bipred_idc 0x%08x\n", psSlHParams->weighted_bipred_idc); 1254 1255 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.luma_log2_weight_denom 0x%08x\n", psSlHParams->luma_log2_weight_denom); 1256 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.chroma_log2_weight_denom 0x%08x\n", psSlHParams->chroma_log2_weight_denom); 1257 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.luma_weight_l0_flag[0] 0x%08x\n", psSlHParams->luma_weight_l0_flag[0]); 1258 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.luma_weight_l0_flag[1] 0x%08x\n", psSlHParams->luma_weight_l0_flag[1]); 1259 1260 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.SlHParams.luma_weight_l0[0] 0x%08x\n", psSlHParams->luma_weight_l0[0]); 1261 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.SlHParams.luma_weight_l0[1] 0x%08x\n", psSlHParams->luma_weight_l0[1]); 1262 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.luma_offset_l0[0] 0x%08x\n", psSlHParams->luma_offset_l0[0]); 1263 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.luma_offset_l0[1] 0x%08x\n", psSlHParams->luma_offset_l0[1]); 1264 1265 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.chroma_weight_l0_flag[0] 0x%08x\n", psSlHParams->chroma_weight_l0_flag[0]); 1266 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.chroma_weight_l0_flag[1] 0x%08x\n", psSlHParams->chroma_weight_l0_flag[1]); 1267 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.chromaB_weight_l0[0] 0x%08x\n", psSlHParams->chromaB_weight_l0[0]); 1268 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.chromaB_offset_l0[0] 0x%08x\n", psSlHParams->chromaB_offset_l0[0]); 1269 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.chromaR_weight_l0[0] 0x%08x\n", psSlHParams->chromaR_weight_l0[0]); 1270 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.chromaR_offset_l0[0] 0x%08x\n", psSlHParams->chromaR_offset_l0[0]); 1271 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.chromaB_weight_l0[1] 0x%08x\n", psSlHParams->chromaB_weight_l0[1]); 1272 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.chromaB_offset_l0[1] 0x%08x\n", psSlHParams->chromaB_offset_l0[1]); 1273 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.chromaR_weight_l0[1] 0x%08x\n", psSlHParams->chromaR_weight_l0[1]); 1274 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.chromaR_offset_l0[1] 0x%08x\n", psSlHParams->chromaR_offset_l0[1]); 1275 1276 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.ui16MvcViewIdx 0x%08x\n", psSlHParams->ui16MvcViewIdx); 1277 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.bIsLongTermRef 0x%08x\n", psSlHParams->bIsLongTermRef); 1278 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.uLongTermRefNum 0x%08x\n", psSlHParams->uLongTermRefNum); 1279 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.bRefIsLongTermRef[0] 0x%08x\n", psSlHParams->bRefIsLongTermRef[0]); 1280 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.bRefIsLongTermRef[1] 0x%08x\n", psSlHParams->bRefIsLongTermRef[1]); 1281 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.uRefLongTermRefNum[0] 0x%08x\n", psSlHParams->uRefLongTermRefNum[0]); 1282 drv_debug_msg(VIDEO_DEBUG_GENERAL, "SlHParams.uRefLongTermRefNum[1] 0x%08x\n", psSlHParams->uRefLongTermRefNum[1]); 1283 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s: end \n", __FUNCTION__); 1284} 1285 1286void tng__trace_seqconfig( 1287 IMG_BOOL bIsBPicture, 1288 IMG_BOOL bFieldMode, 1289 IMG_UINT8 ui8SwapChromas, 1290 IMG_BOOL32 ui32FrameStoreFormat, 1291 IMG_UINT8 uiDeblockIDC) 1292{ 1293 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s ui32SeqConfig 0x%08x\n", __FUNCTION__, F_ENCODE(0, TOPAZHP_CR_TEMPORAL_PIC0_BELOW_IN_VALID) ); 1294 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s ui32SeqConfig 0x%08x\n", __FUNCTION__, F_ENCODE(0, TOPAZHP_CR_TEMPORAL_PIC1_BELOW_IN_VALID) ); 1295 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s ui32SeqConfig 0x%08x\n", __FUNCTION__, F_ENCODE(0, TOPAZHP_CR_ABOVE_OUT_OF_SLICE_VALID) ); 1296 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s ui32SeqConfig 0x%08x\n", __FUNCTION__, F_ENCODE(1, TOPAZHP_CR_WRITE_TEMPORAL_PIC0_BELOW_VALID) ); 1297 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s ui32SeqConfig 0x%08x\n", __FUNCTION__, F_ENCODE(0, TOPAZHP_CR_REF_PIC0_VALID) ); 1298 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s ui32SeqConfig 0x%08x\n", __FUNCTION__, F_ENCODE(0, TOPAZHP_CR_REF_PIC1_VALID) ); 1299 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s ui32SeqConfig 0x%08x\n", __FUNCTION__, F_ENCODE(!bIsBPicture, TOPAZHP_CR_REF_PIC1_EQUAL_PIC0) ); 1300 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s ui32SeqConfig 0x%08x\n", __FUNCTION__, F_ENCODE(bFieldMode ? 1 : 0 , TOPAZHP_CR_FIELD_MODE) ); 1301 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s ui32SeqConfig 0x%08x\n", __FUNCTION__, F_ENCODE(ui8SwapChromas, TOPAZHP_CR_FRAME_STORE_CHROMA_SWAP) ); 1302 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s ui32SeqConfig 0x%08x\n", __FUNCTION__, F_ENCODE(ui32FrameStoreFormat, TOPAZHP_CR_FRAME_STORE_FORMAT) ); 1303 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s ui32SeqConfig 0x%08x\n", __FUNCTION__, F_ENCODE(TOPAZHP_CR_ENCODER_STANDARD_H264, TOPAZHP_CR_ENCODER_STANDARD) ); 1304 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s ui32SeqConfig 0x%08x\n", __FUNCTION__, F_ENCODE(uiDeblockIDC == 1 ? 0 : 1, TOPAZHP_CR_DEBLOCK_ENABLE)); 1305} 1306 1307void tng__trace_seq_header(void* pointer) 1308{ 1309 context_ENC_p ctx = NULL; 1310 if (pointer == NULL) 1311 return ; 1312 1313 ctx = (context_ENC_p)pointer; 1314 1315 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s: ucProfile = %d\n", __FUNCTION__, ctx->ui8ProfileIdc); 1316 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s: ucLevel = %d\n", __FUNCTION__, ctx->ui8LevelIdc); 1317 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s: ui16Width = %d\n", __FUNCTION__, ctx->ui16Width); 1318 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s: ui16PictureHeight = %d\n", __FUNCTION__, ctx->ui16PictureHeight); 1319 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s: ui32CustomQuantMask = %d\n", __FUNCTION__, ctx->ui32CustomQuantMask); 1320 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s: ui8FieldCount = %d\n", __FUNCTION__, ctx->ui8FieldCount); 1321 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s: ui8MaxNumRefFrames = %d\n", __FUNCTION__, ctx->ui8MaxNumRefFrames); 1322 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s: bPpsScaling = %d\n", __FUNCTION__, ctx->bPpsScaling); 1323 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s: bUseDefaultScalingList = %d\n", __FUNCTION__, ctx->bUseDefaultScalingList); 1324 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s: bEnableLossless = %d\n", __FUNCTION__, ctx->bEnableLossless); 1325 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s: bArbitrarySO = %d\n", __FUNCTION__, ctx->bArbitrarySO); 1326 drv_debug_msg(VIDEO_DEBUG_GENERAL, "%s: vui_flag = %d\n", __FUNCTION__, ctx->sVuiParams.vui_flag); 1327} 1328 1329