📄 umc_vc1_dec_debug.h
字号:
/* /////////////////////////////////////////////////////////////////////////////
//
// INTEL CORPORATION PROPRIETARY INFORMATION
// This software is supplied under the terms of a license agreement or
// nondisclosure agreement with Intel Corporation and may not be copied
// or disclosed except in accordance with the terms of that agreement.
// Copyright(c) 2004-2007 Intel Corporation. All Rights Reserved.
//
//
*/
#include "umc_defs.h"
#if defined (UMC_ENABLE_VC1_VIDEO_DECODER)
#ifndef __UMC_VC1_DEC_DEBUG_H__
#define __UMC_VC1_DEC_DEBUG_H__
#include "umc_vc1_dec_seq.h"
#include "vm_types.h"
extern const Ipp32u VC1_POSITION; // MB, Block positions, skip info
extern const Ipp32u VC1_CBP; // coded block patern info
extern const Ipp32u VC1_BITBLANES; // bitplane information
extern const Ipp32u VC1_QUANT; // transform types decoded info
extern const Ipp32u VC1_TT; // transform types decoded info
extern const Ipp32u VC1_MV; // motion vectors info
extern const Ipp32u VC1_PRED; // predicted blocks
extern const Ipp32u VC1_COEFFS; // DC, AC coefficiens
extern const Ipp32u VC1_RESPEL; // pixels befor filtering
extern const Ipp32u VC1_SMOOTHINT; // smoothing
extern const Ipp32u VC1_BFRAMES; // B frames log
extern const Ipp32u VC1_INTENS; // intesity compensation tables
extern const Ipp32u VC1_MV_BBL; // deblocking
extern const Ipp32u VC1_MV_FIELD; // motion vectors info for field pic
extern const Ipp32u VC1_DEBUG; //current debug output
extern const Ipp32u VC1_FRAME_DEBUG; //on/off frame debug
extern const Ipp32u VC1_FRAME_MIN; //first frame to debug
extern const Ipp32u VC1_FRAME_MAX; //last frame to debug
extern const Ipp32u VC1_TABLES; //VLC tables
typedef enum
{
VC1DebugAlloc,
VC1DebugFree,
VC1DebugRoutine
} VC1DebugWork;
class VM_Debug
{
public:
void vm_debug_frame(Ipp32s _cur_frame, Ipp32s level, vm_char *format, ...);
void _print_macroblocks(VC1Context* pContext);
void _print_blocks(VC1Context* pContext);
void print_bitplane(VC1Bitplane* pBitplane, Ipp32s width, Ipp32s height);
static VM_Debug& GetInstance(VC1DebugWork typeWork)
{
static VM_Debug* singleton;
switch (typeWork)
{
case VC1DebugAlloc:
singleton = new VM_Debug;
break;
case VC1DebugFree:
delete singleton;
singleton = NULL;
break;
case VC1DebugRoutine:
break;
default:
break;
}
return *singleton;
}
void Release()
{
delete this;
}
#if defined (_WIN32) && (_DEBUG)
VM_Debug():DebugThreadID(GetCurrentThreadId())
#else
VM_Debug()
#endif
{
#ifdef VC1_DEBUG_ON
Logthread0 = vm_file_fopen(VM_STRING("_Log0.txt"),VM_STRING("w"));
Logthread1 = vm_file_fopen(VM_STRING("_Log1.txt"),VM_STRING("w"));
VM_ASSERT(Logthread0 != NULL);
VM_ASSERT(Logthread1 != NULL);
#endif
}; //only for Win debug
~VM_Debug()
{
#ifdef VC1_DEBUG_ON
vm_file_fclose(Logthread0);
Logthread0 = NULL;
vm_file_fclose(Logthread1);
Logthread1 = NULL;
#endif
};
#if defined (_WIN32) && (_DEBUG)
void setThreadToDebug(Ipp32u threadID)
{
DebugThreadID = threadID;
}
#endif
private:
#if defined (_WIN32) && (_DEBUG)
Ipp32u DebugThreadID;
#endif
#ifdef VC1_DEBUG_ON
vm_file* Logthread0;
vm_file* Logthread1;
#endif
};
#endif
#endif //UMC_ENABLE_VC1_VIDEO_DECODER
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -