📄 armvcm4p2_fillvldbuffer.c
字号:
/** * * File Name: armVCM4P2_FillVLDBuffer.c * OpenMAX DL: v1.0.2 * Revision: 10586 * Date: Wednesday, March 5, 2008 * * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. * * * * Description: * Contains module for VLC get bits from the stream * */ #include "omxtypes.h"#include "armOMX.h"#include "armVCM4P2_ZigZag_Tables.h"/** * Function: armVCM4P2_FillVLDBuffer * * Description: * Performs filling of the coefficient buffer according to the run, level * and sign, also updates the index * * Parameters: * [in] storeRun Stored Run value (count of zeros) * [in] storeLevel Stored Level value (non-zero value) * [in] sign Flag indicating the sign of level * [in] last status of the last flag * [in] pIndex pointer to coefficient index in 8x8 matrix * [out] pIndex pointer to updated coefficient index in 8x8 * matrix * [in] pZigzagTable pointer to the zigzag tables * [out] pDst pointer to the coefficient buffer of current * block. Should be 32-bit aligned * Return Value: * Standard OMXResult result. See enumeration for possible result codes. * */OMXResult armVCM4P2_FillVLDBuffer( OMX_U32 storeRun, OMX_S16 * pDst, OMX_S16 storeLevel, OMX_U8 sign, OMX_U8 last, OMX_U8 * pIndex, const OMX_U8 * pZigzagTable){ /* Store the zero's as per the run length count */ for (;storeRun > 0; storeRun--, (*pIndex)++) { pDst[pZigzagTable[*pIndex]] = 0; } /* Store the level depending on the sign*/ if (sign == 1) { pDst[pZigzagTable[*pIndex]] = -storeLevel; } else { pDst[pZigzagTable[*pIndex]] = storeLevel; } (*pIndex)++; /* If last is 1, fill the remaining elments of the buffer with zeros */ if (last == 1) { while (*pIndex < 64) { pDst[pZigzagTable[*pIndex]] = 0; (*pIndex)++; } } return OMX_Sts_NoErr;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -