Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

104 lines
3.1 KiB

  1. /* *************************************************************************
  2. ** INTEL Corporation Proprietary Information
  3. **
  4. ** This listing is supplied under the terms of a license
  5. ** agreement with INTEL Corporation and may not be copied
  6. ** nor disclosed except in accordance with the terms of
  7. ** that agreement.
  8. **
  9. ** Copyright (c) 1995 Intel Corporation.
  10. ** All Rights Reserved.
  11. **
  12. ** *************************************************************************
  13. */
  14. /*****************************************************************************
  15. *
  16. * d3mblk.h
  17. *
  18. * Description:
  19. * Interface to macro block header processing.
  20. */
  21. /*
  22. * $Header: S:\h26x\src\dec\d3mblk.h_v 1.11 25 Sep 1996 08:05:36 KLILLEVO $
  23. * $Log: S:\h26x\src\dec\d3mblk.h_v $
  24. ;//
  25. ;// Rev 1.11 25 Sep 1996 08:05:36 KLILLEVO
  26. ;// initial extended motion vectors support
  27. ;// does not work for AP yet
  28. ;//
  29. ;// Rev 1.10 09 Jul 1996 16:47:26 AGUPTA2
  30. ;// MMX_ClipAndMove now addas DC value to the result; IDCT for INTRA blocks
  31. ;// works with DC value set to zero. Also, BlockCopy is done in chunks of
  32. ;// 4 loads followed by 4 stores.
  33. ;// Changed code to adhere to coding convention in the decoder.
  34. ;//
  35. ;// Rev 1.9 04 Apr 1996 11:05:56 AGUPTA2
  36. ;// Added decl for MMX_BlockCopy().
  37. ;//
  38. ;// Rev 1.8 14 Mar 1996 17:03:10 AGUPTA2
  39. ;// Added decls for MMX rtns.
  40. ;//
  41. ;// Rev 1.7 08 Mar 1996 16:46:24 AGUPTA2
  42. ;// Changed function declarations.
  43. ;//
  44. ;//
  45. ;// Rev 1.6 23 Feb 1996 09:46:50 KLILLEVO
  46. ;// fixed decoding of Unrestricted Motion Vector mode
  47. ;//
  48. ;// Rev 1.5 18 Dec 1995 12:47:52 RMCKENZX
  49. ;// added copyright notice and header & log keywords
  50. */
  51. #ifndef __D3MB_H__
  52. #define __D3MB_H__
  53. extern void H263IDCTandMC(T_H263DecoderCatalog FAR *DC, // NEW function
  54. T_BlkAction FAR * fpBlockAction,
  55. int b,
  56. int m,
  57. int g,
  58. U32 *pN,
  59. T_IQ_INDEX *pRUN_INVERSE_Q,
  60. T_MBInfo *fpMBInfo,
  61. int iEdgeFlag);
  62. extern void H263BFrameIDCTandBiMC( // PB-NEW function
  63. T_H263DecoderCatalog FAR *DC,
  64. T_BlkAction FAR * fpBlockAction,
  65. int b,
  66. U32 *pN,
  67. T_IQ_INDEX *pRUN_INVERSE_Q,
  68. U32 *pRef);
  69. extern void H263BBlockPrediction(
  70. T_H263DecoderCatalog FAR *DC,
  71. T_BlkAction FAR *fpBlockAction,
  72. U32 *pRef,
  73. T_MBInfo FAR *fpMBInfo,
  74. int iEdgeFlag);
  75. extern void __fastcall BlockCopy(U32 uDstBlock, U32 uSrcBlock);
  76. #ifdef USE_MMX // { USE_MMX
  77. extern "C" void __fastcall MMX_BlockCopy(U32 uDstBlock, U32 uSrcBlock);
  78. #endif // } USE_MMX
  79. extern void BlockAdd(
  80. U32 uResidual,
  81. U32 uRefBlock,
  82. U32 uDstBlock);
  83. #ifdef USE_MMX // { USE_MMX
  84. extern "C" void __fastcall MMX_BlockAdd(
  85. U32 uResidual, // pointer to IDCT output
  86. U32 uRefBlock, // pointer to predicted values
  87. U32 uDstBlock); // pointer to destination
  88. extern "C" void __fastcall MMX_ClipAndMove(
  89. U32 uResidual, // pointer to IDCT output
  90. U32 uDstBlock, // pointer to destination
  91. U32 ScaledDC); // Scaled DC
  92. #endif // } USE_MMX
  93. #endif