1
0

erc_do.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /*!
  2. ************************************************************************
  3. * \file erc_do.h
  4. *
  5. * \brief
  6. * Header for the I & P frame error concealment common functions
  7. *
  8. * \author
  9. * - Viktor Varsa <[email protected]>
  10. * - Ye-Kui Wang <[email protected]>
  11. *
  12. ************************************************************************
  13. */
  14. #ifndef _ERC_DO_H_
  15. #define _ERC_DO_H_
  16. #include "erc_api.h"
  17. void ercPixConcealIMB (VideoParameters *p_Vid, imgpel *currFrame, int row, int column, int predBlocks[], int frameWidth, int mbWidthInBlocks);
  18. int ercCollect8PredBlocks( int predBlocks[], int currRow, int currColumn, int *condition,
  19. int maxRow, int maxColumn, int step, byte fNoCornerNeigh );
  20. int ercCollectColumnBlocks( int predBlocks[], int currRow, int currColumn, int *condition, int maxRow, int maxColumn, int step );
  21. #define isSplitted(object_list,currMBNum) \
  22. ((object_list+((currMBNum)<<2))->regionMode >= REGMODE_SPLITTED)
  23. /* this can be used as isBlock(...,INTRA) or isBlock(...,INTER_COPY) */
  24. #define isBlock(object_list,currMBNum,comp,regMode) \
  25. (isSplitted(object_list,currMBNum) ? \
  26. ((object_list+((currMBNum)<<2)+(comp))->regionMode == REGMODE_##regMode##_8x8) : \
  27. ((object_list+((currMBNum)<<2))->regionMode == REGMODE_##regMode))
  28. /* this can be used as getParam(...,mv) or getParam(...,xMin) or getParam(...,yMin) */
  29. #define getParam(object_list,currMBNum,comp,param) \
  30. (isSplitted(object_list,currMBNum) ? \
  31. ((object_list+((currMBNum)<<2)+(comp))->param) : \
  32. ((object_list+((currMBNum)<<2))->param))
  33. #endif