Source code of Windows XP (NT5)
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.

85 lines
3.8 KiB

  1. //------------------------------------------------------------------------------
  2. // File: AMVA.h
  3. //
  4. // Desc: DirectShowMotionComp include file.
  5. //
  6. // Copyright (c) 1997 - 2000, Microsoft Corporation. All rights reserved.
  7. //------------------------------------------------------------------------------
  8. #ifndef __AMVA_INCLUDED__
  9. #define __AMVA_INCLUDED__
  10. #ifdef __cplusplus
  11. extern "C" {
  12. #endif
  13. #define AMVA_TYPEINDEX_OUTPUTFRAME 0xFFFFFFFF
  14. // Flags for QueryRenderStatus
  15. #define AMVA_QUERYRENDERSTATUSF_READ 0x00000001 // Query for read
  16. // set this bit to 0
  17. // if query for update
  18. typedef struct _tag_AMVAUncompBufferInfo
  19. {
  20. DWORD dwMinNumSurfaces; // IN min number of surfaces to be allocated
  21. DWORD dwMaxNumSurfaces; // IN max number of surfaces to be allocated
  22. DDPIXELFORMAT ddUncompPixelFormat; // IN pixel format of surfaces to be allocated
  23. } AMVAUncompBufferInfo, *LPAMVAUncompBufferInfo;
  24. typedef struct _tag_AMVAUncompDataInfo
  25. {
  26. DWORD dwUncompWidth; // [in] width of uncompressed data
  27. DWORD dwUncompHeight; // [in] height of uncompressed data
  28. DDPIXELFORMAT ddUncompPixelFormat; // [in] pixel-format of uncompressed data
  29. } AMVAUncompDataInfo, *LPAMVAUncompDataInfo;
  30. typedef struct _tag_AMVAInternalMemInfo
  31. {
  32. DWORD dwScratchMemAlloc; // [out] amount of scratch memory will the hal allocate for its private use
  33. } AMVAInternalMemInfo, *LPAMVAInternalMemInfo;
  34. typedef struct _tag_AMVACompBufferInfo
  35. {
  36. DWORD dwNumCompBuffers; // [out] number of buffers reqd for compressed data
  37. DWORD dwWidthToCreate; // [out] Width of surface to create
  38. DWORD dwHeightToCreate; // [out] Height of surface to create
  39. DWORD dwBytesToAllocate; // [out] Total number of bytes used by each surface
  40. DDSCAPS2 ddCompCaps; // [out] caps to create surfaces to store compressed data
  41. DDPIXELFORMAT ddPixelFormat; // [out] fourcc to create surfaces to store compressed data
  42. } AMVACompBufferInfo, *LPAMVACompBufferInfo;
  43. // Note that you are NOT allowed to store any pointer in pMiscData
  44. typedef struct _tag_AMVABeginFrameInfo
  45. {
  46. DWORD dwDestSurfaceIndex; // IN destination buffer in which to decoding this frame
  47. LPVOID pInputData; // IN pointer to misc data
  48. DWORD dwSizeInputData; // IN size of other misc data to begin frame
  49. LPVOID pOutputData; // OUT pointer to data which the VGA is going to fill
  50. DWORD dwSizeOutputData; // IN size of data which the VGA is going to fill
  51. } AMVABeginFrameInfo, *LPAMVABeginFrameInfo;
  52. // Note that you are NOT allowed to store any pointer in pMiscData
  53. typedef struct _tag_AMVAEndFrameInfo
  54. {
  55. DWORD dwSizeMiscData; // [in] size of other misc data to begin frame
  56. LPVOID pMiscData; // [in] pointer to misc data
  57. } AMVAEndFrameInfo, *LPAMVAEndFrameInfo;
  58. typedef struct _tag_AMVABUFFERINFO
  59. {
  60. DWORD dwTypeIndex; // [in] Type of buffer
  61. DWORD dwBufferIndex; // [in] Buffer index
  62. DWORD dwDataOffset; // [in] offset of relevant data from the beginning of buffer
  63. DWORD dwDataSize; // [in] size of relevant data
  64. } AMVABUFFERINFO, *LPAMVABUFFERINFO;
  65. #ifdef __cplusplus
  66. };
  67. #endif
  68. #endif // _AMVA_INCLUDED