home *** CD-ROM | disk | FTP | other *** search
/ Beginning Direct3D Game Programming / Direct3D.iso / directx / dxf / include / amva.h < prev    next >
C/C++ Source or Header  |  2000-10-01  |  4KB  |  86 lines

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