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

📄 wmv9_filters.h

📁 au1200 linux2.6.11 硬件解码mae驱动和maiplayer播放器源码
💻 H
字号:
/* <LIC_AMD_STD> * Copyright (C) 2003-2005 Advanced Micro Devices, Inc.  All Rights Reserved. *  * Unless otherwise designated in writing, this software and any related  * documentation are the confidential proprietary information of AMD.  * THESE MATERIALS ARE PROVIDED "AS IS" WITHOUT ANY * UNLESS OTHERWISE NOTED IN WRITING, EXPRESS OR IMPLIED WARRANTY OF ANY  * KIND, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY,  * NONINFRINGEMENT, TITLE, FITNESS FOR ANY PARTICULAR PURPOSE AND IN NO  * EVENT SHALL AMD OR ITS LICENSORS BE LIABLE FOR ANY DAMAGES WHATSOEVER.  *  * AMD does not assume any responsibility for any errors which may appear  * in the Materials nor any responsibility to support or update the * Materials.  AMD retains the right to modify the Materials at any time,  * without notice, and is not obligated to provide such modified  * Materials to you. AMD is not obligated to furnish, support, or make * any further information available to you. * </LIC_AMD_STD>  *//* <CTL_AMD_STD> * File Id and RCS Info: * $Source: /home/cvs/travis/mae/env/wmv9_filters.h,v $ * $Id: wmv9_filters.h,v 1.15 2004/06/17 16:09:42 eswartz Exp $ * </CTL_AMD_STD>  *//* <DOC_AMD_STD> * </DOC_AMD_STD>  */#ifndef _wmv9_filters_h__#define _wmv9_filters_h__#include "mae_fe.h"// The below defines are the same in the WMV9 reference code.// So, lets define these only if they aren't already defined#ifndef __WMVDEC_API_H_#ifdef WINNT_ONLY  typedef unsigned __int64 U64_WMV;  typedef signed   __int64 I64_WMV;#else  typedef unsigned long long U64_WMV;  typedef signed   long long I64_WMV;#endiftypedef unsigned short    U16_WMV;typedef unsigned char     U8_WMV;typedef signed int        I32_WMV;typedef signed short      I16_WMV;typedef signed char       I8_WMV;typedef   signed long       Bool_WMV;#endiftypedef unsigned int      MAE_U32_WMV;enum { MAE_MB_1MV, MAE_MB_4MV, MAE_MB_FIELD };enum {MAE_XFORMMODE_8x8, MAE_XFORMMODE_8x4, MAE_XFORMMODE_4x8, MAE_XFORMMODE_MBSWITCH /*pseudo-mode*/, MAE_XFORMMODE_4x4};#define MAE_NUM_BLOCKS  8typedef struct {    I8_WMV    chFlag[6];} MAE_LOOPF_FLAG;typedef enum MAE_tagFrameType_WMV{//    IFRAME_WMV = 0,//    PFRAME_WMV      MAE_IVOP = 0,      MAE_PVOP,      MAE_BVOP,      MAE_SPRITE} MAE_tFrameType_WMV;typedef struct MAE_tagCWMVMBMode // MacroBlock Mode{    U8_WMV m_rgbCodedBlockPattern2 [MAE_NUM_BLOCKS];   // =0 if block is all 0s, =1 if any non-zero data    I8_WMV m_rgcBlockXformMode [MAE_NUM_BLOCKS];       // Transform type for each block: 8x8, 8x4, 4x8, or 4x4    I8_WMV  m_chMBMode;                            // Has something to do with MBMode ??????????????????????} MAE_CWMVMBMode;typedef struct MAE_tagWMVDecInternalMember{  MAE_U32_WMV m_uintNumMBX;                      // Width in MBs  MAE_U32_WMV m_uintNumMBY;                      // Height in MBs  I32_WMV m_iWidthPrevY, m_iWidthPrevUV;     // Width in pixels  I32_WMV m_iMBSizeXWidthPrevY;              // MB size (16) * width of Y-Plane, for accessing MB data  I32_WMV m_iBlkSizeXWidthPrevUV;            // MB size (16) * width of Y-Plane, for accessing MB data    I16_WMV  *m_pXMotion, *m_pXMotionC;        // ????????????  I16_WMV  *m_pYMotion, *m_pYMotionC;        // ????????????  I16_WMV  *m_pIntraBlockRow0[3], *m_pIntraMBRowU0[2], *m_pIntraMBRowV0[2];  // Temp for MB rows  I16_WMV  *m_pIntraBlockRow1[4], *m_pIntraMBRowU1[3], *m_pIntraMBRowV1[3];  MAE_U32_WMV m_uiNumProcessors;                 // number of processors  I32_WMV m_iWidthY;                         // Width in pixels ???????????????  I32_WMV m_iWidthUV;                        // Width in pixels ???????????????  I32_WMV m_iStepSize;                       // pquant  MAE_LOOPF_FLAG * m_pLoopFilterFlags;           // Flags used for filters  MAE_tFrameType_WMV m_tFrmType;                 // ???????? IVOP, PVOP, BVOP ???????????????  I32_WMV m_iBetaRTMMismatchIndex;           // ???????????????????  MAE_CWMVMBMode* m_rgmbmd;                      // pointer to current MB of CWMVMBMode  U8_WMV *m_puchFilter8x8RowFlagY0;  U8_WMV *m_puchFilter8x4RowFlagY0;  U8_WMV *m_puchFilter8x8RowFlagU0;  U8_WMV *m_puchFilter8x4RowFlagU0;  U8_WMV *m_puchFilter8x8RowFlagV0;  U8_WMV *m_puchFilter8x4RowFlagV0;  U8_WMV *m_puchFilter8x8ColFlagY0;  U8_WMV *m_puchFilter4x8ColFlagY0;  U8_WMV *m_puchFilter8x8ColFlagU0;  U8_WMV *m_puchFilter4x8ColFlagU0;  U8_WMV *m_puchFilter8x8ColFlagV0;  U8_WMV *m_puchFilter4x8ColFlagV0;  // MAE specific   Bool_WMV s_middle_edge_hack;  Bool_WMV s_blk3_hack;  Bool_WMV s_1MB_blk0_hack;  Bool_WMV s_4x4_hack;  } MAE_tWMVDecInternalMember;I32_WMV mae_min(I32_WMV in1, I32_WMV in2);void MAE_SetFilterStruct(MAE_tWMVDecInternalMember * MAE_pWMVDec, mae_fe_config *cfg, mae_fe_mb *mb);void MAE_OverlapMBRow (MAE_tWMVDecInternalMember * MAE_pWMVDec, I32_WMV imbY, U8_WMV *ppxliRecnY, U8_WMV *ppxliRecnU, U8_WMV *ppxliRecnV, I32_WMV iMBYEnd, I32_WMV iMBYStart, I32_WMV iThreadID);void MAE_g_OverlapBlockVerticalEdge (I16_WMV *pInOut, I32_WMV iStride);void MAE_g_OverlapBlockHorizontalEdge ( I16_WMV *pSrcTop, I16_WMV *pSrcCurr, I32_WMV iSrcStride, U8_WMV *pDst, I32_WMV iDstStride, Bool_WMV bTop, Bool_WMV bCurrent, Bool_WMV bWindup);void MAE_DeblockSLFrame_V9 (MAE_tWMVDecInternalMember *MAE_pWMVDec,    U8_WMV* ppxliCurrY, U8_WMV* ppxliCurrU, U8_WMV* ppxliCurrV,    U8_WMV* puchFilter8x8RowFlagY, U8_WMV* puchFilter8x8RowFlagU, U8_WMV* puchFilter8x8RowFlagV,    U8_WMV* puchFilter8x4RowFlagY, U8_WMV* puchFilter8x4RowFlagU, U8_WMV* puchFilter8x4RowFlagV,    U8_WMV* puchFilter8x8ColFlagY, U8_WMV* puchFilter8x8ColFlagU, U8_WMV* puchFilter8x8ColFlagV,    U8_WMV* puchFilter4x8ColFlagY, U8_WMV* puchFilter4x8ColFlagU, U8_WMV* puchFilter4x8ColFlagV,    MAE_LOOPF_FLAG* pLoopFilterFlag, MAE_U32_WMV uiMBStart, MAE_U32_WMV uiMBEnd);void MAE_GenerateRowLoopFilterFlags (MAE_tWMVDecInternalMember *MAE_pWMVDec,    U8_WMV* puchFilterRowFlagY, U8_WMV* puchFilterRowFlagU, U8_WMV* puchFilterRowFlagV,    U8_WMV* puchFilterRowFlagY2, U8_WMV* puchFilterRowFlagU2, U8_WMV* puchFilterRowFlagV2,    MAE_LOOPF_FLAG* pLoopFilterFlag, I32_WMV iMBYStart, I32_WMV iMBYEnd, Bool_WMV bFirstRow);void MAE_GenerateColumnLoopFilterFlags (MAE_tWMVDecInternalMember *MAE_pWMVDec,    U8_WMV* puchFilterColFlagY, U8_WMV* puchFilterColFlagU, U8_WMV* puchFilterColFlagV,    U8_WMV* puchFilterColFlagY2, U8_WMV* puchFilterColFlagU2, U8_WMV* puchFilterColFlagV2,    MAE_LOOPF_FLAG* pLoopFilterFlag, I32_WMV iMBHeight);void MAE_DeblockRows (MAE_tWMVDecInternalMember *MAE_pWMVDec, U8_WMV* ppxliY, U8_WMV* ppxliU, U8_WMV* ppxliV, I32_WMV iNumRows, U8_WMV* puchFilterFlagY, U8_WMV* puchFilterFlagU, U8_WMV* puchFilterFlagV);void MAE_DeblockColumns (MAE_tWMVDecInternalMember *MAE_pWMVDec, U8_WMV* ppxliY, U8_WMV* ppxliU, U8_WMV* ppxliV, I32_WMV iNumCols, I32_WMV iHeight, U8_WMV* puchFilterFlagY, U8_WMV* puchFilterFlagU, U8_WMV* puchFilterFlagV);void MAE_FilterRow (MAE_tWMVDecInternalMember *MAE_pWMVDec, U8_WMV* pRow, U8_WMV uchBitField, I32_WMV iPitch, I32_WMV iStepSize);void MAE_FilterColumn (MAE_tWMVDecInternalMember *MAE_pWMVDec, U8_WMV* pCol, U8_WMV uchBitField, I32_WMV iPitch, I32_WMV iStepSize);void MAE_g_FilterHorizontalEdgeV9(U8_WMV* pV5, I32_WMV iPixelDistance, I32_WMV iStepSize, I32_WMV iNumPixel);void MAE_g_FilterVerticalEdgeV9 (U8_WMV* pVhstart, I32_WMV iPixelDistance, I32_WMV iStepSize, I32_WMV iNumPixel);void MAE_ComputeLoopFilterFlags(MAE_tWMVDecInternalMember *MAE_pWMVDec);void MAE_ComputeMBLoopFilterFlags (MAE_tWMVDecInternalMember *MAE_pWMVDec, I32_WMV iMBX, I32_WMV iMBY, I8_WMV chMBMode,                               I8_WMV* pBlockXformMode, I8_WMV* pBlockXformModeTop, I8_WMV* pBlockXformModeLeft,                               U8_WMV *pCBPCurr, U8_WMV *pCBPTop, U8_WMV *pCBPLeft, Bool_WMV bTop, Bool_WMV bLeft);void MAE_DeblockSLFrame (MAE_tWMVDecInternalMember *MAE_pWMVDec, U8_WMV* ppxliY, U8_WMV* ppxliU, U8_WMV* ppxliV, Bool_WMV bMultiThread, MAE_U32_WMV iThreadID, I32_WMV iMBStartX, I32_WMV iMBEndX, I32_WMV iMBStartY, I32_WMV iMBEndY);void MAE_FilterEdgeShortTagMBRow(MAE_tWMVDecInternalMember *MAE_pWMVDec, U8_WMV* ppxlcCenter, I32_WMV iPixelDistance, I32_WMV iStepSize, I32_WMV iMBsPerRow, Bool_WMV bFirst, Bool_WMV bLast);void MAE_FilterEdgeShortTagBlockRow(MAE_tWMVDecInternalMember *MAE_pWMVDec, U8_WMV* ppxlcCenter, I32_WMV iPixelDistance, I32_WMV iStepSize, I32_WMV iBlocksPerRow, Bool_WMV bFirst, Bool_WMV bLast);void MAE_g_FilterHorizontalEdge_WMV(U8_WMV* pV5, I32_WMV iPixelDistance, I32_WMV iStepSize, I32_WMV iNumPixel);void MAE_g_FilterVerticalEdge_WMV(U8_WMV* pVhstart, I32_WMV iPixelDistance, I32_WMV iStepSize, I32_WMV iNumPixel);#endif

⌨️ 快捷键说明

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