home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / vc98 / include / vptype.h < prev    next >
C/C++ Source or Header  |  1998-04-25  |  3KB  |  77 lines

  1. //==========================================================================;
  2. //
  3. //  Copyright (c) 1997    Microsoft Corporation.    All Rights Reserved.
  4. //
  5. //--------------------------------------------------------------------------;
  6. // this file includes all the data structures defined for the IVPConfig
  7. // interface.
  8.  
  9. #ifndef __IVPType__
  10. #define __IVPType__
  11.  
  12. #ifdef __cplusplus
  13. extern "C" {
  14. #endif
  15.  
  16.     // enum to specify the criterion, which the vpmixer is supposed to use
  17.     // in order to select the video format
  18.     typedef enum _AMVP_SELECT_FORMAT_BY
  19.     {
  20.     AMVP_DO_NOT_CARE,
  21.     AMVP_BEST_BANDWIDTH,
  22.     AMVP_INPUT_SAME_AS_OUTPUT
  23.     } AMVP_SELECT_FORMAT_BY;
  24.  
  25.     // enum to specify the various mode
  26.     typedef enum _AMVP_MODE
  27.     {    
  28.     AMVP_MODE_WEAVE,
  29.     AMVP_MODE_BOBINTERLEAVED,
  30.     AMVP_MODE_BOBNONINTERLEAVED,
  31.     AMVP_MODE_SKIPEVEN,
  32.     AMVP_MODE_SKIPODD
  33.     } AMVP_MODE;
  34.  
  35.     // struct to specify the width and height. The context could be anything
  36.     // such as scaling cropping etc.
  37.     typedef struct _AMVPSIZE
  38.     {
  39.     DWORD            dwWidth;                // the width
  40.     DWORD            dwHeight;                // the height
  41.     } AMVPSIZE, *LPAMVPSIZE;
  42.  
  43.     // struct to specify the dimensional characteristics of the input stream
  44.     typedef struct _AMVPDIMINFO
  45.     {
  46.     DWORD            dwFieldWidth;                // Field height of the data
  47.     DWORD            dwFieldHeight;                // Field width of the data
  48.     DWORD            dwVBIWidth;                // Width of the VBI data
  49.     DWORD            dwVBIHeight;                // Height of the VBI data
  50.     RECT            rcValidRegion;                // The vaild rectangle, used for cropping
  51.     } AMVPDIMINFO, *LPAMVPDIMINFO;
  52.  
  53.     // struct to specify the various data specific characteristics of the input stream
  54.     typedef struct _AMVPDATAINFO
  55.     {
  56.     DWORD            dwSize;                    // Size of the struct
  57.     DWORD            dwMicrosecondsPerField;            // Time taken by each field
  58.     AMVPDIMINFO        amvpDimInfo;                // Dimensional Information 
  59.     DWORD            dwPictAspectRatioX;            // X dimension of Picture Aspect Ratio
  60.     DWORD            dwPictAspectRatioY;            // Y dimension of Picture Aspect Ratio
  61.     BOOL            bEnableDoubleClock;            // Videoport should enable double clocking
  62.     BOOL            bEnableVACT;                // Videoport should use an external VACT signal
  63.     BOOL            bDataIsInterlaced;            // Indicates that the signal is interlaced
  64.     LONG            lHalfLinesOdd;                // number of halflines in the odd field
  65.     BOOL            bFieldPolarityInverted;            // Device inverts the polarity by default
  66.     DWORD            dwNumLinesInVREF;            // Number of lines of data in VREF 
  67.     LONG            lHalfLinesEven;                // number of halflines in the even field
  68.     DWORD            dwReserved1;                // Reserved for future use
  69.     } AMVPDATAINFO, *LPAMVPDATAINFO; 
  70.  
  71.  
  72. #ifdef __cplusplus
  73. }
  74. #endif
  75.  
  76. #endif // __IVPType__
  77.