AJA NTV2 SDK  18.0.0.2717
NTV2 SDK 18.0.0.2717
streams.h
Go to the documentation of this file.
1 //------------------------------------------------------------------------------
2 // File: Streams.h
3 //
4 // Desc: DirectShow base classes - defines overall streams architecture.
5 //
6 // Copyright (c) 1992-2001 Microsoft Corporation. All rights reserved.
7 //------------------------------------------------------------------------------
8 
9 
10 #ifndef __STREAMS__
11 #define __STREAMS__
12 
13 #ifdef _MSC_VER
14 // disable some level-4 warnings, use #pragma warning(enable:###) to re-enable
15 #pragma warning(disable:4100) // warning C4100: unreferenced formal parameter
16 #pragma warning(disable:4201) // warning C4201: nonstandard extension used : nameless struct/union
17 #pragma warning(disable:4511) // warning C4511: copy constructor could not be generated
18 #pragma warning(disable:4512) // warning C4512: assignment operator could not be generated
19 #pragma warning(disable:4514) // warning C4514: "unreferenced inline function has been removed"
20 
21 #if _MSC_VER>=1100
22 #define AM_NOVTABLE __declspec(novtable)
23 #else
24 #define AM_NOVTABLE
25 #endif
26 #endif // MSC_VER
27 
28 
29 // Because of differences between Visual C++ and older Microsoft SDKs,
30 // you may have defined _DEBUG without defining DEBUG. This logic
31 // ensures that both will be set if Visual C++ sets _DEBUG.
32 #ifdef _DEBUG
33 #ifndef DEBUG
34 #define DEBUG
35 #endif
36 #endif
37 
38 
39 #include <windows.h>
40 #include <windowsx.h>
41 #include <olectl.h>
42 #include <ddraw.h>
43 #include <mmsystem.h>
44 
45 
46 #ifndef NUMELMS
47 #if _WIN32_WINNT < 0x0600
48  #define NUMELMS(aa) (sizeof(aa)/sizeof((aa)[0]))
49 #else
50  #define NUMELMS(aa) ARRAYSIZE(aa)
51 #endif
52 #endif
53 
55 // The following definitions come from the Platform SDK and are required if
56 // the applicaiton is being compiled with the headers from Visual C++ 6.0.
58 #ifndef InterlockedExchangePointer
59  #define InterlockedExchangePointer(Target, Value) \
60  (PVOID)InterlockedExchange((PLONG)(Target), (LONG)(Value))
61 #endif
62 
63 #ifndef _WAVEFORMATEXTENSIBLE_
64 #define _WAVEFORMATEXTENSIBLE_
65 typedef struct {
66  WAVEFORMATEX Format;
67  union {
68  WORD wValidBitsPerSample; /* bits of precision */
69  WORD wSamplesPerBlock; /* valid if wBitsPerSample==0 */
70  WORD wReserved; /* If neither applies, set to zero. */
71  } Samples;
72  DWORD dwChannelMask; /* which channels are */
73  /* present in stream */
74  GUID SubFormat;
76 #endif // !_WAVEFORMATEXTENSIBLE_
77 
78 #if !defined(WAVE_FORMAT_EXTENSIBLE)
79 #define WAVE_FORMAT_EXTENSIBLE 0xFFFE
80 #endif // !defined(WAVE_FORMAT_EXTENSIBLE)
81 
82 #ifndef GetWindowLongPtr
83  #define GetWindowLongPtrA GetWindowLongA
84  #define GetWindowLongPtrW GetWindowLongW
85  #ifdef UNICODE
86  #define GetWindowLongPtr GetWindowLongPtrW
87  #else
88  #define GetWindowLongPtr GetWindowLongPtrA
89  #endif // !UNICODE
90 #endif // !GetWindowLongPtr
91 
92 #ifndef SetWindowLongPtr
93  #define SetWindowLongPtrA SetWindowLongA
94  #define SetWindowLongPtrW SetWindowLongW
95  #ifdef UNICODE
96  #define SetWindowLongPtr SetWindowLongPtrW
97  #else
98  #define SetWindowLongPtr SetWindowLongPtrA
99  #endif // !UNICODE
100 #endif // !SetWindowLongPtr
101 
102 #ifndef GWLP_WNDPROC
103  #define GWLP_WNDPROC (-4)
104 #endif
105 #ifndef GWLP_HINSTANCE
106  #define GWLP_HINSTANCE (-6)
107 #endif
108 #ifndef GWLP_HWNDPARENT
109  #define GWLP_HWNDPARENT (-8)
110 #endif
111 #ifndef GWLP_USERDATA
112  #define GWLP_USERDATA (-21)
113 #endif
114 #ifndef GWLP_ID
115  #define GWLP_ID (-12)
116 #endif
117 #ifndef DWLP_MSGRESULT
118  #define DWLP_MSGRESULT 0
119 #endif
120 #ifndef DWLP_DLGPROC
121  #define DWLP_DLGPROC DWLP_MSGRESULT + sizeof(LRESULT)
122 #endif
123 #ifndef DWLP_USER
124  #define DWLP_USER DWLP_DLGPROC + sizeof(DLGPROC)
125 #endif
126 
127 
128 #pragma warning(push)
129 #pragma warning(disable: 4312 4244)
130 // _GetWindowLongPtr
131 // Templated version of GetWindowLongPtr, to suppress spurious compiler warning.
132 template <class T>
133 T _GetWindowLongPtr(HWND hwnd, int nIndex)
134 {
135  return (T)GetWindowLongPtr(hwnd, nIndex);
136 }
137 
138 // _SetWindowLongPtr
139 // Templated version of SetWindowLongPtr, to suppress spurious compiler warning.
140 template <class T>
141 LONG_PTR _SetWindowLongPtr(HWND hwnd, int nIndex, T p)
142 {
143  return SetWindowLongPtr(hwnd, nIndex, (LONG_PTR)p);
144 }
145 #pragma warning(pop)
146 
148 // End Platform SDK definitions
150 
151 
152 #include <strmif.h> // Generated IDL header file for streams interfaces
153 #include <intsafe.h> // required by amvideo.h
154 
155 #include "reftime.h" // Helper class for REFERENCE_TIME management
156 #include "wxdebug.h" // Debug support for logging and ASSERTs
157 #include <amvideo.h> // ActiveMovie video interfaces and definitions
158 //include amaudio.h explicitly if you need it. it requires the DX SDK.
159 //#include <amaudio.h> // ActiveMovie audio interfaces and definitions
160 #include "wxutil.h" // General helper classes for threads etc
161 #include "combase.h" // Base COM classes to support IUnknown
162 #include "dllsetup.h" // Filter registration support functions
163 #include "measure.h" // Performance measurement
164 #include <comlite.h> // Light weight com function prototypes
165 
166 #include "cache.h" // Simple cache container class
167 #include "wxlist.h" // Non MFC generic list class
168 #include "msgthrd.h" // CMsgThread
169 #include "mtype.h" // Helper class for managing media types
170 #include "fourcc.h" // conversions between FOURCCs and GUIDs
171 #include <control.h> // generated from control.odl
172 #include "ctlutil.h" // control interface utility classes
173 #include <evcode.h> // event code definitions
174 #include "amfilter.h" // Main streams architecture class hierachy
175 #include "transfrm.h" // Generic transform filter
176 #include "transip.h" // Generic transform-in-place filter
177 #include <uuids.h> // declaration of type GUIDs and well-known clsids
178 #include "source.h" // Generic source filter
179 #include "outputq.h" // Output pin queueing
180 #include <errors.h> // HRESULT status and error definitions
181 #include "renbase.h" // Base class for writing ActiveX renderers
182 #include "winutil.h" // Helps with filters that manage windows
183 #include "winctrl.h" // Implements the IVideoWindow interface
184 #include "videoctl.h" // Specifically video related classes
185 #include "refclock.h" // Base clock class
186 #include "sysclock.h" // System clock
187 #include "pstream.h" // IPersistStream helper class
188 #include "vtrans.h" // Video Transform Filter base class
189 #include "amextra.h"
190 #include "cprop.h" // Base property page class
191 #include "strmctl.h" // IAMStreamControl support
192 #include <edevdefs.h> // External device control interface defines
193 #include <audevcod.h> // audio filter device error event codes
194 
195 
196 
197 #else
198  #ifdef DEBUG
199  #pragma message("STREAMS.H included TWICE")
200  #endif
201 #endif // __STREAMS__
202 
WAVEFORMATEXTENSIBLE::wSamplesPerBlock
WORD wSamplesPerBlock
Definition: streams.h:69
amfilter.h
reftime.h
PWAVEFORMATEXTENSIBLE
struct WAVEFORMATEXTENSIBLE * PWAVEFORMATEXTENSIBLE
msgthrd.h
videoctl.h
refclock.h
WAVEFORMATEXTENSIBLE::SubFormat
GUID SubFormat
Definition: streams.h:74
renbase.h
winutil.h
ctlutil.h
WAVEFORMATEXTENSIBLE
Definition: streams.h:65
WAVEFORMATEXTENSIBLE::wValidBitsPerSample
WORD wValidBitsPerSample
Definition: streams.h:68
_SetWindowLongPtr
LONG_PTR _SetWindowLongPtr(HWND hwnd, int nIndex, T p)
Definition: streams.h:141
source.h
wxdebug.h
WAVEFORMATEXTENSIBLE::dwChannelMask
DWORD dwChannelMask
Definition: streams.h:72
wxutil.h
transip.h
cprop.h
SetWindowLongPtr
#define SetWindowLongPtr
Definition: streams.h:98
wxlist.h
combase.h
strmctl.h
cache.h
dllsetup.h
GetWindowLongPtr
#define GetWindowLongPtr
Definition: streams.h:88
mtype.h
WAVEFORMATEXTENSIBLE::wReserved
WORD wReserved
Definition: streams.h:70
winctrl.h
vtrans.h
outputq.h
sysclock.h
transfrm.h
WAVEFORMATEXTENSIBLE::Format
WAVEFORMATEX Format
Definition: streams.h:66
_GetWindowLongPtr
T _GetWindowLongPtr(HWND hwnd, int nIndex)
Definition: streams.h:133
pstream.h
measure.h
fourcc.h
amextra.h