/[cvs]/api/include/vpconfig.h
ViewVC logotype

Annotation of /api/include/vpconfig.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations)
Sun Jul 1 20:47:59 2001 UTC (23 years, 5 months ago) by bearsoft
Branch point for: lazy, MAIN
File MIME type: text/plain
Initial revision

1 bearsoft 1.1 //------------------------------------------------------------------------------
2     // File: VPConfig.h
3     //
4     // Desc: An interface exposed by the decoder to help it and the filter
5     // configuring the videoport to communicate.
6     //
7     // Copyright (c) 1992 - 2000, Microsoft Corporation. All rights reserved.
8     //------------------------------------------------------------------------------
9    
10    
11     #ifndef __IVPConfig__
12     #define __IVPConfig__
13    
14     #ifdef __cplusplus
15     extern "C" {
16     #endif
17    
18     // IVPBaseConfig
19     DECLARE_INTERFACE_(IVPBaseConfig, IUnknown)
20     {
21     public:
22    
23     // gets the various connection information structures (guid, portwidth)
24     // in an array of structures. If the pointer to the array is NULL, first
25     // parameter returns the total number of formats supported.
26     STDMETHOD (GetConnectInfo)(THIS_
27     IN OUT LPDWORD pdwNumConnectInfo,
28     IN OUT LPDDVIDEOPORTCONNECT pddVPConnectInfo
29     ) PURE;
30    
31     // sets the connection entry chosen (0, 1, .. ,(dwNumProposedEntries-1))
32     STDMETHOD (SetConnectInfo)(THIS_
33     IN DWORD dwChosenEntry
34     ) PURE;
35    
36     // gets various data parameters, includes dimensionnal info
37     STDMETHOD (GetVPDataInfo)(THIS_
38     IN OUT LPAMVPDATAINFO pamvpDataInfo
39     ) PURE;
40    
41     // retrives maximum pixels per second rate expected for a given
42     // format and a given scaling factor. If decoder does not support
43     // those scaling factors, then it gives the rate and the nearest
44     // scaling factors.
45     STDMETHOD (GetMaxPixelRate)(THIS_
46     IN OUT LPAMVPSIZE pamvpSize,
47     OUT LPDWORD pdwMaxPixelsPerSecond
48     ) PURE;
49    
50     // informs the callee of the videoformats supported by the videoport
51     STDMETHOD (InformVPInputFormats)(THIS_
52     IN DWORD dwNumFormats,
53     IN LPDDPIXELFORMAT pDDPixelFormats
54     ) PURE;
55    
56     // gets the various formats supported by the decoder in an array
57     // of structures. If the pointer to the array is NULL, first parameter
58     // returns the total number of formats supported.
59     STDMETHOD (GetVideoFormats)(THIS_
60     IN OUT LPDWORD pdwNumFormats,
61     IN OUT LPDDPIXELFORMAT pddPixelFormats
62     ) PURE;
63    
64     // sets the format entry chosen (0, 1, .. ,(dwNumProposedEntries-1))
65     STDMETHOD (SetVideoFormat)(THIS_
66     IN DWORD dwChosenEntry
67     ) PURE;
68    
69     // asks the decoder to treat even fields like odd fields and visa versa
70     STDMETHOD (SetInvertPolarity)(THIS_
71     ) PURE;
72    
73     // the mixer uses this function to determine if the callee wants
74     // the vpmixer to use its overlay surface and if so to get a pointer to it
75     STDMETHOD (GetOverlaySurface)(THIS_
76     OUT LPDIRECTDRAWSURFACE* ppddOverlaySurface
77     ) PURE;
78    
79     // sets the direct draw kernel handle
80     STDMETHOD (SetDirectDrawKernelHandle)(THIS_
81     IN ULONG_PTR dwDDKernelHandle
82     ) PURE;
83    
84     // sets the video port id
85     STDMETHOD (SetVideoPortID)(THIS_
86     IN DWORD dwVideoPortID
87     ) PURE;
88    
89     // sets the direct draw surface kernel handle
90     STDMETHOD (SetDDSurfaceKernelHandles)(THIS_
91     IN DWORD cHandles,
92     IN ULONG_PTR *rgDDKernelHandles
93     ) PURE;
94    
95     // Tells driver about surface created on its behalf by ovmixer/vbisurf and
96     // returned from videoport/ddraw. Should always return NOERROR or E_NOIMPL.
97     // dwPitch is the pitch of the surface (distance in pixels between the start
98     // pixels of two consecutive lines of the surface). (dwXOrigin, dwYOrigin)
99     // are the (X, Y) coordinates of the pixel at which valid data starts.
100     STDMETHOD (SetSurfaceParameters)(THIS_
101     IN DWORD dwPitch,
102     IN DWORD dwXOrigin,
103     IN DWORD dwYOrigin
104     ) PURE;
105     };
106    
107     // IVPConfig
108     DECLARE_INTERFACE_(IVPConfig, IVPBaseConfig)
109     {
110     public:
111     // the mixer uses this function to determine if the callee wants
112     // the mixer to decimate VIDEO data at its own descrition
113     STDMETHOD (IsVPDecimationAllowed)(THIS_
114     OUT LPBOOL pbIsDecimationAllowed
115     ) PURE;
116    
117     // sets the scaling factors. If decoder does not support these,
118     // then it sets the values to the nearest factors it can support
119     STDMETHOD (SetScalingFactors)(THIS_
120     IN LPAMVPSIZE pamvpSize
121     ) PURE;
122     };
123    
124     // IVPVBIConfig
125     DECLARE_INTERFACE_(IVPVBIConfig, IVPBaseConfig)
126     {
127     public:
128     };
129    
130     #ifdef __cplusplus
131     }
132     #endif
133    
134    
135     #endif // __IVPConfig__

root@recompile.se
ViewVC Help
Powered by ViewVC 1.1.26