1 |
bearsoft |
1.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__
|