📄 ipvd_dbg.c
字号:
/*==========================================================================*/
/* (Copyright (C) 2003 Koninklijke Philips Electronics N.V. */
/* All rights reserved. */
/* This source code and any compilation or derivative thereof is the */
/* proprietary information of Koninklijke Philips Electronics N.V. */
/* and is confidential in nature. */
/* Under no circumstances is this software to be exposed to or placed */
/* under an Open Source License of any type without the expressed */
/* written permission of Koninklijke Philips Electronics N.V. */
/*==========================================================================*/
/*==========================================================================*/
/*
SOURCE_FILE: IPVD_DBG.C
PACKAGE: IPVD
COMPONENT: IPVD
(C) 1998: Philips Semiconductors
*/
/*==========================================================================*/
/*MPP:::IPVD======================================================*/
/* PACKAGE NAME: IPVD
SCOPE: DEBUG
ORIGINAL AUTHOR: IGUENANE Matthieu
DESCRIPTION :
<concise description of the package>
DATA TYPES:
<summary of needed data-types and/or includes>
FUNCTIONS:
<summary of available functions>
*/
/*EMP=======================================================================*/
/*==========================================================================*/
/* I N C L U D E S */
/*==========================================================================*/
#include <dv_dbg.h>
#include <string.h>
#include "ipvd_dbgl.h"
#include "mv_drv.h" /* Gadget files for MV component */
#include "mv_itvl.h"
/*==========================================================================*/
/* G L O B A L D A T A D E C L A R A T I O N S */
/*==========================================================================*/
/*==========================================================================*/
/* L O C A L S Y M B O L D E F I N I T I O N S */
/*==========================================================================*/
/*==========================================================================*/
/* L O C A L D A T A D E C L A R A T I O N S */
/*==========================================================================*/
/*==========================================================================*/
/* L O C A L F U N C T I O N S P R O T O T Y P E S */
/*==========================================================================*/
#if defined(DV_DEBUG) || defined (DV_DBG_OFF_LINE_PARSER)
/*==========================================================================*/
/* G L O B A L F U N C T I O N S */
/*==========================================================================*/
/*MPF=======================================================================*/
/*
FUNCTION NAME: IPVD_DBG_par
PACKAGE: DBG
SCOPE: DEBUG
DESCRIPTION:
CALLING SEQUENCE:
*/
DV_RETURN /* Returns: <description> */
IPVD_DBG_par(
DV_DBG_EVENT_STORE_ENTRY in_entry
)
/*EMP=======================================================================*/
{
DV_RETURN lv_return = DV_RETURN_OK; /* initialize return value to TRUE */
char picture[4];
char picture_past[4];
char picture_future[4];
char field[4];
static unsigned long lv_disp_frame_store = 0;
unsigned long lv_stc_milli_sec = 0;
unsigned long lv_stc_micro_sec = 0;
/* Test if event type is valid */
if ( in_entry.event >= IPVD_DBG_EV_LAST_EVENT)
{
lv_return = DV_RETURN_NOT_OK;
}
/* Event valid */
else
{
/* Print STC value of the event */
DV_DBG_CONVERT_TIME_TO_INT_UNIT(in_entry.time, &lv_stc_milli_sec, &lv_stc_micro_sec);
DV_DBG_PRINT( "\n STC:%d.%.3d\n", lv_stc_milli_sec, lv_stc_micro_sec);
/* Analyze event */
switch( in_entry.event )
{
case IPVD_DBG_EV_NO_EVENT:
DV_DBG_PRINT("IPVD_GENERIC");
DV_DBG_PRINT(in_entry.info0,in_entry.info1,in_entry.info2,in_entry.info3);
DV_DBG_PRINT("\n");
break;
case IPVD_DBG_EV_VSYNC:
DV_DBG_PRINT("VSYNC\t\t%x\t%d\n",in_entry.info0,in_entry.info3);
DV_DBG_PRINT("bfm = 0x%x\n",in_entry.info1);
DV_DBG_PRINT("rdpt = 0x%x\n",in_entry.info2);
break;
case IPVD_DBG_EV_FBM_EOPH:
DV_DBG_PRINT ("EOPH\n");
break;
case IPVD_DBG_EV_PARSING_EOPH:
switch (in_entry.info0)
{
case IPVD_DBG_FBM_PIC_B:
strcpy( picture ,"B");
break;
case IPVD_DBG_FBM_PIC_I:
strcpy(picture ,"I");
break;
case IPVD_DBG_FBM_PIC_P:
strcpy(picture ,"P");
break;
case IPVD_DBG_FBM_PIC_D:
strcpy(picture ,"D");
break;
default:
strcpy(picture ,"?");
break;
}
DV_DBG_PRINT ("EOPH\t\t%s%d\n",
picture,
in_entry.info1);
break;
case IPVD_DBG_EV_STC_ADJUST:
DV_DBG_PRINT ("STC_ADJUST\t\t%d\n", in_entry.info0);
break;
case IPVD_DBG_EV_CHANGE_CHANNEL_REQUESTED:
DV_DBG_PRINT("CHANGE_CHANNEL\n");
break;
case IPVD_DBG_EV_RESET_DONE:
DV_DBG_PRINT("RESET_DONE\n");
break;
case IPVD_DBG_EV_FBM_IN_SYNC:
switch (in_entry.info0)
{
case IPVD_DBG_FBM_PIC_B :
strcpy( picture ,"B");
break;
case IPVD_DBG_FBM_PIC_I :
strcpy(picture ,"I");
break;
case IPVD_DBG_FBM_PIC_P :
strcpy(picture ,"P");
break;
case IPVD_DBG_FBM_PIC_D:
strcpy(picture ,"D");
break;
default:
strcpy(picture ,"?");
break;
}
DV_DBG_PRINT("IN_SYNC\t\t%s%d\n",
picture,
in_entry.info1);
break;
case IPVD_DBG_EV_FBM_DEC_BEGIN:
/* Tag for triangle */
DV_DBG_PRINT ("DEC_BEGIN\n");
break;
case IPVD_DBG_EV_FBM_DEC_END:
DV_DBG_PRINT ("DEC_END\n");
break;
case IPVD_DBG_EV_FBM_DEC_TEXT:
switch (in_entry.info0)
{
case IPVD_DBG_FBM_PIC_B:
strcpy( picture ,"B");
break;
case IPVD_DBG_FBM_PIC_I:
strcpy(picture ,"I");
break;
case IPVD_DBG_FBM_PIC_P:
strcpy(picture ,"P");
break;
case IPVD_DBG_FBM_PIC_D:
strcpy(picture ,"D");
break;
default:
strcpy(picture ,"?");
break;
}
DV_DBG_PRINT("DEC_TEXT\t\t%s%d\tin FS%d\n",
picture,
in_entry.info1,
in_entry.info2
);
break;
case IPVD_DBG_EV_FBM_START_DEC:
switch (in_entry.info0)
{
case IPVD_DBG_FBM_PIC_B:
strcpy( picture ,"B");
break;
case IPVD_DBG_FBM_PIC_I:
strcpy(picture ,"I");
break;
case IPVD_DBG_FBM_PIC_P:
strcpy(picture ,"P");
break;
case IPVD_DBG_FBM_PIC_D:
strcpy(picture ,"D");
break;
default:
strcpy(picture ,"X");
break;
}
switch ((in_entry.info2 >> 16) & 0xFFFF)
{
case IPVD_DBG_FBM_PIC_B:
strcpy( picture_past ,"B");
break;
case IPVD_DBG_FBM_PIC_I:
strcpy(picture_past ,"I");
break;
case IPVD_DBG_FBM_PIC_P:
strcpy(picture_past ,"P");
break;
case IPVD_DBG_FBM_PIC_D:
strcpy(picture_past ,"D");
break;
default:
strcpy(picture_past ,"X");
break;
}
switch ((in_entry.info3 >> 16) & 0xFFFF)
{
case IPVD_DBG_FBM_PIC_B:
strcpy( picture_future ,"B");
break;
case IPVD_DBG_FBM_PIC_I:
strcpy(picture_future ,"I");
break;
case IPVD_DBG_FBM_PIC_P:
strcpy(picture_future ,"P");
break;
case IPVD_DBG_FBM_PIC_D:
strcpy(picture_future ,"D");
break;
default:
strcpy(picture_future ,"X");
break;
}
DV_DBG_PRINT ("START_DEC\t\t%s%d\t%s%d\t%s%d\n",
picture,
in_entry.info1,
picture_past,
(in_entry.info2 & 0xFFFF),
picture_future,
(in_entry.info3 & 0xFFFF)
);
break;
case IPVD_DBG_EV_FBM_DISCARD_PIC:
switch (in_entry.info0)
{
case IPVD_DBG_FBM_PIC_B:
strcpy( picture ,"B");
break;
case IPVD_DBG_FBM_PIC_I:
strcpy(picture ,"I");
break;
case IPVD_DBG_FBM_PIC_P:
strcpy(picture ,"P");
break;
case IPVD_DBG_FBM_PIC_D:
strcpy(picture ,"D");
break;
default:
strcpy(picture ,"?");
break;
}
DV_DBG_PRINT ("DISC_PICT\t\t%s%d\n",
picture,
in_entry.info1
);
break;
case IPVD_DBG_EV_FBM_SYNCHRONIZE:
switch (in_entry.info0)
{
case IPVD_DBG_FBM_PIC_B:
strcpy( picture ,"B");
break;
case IPVD_DBG_FBM_PIC_I:
strcpy(picture ,"I");
break;
case IPVD_DBG_FBM_PIC_P:
strcpy(picture ,"P");
break;
case IPVD_DBG_FBM_PIC_D:
strcpy(picture ,"D");
break;
default:
strcpy(picture ,"?");
break;
}
DV_DBG_PRINT ("SYNC_PICT\t\t%s%d\t%x\t%x\n",
picture,
in_entry.info1,
in_entry.info2,
in_entry.info3);
break;
case IPVD_DBG_EV_FBM_DISP_BEGIN:
/* Tag for triangle */
DV_DBG_PRINT ("DISP_BEGIN\n");
break;
case IPVD_DBG_EV_FBM_DISP_END:
DV_DBG_PRINT ("DISP_END\n");
lv_disp_frame_store = in_entry.info0;
break;
case IPVD_DBG_EV_UD_SEMAPHORE_ERROR:
DV_DBG_PRINT ("UD : Semaphore problem - ");
switch (in_entry.info0)
{
case IPVD_SEMAPHORE_RELEASE:
DV_DBG_PRINT ("release\n");
break;
case IPVD_SEMAPHORE_CREATE:
DV_DBG_PRINT ("create\n");
break;
case IPVD_SEMAPHORE_ACQUIRE:
DV_DBG_PRINT ("acquire\n");
break;
case IPVD_SEMAPHORE_DESTROY:
DV_DBG_PRINT ("destroy\n");
break;
}
break;
case IPVD_DBG_EV_UD_AVAILABLE:
DV_DBG_PRINT ("UD_AVAILABLE\n");
break;
case IPVD_DBG_EV_UD_BUFFER_FULL:
DV_DBG_PRINT ("UD_BUFFER_FULL\n");
break;
case IPVD_DBG_EV_UD_PROCESSING_NEEDED:
DV_DBG_PRINT ("UD_PROCESSING_NEEDED\n");
break;
case IPVD_DBG_EV_USER:
DV_DBG_PRINT ("EV_USER\t%X\t%X\t%X\t%X\n",in_entry.info0,in_entry.info1,in_entry.info2,in_entry.info3);
break;
case IPVD_DBG_EV_FBM_STATUS:
DV_DBG_PRINT ("FBM_STATUS\t0x%X\t0x%X\t0x%X\t0x%X\n",in_entry.info0,in_entry.info1,in_entry.info2,in_entry.info3);
break;
case IPVD_DBG_EV_ENTER_UD_PARSING:
DV_DBG_PRINT ("ENTER_UD_PARSING\t%d\t%d\t%d\t%d\n",in_entry.info0,in_entry.info1,in_entry.info2,in_entry.info3);
break;
case IPVD_DBG_EV_EXIT_UD_PARSING:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -