⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wmv3_volheaddec.h

📁 瑞星微公司RK27XX系列芯片的SDK开发包
💻 H
字号:
/*
 *  WMV3_VOLHeadDec.h
 */

#ifndef _WMV3_VOLHEADDEC_H
#define _WMV3_VOLHEADDEC_H

typedef void Void_WMV;
typedef int I32_WMV;
typedef unsigned long U32_WMV;
typedef signed short I16_WMV;
typedef unsigned short U16_WMV;
typedef unsigned short U16Char_WMV;
typedef signed char I8_WMV;
typedef unsigned char U8_WMV;
typedef signed short Bool_WMV;
typedef double Double_WMV;
typedef float Float_WMV;

#define TRUE_WMV    1
#define FALSE_WMV   0
#define NULL_WMV   0

#ifndef TRUE
#define TRUE  1
#endif

#ifndef FALSE
#define FALSE  0
#endif

#define WMV_Succeeded 0L
#define WMV_Failed -100L

#define tWMVDecodeStatus int

#define ICERR_OK        0L
#define ICERR_ERROR     -100L
#define ICERR_MEMORY        -3L
#define ICERR_BADFORMAT         -2L

enum { NOT_WMV3 = -1, WMV3_SIMPLE_PROFILE, WMV3_MAIN_PROFILE, WMV3_PC_PROFILE, WMV3_SCREEN };


typedef struct tagWMVBS
{
    U8_WMV *m_pbits;
    U8_WMV m_incnt;
    U32_WMV m_bsptr;
    U32_WMV m_bsbfr;
}tWMVBS;

typedef struct tagWMVDecInternalMember
{
    I32_WMV m_iWMV3Profile;
    I32_WMV m_iBetaRTMMismatchIndex;    // Used by V9 loopfilter for RTM/Beta mismatch.
    I32_WMV m_iNumBFrames;

    Bool_WMV m_bXintra8Switch;
    Bool_WMV m_bXformSwitch;
    Bool_WMV m_bXintra8;
    Bool_WMV m_bDCTTable_MB_ENABLED;
    Bool_WMV m_bMultiresEnabled;
    Bool_WMV m_b16bitXform;     // bilinear 16 bit transform flag
    Bool_WMV m_bUVHpelBilinear; // UV speedup
    Bool_WMV m_bSequenceOverlap;
    Bool_WMV m_bPreProcRange;
    Bool_WMV m_bExplicitQuantizer;
    Bool_WMV m_bExplicitFrameQuantizer;
    Bool_WMV m_bSeqFrameInterpolation;
    Bool_WMV m_bRTMContent;
    Bool_WMV m_bBroadcastMode;
    Bool_WMV m_iDQuantCodingOn; // seq. level bit indicating possibility of DQuant at frame level
    Bool_WMV m_bLoopFilter;

    I32_WMV m_bSpriteMode;
    I32_WMV m_iFrameRate;
    I32_WMV m_iBitRate; // in Kbps
    I32_WMV m_iBFrameReciprocal;
    I32_WMV m_iMVRangeIndex, m_iLogXRange, m_iLogYRange, m_iXMVRange, m_iYMVRange, m_iXMVFlag, m_iYMVFlag;

    Bool_WMV m_bV9LoopFilter;
    Bool_WMV m_bInterlaceCodingOn; // global flag to indicate interlace coding mode
    Bool_WMV m_bRndCtrlOn;
    Bool_WMV m_bStartCode;
    Bool_WMV m_bExplicitSeqQuantizer;
    Bool_WMV m_bUse3QPDZQuantizer;
    Bool_WMV m_bMixedPel;
    Bool_WMV m_bFrmHybridMVOn;
    Bool_WMV m_bBetaContent;

    I32_WMV m_iFrmWidthSrc, m_iFrmHeightSrc; // original, non-MB-aligned size of input bitmap
    I32_WMV m_iSliceCode;

    tWMVBS *m_pbitstrmIn;
}tWMVDecInternalMember;

typedef struct tagWMVDecShareMember
{
    I32_WMV m_iWMV3Profile;
    I32_WMV m_iBetaRTMMismatchIndex;    // Used by V9 loopfilter for RTM/Beta mismatch.
    I32_WMV m_iNumBFrames;

    Bool_WMV m_bXintra8Switch;
    Bool_WMV m_bXformSwitch;
    Bool_WMV m_bXintra8;
    Bool_WMV m_bDCTTable_MB_ENABLED;
    Bool_WMV m_bMultiresEnabled;
    Bool_WMV m_b16bitXform;     // bilinear 16 bit transform flag
    Bool_WMV m_bUVHpelBilinear; // UV speedup
    Bool_WMV m_bSequenceOverlap;
    Bool_WMV m_bPreProcRange;
    Bool_WMV m_bExplicitQuantizer;
    Bool_WMV m_bExplicitFrameQuantizer;
    Bool_WMV m_bSeqFrameInterpolation;
    Bool_WMV m_bRTMContent;
    Bool_WMV m_bBroadcastMode;
    Bool_WMV m_iDQuantCodingOn; // seq. level bit indicating possibility of DQuant at frame level
    Bool_WMV m_bLoopFilter;
}tWMVDecShareMember;


#define NUMBITS_SLICE_SIZE_WMV2         3 // To indicate Processor's #

extern I32_WMV WMVideoDecDecodeSequenceHeader(tWMVDecInternalMember *pWMVDec, U8_WMV *buffer, U8_WMV flag);

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -