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