| 1 | /*** Autogenerated by WIDL 6.4 from include/mediaobj.idl - Do not edit ***/ | 
 
 
 
 
 | 2 |  | 
 
 
 
 
 | 3 | #ifdef _WIN32 | 
 
 
 
 
 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ | 
 
 
 
 
 | 5 | #define __REQUIRED_RPCNDR_H_VERSION__ 475 | 
 
 
 
 
 | 6 | #endif | 
 
 
 
 
 | 7 | #include <rpc.h> | 
 
 
 
 
 | 8 | #include <rpcndr.h> | 
 
 
 
 
 | 9 | #endif | 
 
 
 
 
 | 10 |  | 
 
 
 
 
 | 11 | #ifndef COM_NO_WINDOWS_H | 
 
 
 
 
 | 12 | #include <windows.h> | 
 
 
 
 
 | 13 | #include <ole2.h> | 
 
 
 
 
 | 14 | #endif | 
 
 
 
 
 | 15 |  | 
 
 
 
 
 | 16 | #ifndef __mediaobj_h__ | 
 
 
 
 
 | 17 | #define __mediaobj_h__ | 
 
 
 
 
 | 18 |  | 
 
 
 
 
 | 19 | /* Forward declarations */ | 
 
 
 
 
 | 20 |  | 
 
 
 
 
 | 21 | #ifndef __IEnumDMO_FWD_DEFINED__ | 
 
 
 
 
 | 22 | #define __IEnumDMO_FWD_DEFINED__ | 
 
 
 
 
 | 23 | typedef interface IEnumDMO IEnumDMO; | 
 
 
 
 
 | 24 | #ifdef __cplusplus | 
 
 
 
 
 | 25 | interface IEnumDMO; | 
 
 
 
 
 | 26 | #endif /* __cplusplus */ | 
 
 
 
 
 | 27 | #endif | 
 
 
 
 
 | 28 |  | 
 
 
 
 
 | 29 | #ifndef __IMediaBuffer_FWD_DEFINED__ | 
 
 
 
 
 | 30 | #define __IMediaBuffer_FWD_DEFINED__ | 
 
 
 
 
 | 31 | typedef interface IMediaBuffer IMediaBuffer; | 
 
 
 
 
 | 32 | #ifdef __cplusplus | 
 
 
 
 
 | 33 | interface IMediaBuffer; | 
 
 
 
 
 | 34 | #endif /* __cplusplus */ | 
 
 
 
 
 | 35 | #endif | 
 
 
 
 
 | 36 |  | 
 
 
 
 
 | 37 | #ifndef __IMediaObject_FWD_DEFINED__ | 
 
 
 
 
 | 38 | #define __IMediaObject_FWD_DEFINED__ | 
 
 
 
 
 | 39 | typedef interface IMediaObject IMediaObject; | 
 
 
 
 
 | 40 | #ifdef __cplusplus | 
 
 
 
 
 | 41 | interface IMediaObject; | 
 
 
 
 
 | 42 | #endif /* __cplusplus */ | 
 
 
 
 
 | 43 | #endif | 
 
 
 
 
 | 44 |  | 
 
 
 
 
 | 45 | #ifndef __IMediaObjectInPlace_FWD_DEFINED__ | 
 
 
 
 
 | 46 | #define __IMediaObjectInPlace_FWD_DEFINED__ | 
 
 
 
 
 | 47 | typedef interface IMediaObjectInPlace IMediaObjectInPlace; | 
 
 
 
 
 | 48 | #ifdef __cplusplus | 
 
 
 
 
 | 49 | interface IMediaObjectInPlace; | 
 
 
 
 
 | 50 | #endif /* __cplusplus */ | 
 
 
 
 
 | 51 | #endif | 
 
 
 
 
 | 52 |  | 
 
 
 
 
 | 53 | #ifndef __IDMOQualityControl_FWD_DEFINED__ | 
 
 
 
 
 | 54 | #define __IDMOQualityControl_FWD_DEFINED__ | 
 
 
 
 
 | 55 | typedef interface IDMOQualityControl IDMOQualityControl; | 
 
 
 
 
 | 56 | #ifdef __cplusplus | 
 
 
 
 
 | 57 | interface IDMOQualityControl; | 
 
 
 
 
 | 58 | #endif /* __cplusplus */ | 
 
 
 
 
 | 59 | #endif | 
 
 
 
 
 | 60 |  | 
 
 
 
 
 | 61 | #ifndef __IDMOVideoOutputOptimizations_FWD_DEFINED__ | 
 
 
 
 
 | 62 | #define __IDMOVideoOutputOptimizations_FWD_DEFINED__ | 
 
 
 
 
 | 63 | typedef interface IDMOVideoOutputOptimizations IDMOVideoOutputOptimizations; | 
 
 
 
 
 | 64 | #ifdef __cplusplus | 
 
 
 
 
 | 65 | interface IDMOVideoOutputOptimizations; | 
 
 
 
 
 | 66 | #endif /* __cplusplus */ | 
 
 
 
 
 | 67 | #endif | 
 
 
 
 
 | 68 |  | 
 
 
 
 
 | 69 | /* Headers for imported files */ | 
 
 
 
 
 | 70 |  | 
 
 
 
 
 | 71 | #include <unknwn.h> | 
 
 
 
 
 | 72 | #include <objidl.h> | 
 
 
 
 
 | 73 | #include <strmif.h> | 
 
 
 
 
 | 74 |  | 
 
 
 
 
 | 75 | #ifdef __cplusplus | 
 
 
 
 
 | 76 | extern "C" { | 
 
 
 
 
 | 77 | #endif | 
 
 
 
 
 | 78 |  | 
 
 
 
 
 | 79 | typedef struct _DMOMediaType { | 
 
 
 
 
 | 80 | GUID majortype; | 
 
 
 
 
 | 81 | GUID subtype; | 
 
 
 
 
 | 82 | WINBOOL bFixedSizeSamples; | 
 
 
 
 
 | 83 | WINBOOL bTemporalCompression; | 
 
 
 
 
 | 84 | ULONG lSampleSize; | 
 
 
 
 
 | 85 | GUID formattype; | 
 
 
 
 
 | 86 | IUnknown *pUnk; | 
 
 
 
 
 | 87 | ULONG cbFormat; | 
 
 
 
 
 | 88 | BYTE *pbFormat; | 
 
 
 
 
 | 89 | } DMO_MEDIA_TYPE; | 
 
 
 
 
 | 90 | /***************************************************************************** | 
 
 
 
 
 | 91 | * IEnumDMO interface | 
 
 
 
 
 | 92 | */ | 
 
 
 
 
 | 93 | #ifndef __IEnumDMO_INTERFACE_DEFINED__ | 
 
 
 
 
 | 94 | #define __IEnumDMO_INTERFACE_DEFINED__ | 
 
 
 
 
 | 95 |  | 
 
 
 
 
 | 96 | DEFINE_GUID(IID_IEnumDMO, 0x2c3cd98a, 0x2bfa, 0x4a53, 0x9c,0x27, 0x52,0x49,0xba,0x64,0xba,0x0f); | 
 
 
 
 
 | 97 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 
 
 
 
 | 98 | MIDL_INTERFACE("2c3cd98a-2bfa-4a53-9c27-5249ba64ba0f") | 
 
 
 
 
 | 99 | IEnumDMO : public IUnknown | 
 
 
 
 
 | 100 | { | 
 
 
 
 
 | 101 | virtual HRESULT STDMETHODCALLTYPE Next( | 
 
 
 
 
 | 102 | DWORD cItemsToFetch, | 
 
 
 
 
 | 103 | CLSID *pCLSID, | 
 
 
 
 
 | 104 | WCHAR **Names, | 
 
 
 
 
 | 105 | DWORD *pcItemsFetched) = 0; | 
 
 
 
 
 | 106 |  | 
 
 
 
 
 | 107 | virtual HRESULT STDMETHODCALLTYPE Skip( | 
 
 
 
 
 | 108 | DWORD cItemsToSkip) = 0; | 
 
 
 
 
 | 109 |  | 
 
 
 
 
 | 110 | virtual HRESULT STDMETHODCALLTYPE Reset( | 
 
 
 
 
 | 111 | ) = 0; | 
 
 
 
 
 | 112 |  | 
 
 
 
 
 | 113 | virtual HRESULT STDMETHODCALLTYPE Clone( | 
 
 
 
 
 | 114 | IEnumDMO **ppEnum) = 0; | 
 
 
 
 
 | 115 |  | 
 
 
 
 
 | 116 | }; | 
 
 
 
 
 | 117 | #ifdef __CRT_UUID_DECL | 
 
 
 
 
 | 118 | __CRT_UUID_DECL(IEnumDMO, 0x2c3cd98a, 0x2bfa, 0x4a53, 0x9c,0x27, 0x52,0x49,0xba,0x64,0xba,0x0f) | 
 
 
 
 
 | 119 | #endif | 
 
 
 
 
 | 120 | #else | 
 
 
 
 
 | 121 | typedef struct IEnumDMOVtbl { | 
 
 
 
 
 | 122 | BEGIN_INTERFACE | 
 
 
 
 
 | 123 |  | 
 
 
 
 
 | 124 | /*** IUnknown methods ***/ | 
 
 
 
 
 | 125 | HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 
 
 
 
 | 126 | IEnumDMO *This, | 
 
 
 
 
 | 127 | REFIID riid, | 
 
 
 
 
 | 128 | void **ppvObject); | 
 
 
 
 
 | 129 |  | 
 
 
 
 
 | 130 | ULONG (STDMETHODCALLTYPE *AddRef)( | 
 
 
 
 
 | 131 | IEnumDMO *This); | 
 
 
 
 
 | 132 |  | 
 
 
 
 
 | 133 | ULONG (STDMETHODCALLTYPE *Release)( | 
 
 
 
 
 | 134 | IEnumDMO *This); | 
 
 
 
 
 | 135 |  | 
 
 
 
 
 | 136 | /*** IEnumDMO methods ***/ | 
 
 
 
 
 | 137 | HRESULT (STDMETHODCALLTYPE *Next)( | 
 
 
 
 
 | 138 | IEnumDMO *This, | 
 
 
 
 
 | 139 | DWORD cItemsToFetch, | 
 
 
 
 
 | 140 | CLSID *pCLSID, | 
 
 
 
 
 | 141 | WCHAR **Names, | 
 
 
 
 
 | 142 | DWORD *pcItemsFetched); | 
 
 
 
 
 | 143 |  | 
 
 
 
 
 | 144 | HRESULT (STDMETHODCALLTYPE *Skip)( | 
 
 
 
 
 | 145 | IEnumDMO *This, | 
 
 
 
 
 | 146 | DWORD cItemsToSkip); | 
 
 
 
 
 | 147 |  | 
 
 
 
 
 | 148 | HRESULT (STDMETHODCALLTYPE *Reset)( | 
 
 
 
 
 | 149 | IEnumDMO *This); | 
 
 
 
 
 | 150 |  | 
 
 
 
 
 | 151 | HRESULT (STDMETHODCALLTYPE *Clone)( | 
 
 
 
 
 | 152 | IEnumDMO *This, | 
 
 
 
 
 | 153 | IEnumDMO **ppEnum); | 
 
 
 
 
 | 154 |  | 
 
 
 
 
 | 155 | END_INTERFACE | 
 
 
 
 
 | 156 | } IEnumDMOVtbl; | 
 
 
 
 
 | 157 |  | 
 
 
 
 
 | 158 | interface IEnumDMO { | 
 
 
 
 
 | 159 | CONST_VTBL IEnumDMOVtbl* lpVtbl; | 
 
 
 
 
 | 160 | }; | 
 
 
 
 
 | 161 |  | 
 
 
 
 
 | 162 | #ifdef COBJMACROS | 
 
 
 
 
 | 163 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 
 
 
 
 | 164 | /*** IUnknown methods ***/ | 
 
 
 
 
 | 165 | #define IEnumDMO_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 
 
 
 
 | 166 | #define IEnumDMO_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 
 
 
 
 | 167 | #define IEnumDMO_Release(This) (This)->lpVtbl->Release(This) | 
 
 
 
 
 | 168 | /*** IEnumDMO methods ***/ | 
 
 
 
 
 | 169 | #define IEnumDMO_Next(This,cItemsToFetch,pCLSID,Names,pcItemsFetched) (This)->lpVtbl->Next(This,cItemsToFetch,pCLSID,Names,pcItemsFetched) | 
 
 
 
 
 | 170 | #define IEnumDMO_Skip(This,cItemsToSkip) (This)->lpVtbl->Skip(This,cItemsToSkip) | 
 
 
 
 
 | 171 | #define IEnumDMO_Reset(This) (This)->lpVtbl->Reset(This) | 
 
 
 
 
 | 172 | #define IEnumDMO_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum) | 
 
 
 
 
 | 173 | #else | 
 
 
 
 
 | 174 | /*** IUnknown methods ***/ | 
 
 
 
 
 | 175 | static FORCEINLINE HRESULT IEnumDMO_QueryInterface(IEnumDMO* This,REFIID riid,void **ppvObject) { | 
 
 
 
 
 | 176 | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 
 
 
 
 | 177 | } | 
 
 
 
 
 | 178 | static FORCEINLINE ULONG IEnumDMO_AddRef(IEnumDMO* This) { | 
 
 
 
 
 | 179 | return This->lpVtbl->AddRef(This); | 
 
 
 
 
 | 180 | } | 
 
 
 
 
 | 181 | static FORCEINLINE ULONG IEnumDMO_Release(IEnumDMO* This) { | 
 
 
 
 
 | 182 | return This->lpVtbl->Release(This); | 
 
 
 
 
 | 183 | } | 
 
 
 
 
 | 184 | /*** IEnumDMO methods ***/ | 
 
 
 
 
 | 185 | static FORCEINLINE HRESULT IEnumDMO_Next(IEnumDMO* This,DWORD cItemsToFetch,CLSID *pCLSID,WCHAR **Names,DWORD *pcItemsFetched) { | 
 
 
 
 
 | 186 | return This->lpVtbl->Next(This,cItemsToFetch,pCLSID,Names,pcItemsFetched); | 
 
 
 
 
 | 187 | } | 
 
 
 
 
 | 188 | static FORCEINLINE HRESULT IEnumDMO_Skip(IEnumDMO* This,DWORD cItemsToSkip) { | 
 
 
 
 
 | 189 | return This->lpVtbl->Skip(This,cItemsToSkip); | 
 
 
 
 
 | 190 | } | 
 
 
 
 
 | 191 | static FORCEINLINE HRESULT IEnumDMO_Reset(IEnumDMO* This) { | 
 
 
 
 
 | 192 | return This->lpVtbl->Reset(This); | 
 
 
 
 
 | 193 | } | 
 
 
 
 
 | 194 | static FORCEINLINE HRESULT IEnumDMO_Clone(IEnumDMO* This,IEnumDMO **ppEnum) { | 
 
 
 
 
 | 195 | return This->lpVtbl->Clone(This,ppEnum); | 
 
 
 
 
 | 196 | } | 
 
 
 
 
 | 197 | #endif | 
 
 
 
 
 | 198 | #endif | 
 
 
 
 
 | 199 |  | 
 
 
 
 
 | 200 | #endif | 
 
 
 
 
 | 201 |  | 
 
 
 
 
 | 202 |  | 
 
 
 
 
 | 203 | #endif  /* __IEnumDMO_INTERFACE_DEFINED__ */ | 
 
 
 
 
 | 204 |  | 
 
 
 
 
 | 205 | /***************************************************************************** | 
 
 
 
 
 | 206 | * IMediaBuffer interface | 
 
 
 
 
 | 207 | */ | 
 
 
 
 
 | 208 | #ifndef __IMediaBuffer_INTERFACE_DEFINED__ | 
 
 
 
 
 | 209 | #define __IMediaBuffer_INTERFACE_DEFINED__ | 
 
 
 
 
 | 210 |  | 
 
 
 
 
 | 211 | DEFINE_GUID(IID_IMediaBuffer, 0x59eff8b9, 0x938c, 0x4a26, 0x82,0xf2, 0x95,0xcb,0x84,0xcd,0xc8,0x37); | 
 
 
 
 
 | 212 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 
 
 
 
 | 213 | MIDL_INTERFACE("59eff8b9-938c-4a26-82f2-95cb84cdc837") | 
 
 
 
 
 | 214 | IMediaBuffer : public IUnknown | 
 
 
 
 
 | 215 | { | 
 
 
 
 
 | 216 | virtual HRESULT STDMETHODCALLTYPE SetLength( | 
 
 
 
 
 | 217 | DWORD cbLength) = 0; | 
 
 
 
 
 | 218 |  | 
 
 
 
 
 | 219 | virtual HRESULT STDMETHODCALLTYPE GetMaxLength( | 
 
 
 
 
 | 220 | DWORD *pcbMaxLength) = 0; | 
 
 
 
 
 | 221 |  | 
 
 
 
 
 | 222 | virtual HRESULT STDMETHODCALLTYPE GetBufferAndLength( | 
 
 
 
 
 | 223 | BYTE **ppBuffer, | 
 
 
 
 
 | 224 | DWORD *pcbLength) = 0; | 
 
 
 
 
 | 225 |  | 
 
 
 
 
 | 226 | }; | 
 
 
 
 
 | 227 | #ifdef __CRT_UUID_DECL | 
 
 
 
 
 | 228 | __CRT_UUID_DECL(IMediaBuffer, 0x59eff8b9, 0x938c, 0x4a26, 0x82,0xf2, 0x95,0xcb,0x84,0xcd,0xc8,0x37) | 
 
 
 
 
 | 229 | #endif | 
 
 
 
 
 | 230 | #else | 
 
 
 
 
 | 231 | typedef struct IMediaBufferVtbl { | 
 
 
 
 
 | 232 | BEGIN_INTERFACE | 
 
 
 
 
 | 233 |  | 
 
 
 
 
 | 234 | /*** IUnknown methods ***/ | 
 
 
 
 
 | 235 | HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 
 
 
 
 | 236 | IMediaBuffer *This, | 
 
 
 
 
 | 237 | REFIID riid, | 
 
 
 
 
 | 238 | void **ppvObject); | 
 
 
 
 
 | 239 |  | 
 
 
 
 
 | 240 | ULONG (STDMETHODCALLTYPE *AddRef)( | 
 
 
 
 
 | 241 | IMediaBuffer *This); | 
 
 
 
 
 | 242 |  | 
 
 
 
 
 | 243 | ULONG (STDMETHODCALLTYPE *Release)( | 
 
 
 
 
 | 244 | IMediaBuffer *This); | 
 
 
 
 
 | 245 |  | 
 
 
 
 
 | 246 | /*** IMediaBuffer methods ***/ | 
 
 
 
 
 | 247 | HRESULT (STDMETHODCALLTYPE *SetLength)( | 
 
 
 
 
 | 248 | IMediaBuffer *This, | 
 
 
 
 
 | 249 | DWORD cbLength); | 
 
 
 
 
 | 250 |  | 
 
 
 
 
 | 251 | HRESULT (STDMETHODCALLTYPE *GetMaxLength)( | 
 
 
 
 
 | 252 | IMediaBuffer *This, | 
 
 
 
 
 | 253 | DWORD *pcbMaxLength); | 
 
 
 
 
 | 254 |  | 
 
 
 
 
 | 255 | HRESULT (STDMETHODCALLTYPE *GetBufferAndLength)( | 
 
 
 
 
 | 256 | IMediaBuffer *This, | 
 
 
 
 
 | 257 | BYTE **ppBuffer, | 
 
 
 
 
 | 258 | DWORD *pcbLength); | 
 
 
 
 
 | 259 |  | 
 
 
 
 
 | 260 | END_INTERFACE | 
 
 
 
 
 | 261 | } IMediaBufferVtbl; | 
 
 
 
 
 | 262 |  | 
 
 
 
 
 | 263 | interface IMediaBuffer { | 
 
 
 
 
 | 264 | CONST_VTBL IMediaBufferVtbl* lpVtbl; | 
 
 
 
 
 | 265 | }; | 
 
 
 
 
 | 266 |  | 
 
 
 
 
 | 267 | #ifdef COBJMACROS | 
 
 
 
 
 | 268 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 
 
 
 
 | 269 | /*** IUnknown methods ***/ | 
 
 
 
 
 | 270 | #define IMediaBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 
 
 
 
 | 271 | #define IMediaBuffer_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 
 
 
 
 | 272 | #define IMediaBuffer_Release(This) (This)->lpVtbl->Release(This) | 
 
 
 
 
 | 273 | /*** IMediaBuffer methods ***/ | 
 
 
 
 
 | 274 | #define IMediaBuffer_SetLength(This,cbLength) (This)->lpVtbl->SetLength(This,cbLength) | 
 
 
 
 
 | 275 | #define IMediaBuffer_GetMaxLength(This,pcbMaxLength) (This)->lpVtbl->GetMaxLength(This,pcbMaxLength) | 
 
 
 
 
 | 276 | #define IMediaBuffer_GetBufferAndLength(This,ppBuffer,pcbLength) (This)->lpVtbl->GetBufferAndLength(This,ppBuffer,pcbLength) | 
 
 
 
 
 | 277 | #else | 
 
 
 
 
 | 278 | /*** IUnknown methods ***/ | 
 
 
 
 
 | 279 | static FORCEINLINE HRESULT IMediaBuffer_QueryInterface(IMediaBuffer* This,REFIID riid,void **ppvObject) { | 
 
 
 
 
 | 280 | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 
 
 
 
 | 281 | } | 
 
 
 
 
 | 282 | static FORCEINLINE ULONG IMediaBuffer_AddRef(IMediaBuffer* This) { | 
 
 
 
 
 | 283 | return This->lpVtbl->AddRef(This); | 
 
 
 
 
 | 284 | } | 
 
 
 
 
 | 285 | static FORCEINLINE ULONG IMediaBuffer_Release(IMediaBuffer* This) { | 
 
 
 
 
 | 286 | return This->lpVtbl->Release(This); | 
 
 
 
 
 | 287 | } | 
 
 
 
 
 | 288 | /*** IMediaBuffer methods ***/ | 
 
 
 
 
 | 289 | static FORCEINLINE HRESULT IMediaBuffer_SetLength(IMediaBuffer* This,DWORD cbLength) { | 
 
 
 
 
 | 290 | return This->lpVtbl->SetLength(This,cbLength); | 
 
 
 
 
 | 291 | } | 
 
 
 
 
 | 292 | static FORCEINLINE HRESULT IMediaBuffer_GetMaxLength(IMediaBuffer* This,DWORD *pcbMaxLength) { | 
 
 
 
 
 | 293 | return This->lpVtbl->GetMaxLength(This,pcbMaxLength); | 
 
 
 
 
 | 294 | } | 
 
 
 
 
 | 295 | static FORCEINLINE HRESULT IMediaBuffer_GetBufferAndLength(IMediaBuffer* This,BYTE **ppBuffer,DWORD *pcbLength) { | 
 
 
 
 
 | 296 | return This->lpVtbl->GetBufferAndLength(This,ppBuffer,pcbLength); | 
 
 
 
 
 | 297 | } | 
 
 
 
 
 | 298 | #endif | 
 
 
 
 
 | 299 | #endif | 
 
 
 
 
 | 300 |  | 
 
 
 
 
 | 301 | #endif | 
 
 
 
 
 | 302 |  | 
 
 
 
 
 | 303 |  | 
 
 
 
 
 | 304 | #endif  /* __IMediaBuffer_INTERFACE_DEFINED__ */ | 
 
 
 
 
 | 305 |  | 
 
 
 
 
 | 306 | enum _DMO_INPUT_STATUS_FLAGS { | 
 
 
 
 
 | 307 | DMO_INPUT_STATUSF_ACCEPT_DATA = 0x1 | 
 
 
 
 
 | 308 | }; | 
 
 
 
 
 | 309 | enum _DMO_INPUT_DATA_BUFFER_FLAGS { | 
 
 
 
 
 | 310 | DMO_INPUT_DATA_BUFFERF_SYNCPOINT = 0x1, | 
 
 
 
 
 | 311 | DMO_INPUT_DATA_BUFFERF_TIME = 0x2, | 
 
 
 
 
 | 312 | DMO_INPUT_DATA_BUFFERF_TIMELENGTH = 0x4 | 
 
 
 
 
 | 313 | }; | 
 
 
 
 
 | 314 | enum _DMO_PROCESS_OUTPUT_FLAGS { | 
 
 
 
 
 | 315 | DMO_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER = 0x1 | 
 
 
 
 
 | 316 | }; | 
 
 
 
 
 | 317 | typedef struct _DMO_OUTPUT_DATA_BUFFER { | 
 
 
 
 
 | 318 | IMediaBuffer *pBuffer; | 
 
 
 
 
 | 319 | DWORD dwStatus; | 
 
 
 
 
 | 320 | REFERENCE_TIME rtTimestamp; | 
 
 
 
 
 | 321 | REFERENCE_TIME rtTimelength; | 
 
 
 
 
 | 322 | } DMO_OUTPUT_DATA_BUFFER; | 
 
 
 
 
 | 323 | typedef struct _DMO_OUTPUT_DATA_BUFFER *PDMO_OUTPUT_DATA_BUFFER; | 
 
 
 
 
 | 324 | enum _DMO_INPLACE_PROCESS_FLAGS { | 
 
 
 
 
 | 325 | DMO_INPLACE_NORMAL = 0x0, | 
 
 
 
 
 | 326 | DMO_INPLACE_ZERO = 0x1 | 
 
 
 
 
 | 327 | }; | 
 
 
 
 
 | 328 | enum _DMO_SET_TYPE_FLAGS { | 
 
 
 
 
 | 329 | DMO_SET_TYPEF_TEST_ONLY = 0x1, | 
 
 
 
 
 | 330 | DMO_SET_TYPEF_CLEAR = 0x2 | 
 
 
 
 
 | 331 | }; | 
 
 
 
 
 | 332 | enum _DMO_OUTPUT_DATA_BUFFERF_FLAGS { | 
 
 
 
 
 | 333 | DMO_OUTPUT_DATA_BUFFERF_SYNCPOINT = 0x1, | 
 
 
 
 
 | 334 | DMO_OUTPUT_DATA_BUFFERF_TIME = 0x2, | 
 
 
 
 
 | 335 | DMO_OUTPUT_DATA_BUFFERF_TIMELENGTH = 0x4, | 
 
 
 
 
 | 336 | DMO_OUTPUT_DATA_BUFFERF_INCOMPLETE = 0x1000000 | 
 
 
 
 
 | 337 | }; | 
 
 
 
 
 | 338 | /***************************************************************************** | 
 
 
 
 
 | 339 | * IMediaObject interface | 
 
 
 
 
 | 340 | */ | 
 
 
 
 
 | 341 | #ifndef __IMediaObject_INTERFACE_DEFINED__ | 
 
 
 
 
 | 342 | #define __IMediaObject_INTERFACE_DEFINED__ | 
 
 
 
 
 | 343 |  | 
 
 
 
 
 | 344 | DEFINE_GUID(IID_IMediaObject, 0xd8ad0f58, 0x5494, 0x4102, 0x97,0xc5, 0xec,0x79,0x8e,0x59,0xbc,0xf4); | 
 
 
 
 
 | 345 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 
 
 
 
 | 346 | MIDL_INTERFACE("d8ad0f58-5494-4102-97c5-ec798e59bcf4") | 
 
 
 
 
 | 347 | IMediaObject : public IUnknown | 
 
 
 
 
 | 348 | { | 
 
 
 
 
 | 349 | virtual HRESULT STDMETHODCALLTYPE GetStreamCount( | 
 
 
 
 
 | 350 | DWORD *pcInputStreams, | 
 
 
 
 
 | 351 | DWORD *pcOutputStreams) = 0; | 
 
 
 
 
 | 352 |  | 
 
 
 
 
 | 353 | virtual HRESULT STDMETHODCALLTYPE GetInputStreamInfo( | 
 
 
 
 
 | 354 | DWORD dwInputStreamIndex, | 
 
 
 
 
 | 355 | DWORD *pdwFlags) = 0; | 
 
 
 
 
 | 356 |  | 
 
 
 
 
 | 357 | virtual HRESULT STDMETHODCALLTYPE GetOutputStreamInfo( | 
 
 
 
 
 | 358 | DWORD dwOutputStreamIndex, | 
 
 
 
 
 | 359 | DWORD *pdwFlags) = 0; | 
 
 
 
 
 | 360 |  | 
 
 
 
 
 | 361 | virtual HRESULT STDMETHODCALLTYPE GetInputType( | 
 
 
 
 
 | 362 | DWORD dwInputStreamIndex, | 
 
 
 
 
 | 363 | DWORD dwTypeIndex, | 
 
 
 
 
 | 364 | DMO_MEDIA_TYPE *pmt) = 0; | 
 
 
 
 
 | 365 |  | 
 
 
 
 
 | 366 | virtual HRESULT STDMETHODCALLTYPE GetOutputType( | 
 
 
 
 
 | 367 | DWORD dwOutputStreamIndex, | 
 
 
 
 
 | 368 | DWORD dwTypeIndex, | 
 
 
 
 
 | 369 | DMO_MEDIA_TYPE *pmt) = 0; | 
 
 
 
 
 | 370 |  | 
 
 
 
 
 | 371 | virtual HRESULT STDMETHODCALLTYPE SetInputType( | 
 
 
 
 
 | 372 | DWORD dwInputStreamIndex, | 
 
 
 
 
 | 373 | const DMO_MEDIA_TYPE *pmt, | 
 
 
 
 
 | 374 | DWORD dwFlags) = 0; | 
 
 
 
 
 | 375 |  | 
 
 
 
 
 | 376 | virtual HRESULT STDMETHODCALLTYPE SetOutputType( | 
 
 
 
 
 | 377 | DWORD dwOutputStreamIndex, | 
 
 
 
 
 | 378 | const DMO_MEDIA_TYPE *pmt, | 
 
 
 
 
 | 379 | DWORD dwFlags) = 0; | 
 
 
 
 
 | 380 |  | 
 
 
 
 
 | 381 | virtual HRESULT STDMETHODCALLTYPE GetInputCurrentType( | 
 
 
 
 
 | 382 | DWORD dwInputStreamIndex, | 
 
 
 
 
 | 383 | DMO_MEDIA_TYPE *pmt) = 0; | 
 
 
 
 
 | 384 |  | 
 
 
 
 
 | 385 | virtual HRESULT STDMETHODCALLTYPE GetOutputCurrentType( | 
 
 
 
 
 | 386 | DWORD dwOutputStreamIndex, | 
 
 
 
 
 | 387 | DMO_MEDIA_TYPE *pmt) = 0; | 
 
 
 
 
 | 388 |  | 
 
 
 
 
 | 389 | virtual HRESULT STDMETHODCALLTYPE GetInputSizeInfo( | 
 
 
 
 
 | 390 | DWORD dwInputStreamIndex, | 
 
 
 
 
 | 391 | DWORD *pcbSize, | 
 
 
 
 
 | 392 | DWORD *pcbMaxLookahead, | 
 
 
 
 
 | 393 | DWORD *pcbAlignment) = 0; | 
 
 
 
 
 | 394 |  | 
 
 
 
 
 | 395 | virtual HRESULT STDMETHODCALLTYPE GetOutputSizeInfo( | 
 
 
 
 
 | 396 | DWORD dwOutputStreamIndex, | 
 
 
 
 
 | 397 | DWORD *pcbSize, | 
 
 
 
 
 | 398 | DWORD *pcbAlignment) = 0; | 
 
 
 
 
 | 399 |  | 
 
 
 
 
 | 400 | virtual HRESULT STDMETHODCALLTYPE GetInputMaxLatency( | 
 
 
 
 
 | 401 | DWORD dwInputStreamIndex, | 
 
 
 
 
 | 402 | REFERENCE_TIME *prtMaxLatency) = 0; | 
 
 
 
 
 | 403 |  | 
 
 
 
 
 | 404 | virtual HRESULT STDMETHODCALLTYPE SetInputMaxLatency( | 
 
 
 
 
 | 405 | DWORD dwInputStreamIndex, | 
 
 
 
 
 | 406 | REFERENCE_TIME rtMaxLatency) = 0; | 
 
 
 
 
 | 407 |  | 
 
 
 
 
 | 408 | virtual HRESULT STDMETHODCALLTYPE Flush( | 
 
 
 
 
 | 409 | ) = 0; | 
 
 
 
 
 | 410 |  | 
 
 
 
 
 | 411 | virtual HRESULT STDMETHODCALLTYPE Discontinuity( | 
 
 
 
 
 | 412 | DWORD dwInputStreamIndex) = 0; | 
 
 
 
 
 | 413 |  | 
 
 
 
 
 | 414 | virtual HRESULT STDMETHODCALLTYPE AllocateStreamingResources( | 
 
 
 
 
 | 415 | ) = 0; | 
 
 
 
 
 | 416 |  | 
 
 
 
 
 | 417 | virtual HRESULT STDMETHODCALLTYPE FreeStreamingResources( | 
 
 
 
 
 | 418 | ) = 0; | 
 
 
 
 
 | 419 |  | 
 
 
 
 
 | 420 | virtual HRESULT STDMETHODCALLTYPE GetInputStatus( | 
 
 
 
 
 | 421 | DWORD dwInputStreamIndex, | 
 
 
 
 
 | 422 | DWORD *dwFlags) = 0; | 
 
 
 
 
 | 423 |  | 
 
 
 
 
 | 424 | virtual HRESULT STDMETHODCALLTYPE ProcessInput( | 
 
 
 
 
 | 425 | DWORD dwInputStreamIndex, | 
 
 
 
 
 | 426 | IMediaBuffer *pBuffer, | 
 
 
 
 
 | 427 | DWORD dwFlags, | 
 
 
 
 
 | 428 | REFERENCE_TIME rtTimestamp, | 
 
 
 
 
 | 429 | REFERENCE_TIME rtTimelength) = 0; | 
 
 
 
 
 | 430 |  | 
 
 
 
 
 | 431 | virtual HRESULT STDMETHODCALLTYPE ProcessOutput( | 
 
 
 
 
 | 432 | DWORD dwFlags, | 
 
 
 
 
 | 433 | DWORD cOutputBufferCount, | 
 
 
 
 
 | 434 | DMO_OUTPUT_DATA_BUFFER *pOutputBuffers, | 
 
 
 
 
 | 435 | DWORD *pdwStatus) = 0; | 
 
 
 
 
 | 436 |  | 
 
 
 
 
 | 437 | virtual HRESULT STDMETHODCALLTYPE Lock( | 
 
 
 
 
 | 438 | LONG bLock) = 0; | 
 
 
 
 
 | 439 |  | 
 
 
 
 
 | 440 | }; | 
 
 
 
 
 | 441 | #ifdef __CRT_UUID_DECL | 
 
 
 
 
 | 442 | __CRT_UUID_DECL(IMediaObject, 0xd8ad0f58, 0x5494, 0x4102, 0x97,0xc5, 0xec,0x79,0x8e,0x59,0xbc,0xf4) | 
 
 
 
 
 | 443 | #endif | 
 
 
 
 
 | 444 | #else | 
 
 
 
 
 | 445 | typedef struct IMediaObjectVtbl { | 
 
 
 
 
 | 446 | BEGIN_INTERFACE | 
 
 
 
 
 | 447 |  | 
 
 
 
 
 | 448 | /*** IUnknown methods ***/ | 
 
 
 
 
 | 449 | HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 
 
 
 
 | 450 | IMediaObject *This, | 
 
 
 
 
 | 451 | REFIID riid, | 
 
 
 
 
 | 452 | void **ppvObject); | 
 
 
 
 
 | 453 |  | 
 
 
 
 
 | 454 | ULONG (STDMETHODCALLTYPE *AddRef)( | 
 
 
 
 
 | 455 | IMediaObject *This); | 
 
 
 
 
 | 456 |  | 
 
 
 
 
 | 457 | ULONG (STDMETHODCALLTYPE *Release)( | 
 
 
 
 
 | 458 | IMediaObject *This); | 
 
 
 
 
 | 459 |  | 
 
 
 
 
 | 460 | /*** IMediaObject methods ***/ | 
 
 
 
 
 | 461 | HRESULT (STDMETHODCALLTYPE *GetStreamCount)( | 
 
 
 
 
 | 462 | IMediaObject *This, | 
 
 
 
 
 | 463 | DWORD *pcInputStreams, | 
 
 
 
 
 | 464 | DWORD *pcOutputStreams); | 
 
 
 
 
 | 465 |  | 
 
 
 
 
 | 466 | HRESULT (STDMETHODCALLTYPE *GetInputStreamInfo)( | 
 
 
 
 
 | 467 | IMediaObject *This, | 
 
 
 
 
 | 468 | DWORD dwInputStreamIndex, | 
 
 
 
 
 | 469 | DWORD *pdwFlags); | 
 
 
 
 
 | 470 |  | 
 
 
 
 
 | 471 | HRESULT (STDMETHODCALLTYPE *GetOutputStreamInfo)( | 
 
 
 
 
 | 472 | IMediaObject *This, | 
 
 
 
 
 | 473 | DWORD dwOutputStreamIndex, | 
 
 
 
 
 | 474 | DWORD *pdwFlags); | 
 
 
 
 
 | 475 |  | 
 
 
 
 
 | 476 | HRESULT (STDMETHODCALLTYPE *GetInputType)( | 
 
 
 
 
 | 477 | IMediaObject *This, | 
 
 
 
 
 | 478 | DWORD dwInputStreamIndex, | 
 
 
 
 
 | 479 | DWORD dwTypeIndex, | 
 
 
 
 
 | 480 | DMO_MEDIA_TYPE *pmt); | 
 
 
 
 
 | 481 |  | 
 
 
 
 
 | 482 | HRESULT (STDMETHODCALLTYPE *GetOutputType)( | 
 
 
 
 
 | 483 | IMediaObject *This, | 
 
 
 
 
 | 484 | DWORD dwOutputStreamIndex, | 
 
 
 
 
 | 485 | DWORD dwTypeIndex, | 
 
 
 
 
 | 486 | DMO_MEDIA_TYPE *pmt); | 
 
 
 
 
 | 487 |  | 
 
 
 
 
 | 488 | HRESULT (STDMETHODCALLTYPE *SetInputType)( | 
 
 
 
 
 | 489 | IMediaObject *This, | 
 
 
 
 
 | 490 | DWORD dwInputStreamIndex, | 
 
 
 
 
 | 491 | const DMO_MEDIA_TYPE *pmt, | 
 
 
 
 
 | 492 | DWORD dwFlags); | 
 
 
 
 
 | 493 |  | 
 
 
 
 
 | 494 | HRESULT (STDMETHODCALLTYPE *SetOutputType)( | 
 
 
 
 
 | 495 | IMediaObject *This, | 
 
 
 
 
 | 496 | DWORD dwOutputStreamIndex, | 
 
 
 
 
 | 497 | const DMO_MEDIA_TYPE *pmt, | 
 
 
 
 
 | 498 | DWORD dwFlags); | 
 
 
 
 
 | 499 |  | 
 
 
 
 
 | 500 | HRESULT (STDMETHODCALLTYPE *GetInputCurrentType)( | 
 
 
 
 
 | 501 | IMediaObject *This, | 
 
 
 
 
 | 502 | DWORD dwInputStreamIndex, | 
 
 
 
 
 | 503 | DMO_MEDIA_TYPE *pmt); | 
 
 
 
 
 | 504 |  | 
 
 
 
 
 | 505 | HRESULT (STDMETHODCALLTYPE *GetOutputCurrentType)( | 
 
 
 
 
 | 506 | IMediaObject *This, | 
 
 
 
 
 | 507 | DWORD dwOutputStreamIndex, | 
 
 
 
 
 | 508 | DMO_MEDIA_TYPE *pmt); | 
 
 
 
 
 | 509 |  | 
 
 
 
 
 | 510 | HRESULT (STDMETHODCALLTYPE *GetInputSizeInfo)( | 
 
 
 
 
 | 511 | IMediaObject *This, | 
 
 
 
 
 | 512 | DWORD dwInputStreamIndex, | 
 
 
 
 
 | 513 | DWORD *pcbSize, | 
 
 
 
 
 | 514 | DWORD *pcbMaxLookahead, | 
 
 
 
 
 | 515 | DWORD *pcbAlignment); | 
 
 
 
 
 | 516 |  | 
 
 
 
 
 | 517 | HRESULT (STDMETHODCALLTYPE *GetOutputSizeInfo)( | 
 
 
 
 
 | 518 | IMediaObject *This, | 
 
 
 
 
 | 519 | DWORD dwOutputStreamIndex, | 
 
 
 
 
 | 520 | DWORD *pcbSize, | 
 
 
 
 
 | 521 | DWORD *pcbAlignment); | 
 
 
 
 
 | 522 |  | 
 
 
 
 
 | 523 | HRESULT (STDMETHODCALLTYPE *GetInputMaxLatency)( | 
 
 
 
 
 | 524 | IMediaObject *This, | 
 
 
 
 
 | 525 | DWORD dwInputStreamIndex, | 
 
 
 
 
 | 526 | REFERENCE_TIME *prtMaxLatency); | 
 
 
 
 
 | 527 |  | 
 
 
 
 
 | 528 | HRESULT (STDMETHODCALLTYPE *SetInputMaxLatency)( | 
 
 
 
 
 | 529 | IMediaObject *This, | 
 
 
 
 
 | 530 | DWORD dwInputStreamIndex, | 
 
 
 
 
 | 531 | REFERENCE_TIME rtMaxLatency); | 
 
 
 
 
 | 532 |  | 
 
 
 
 
 | 533 | HRESULT (STDMETHODCALLTYPE *Flush)( | 
 
 
 
 
 | 534 | IMediaObject *This); | 
 
 
 
 
 | 535 |  | 
 
 
 
 
 | 536 | HRESULT (STDMETHODCALLTYPE *Discontinuity)( | 
 
 
 
 
 | 537 | IMediaObject *This, | 
 
 
 
 
 | 538 | DWORD dwInputStreamIndex); | 
 
 
 
 
 | 539 |  | 
 
 
 
 
 | 540 | HRESULT (STDMETHODCALLTYPE *AllocateStreamingResources)( | 
 
 
 
 
 | 541 | IMediaObject *This); | 
 
 
 
 
 | 542 |  | 
 
 
 
 
 | 543 | HRESULT (STDMETHODCALLTYPE *FreeStreamingResources)( | 
 
 
 
 
 | 544 | IMediaObject *This); | 
 
 
 
 
 | 545 |  | 
 
 
 
 
 | 546 | HRESULT (STDMETHODCALLTYPE *GetInputStatus)( | 
 
 
 
 
 | 547 | IMediaObject *This, | 
 
 
 
 
 | 548 | DWORD dwInputStreamIndex, | 
 
 
 
 
 | 549 | DWORD *dwFlags); | 
 
 
 
 
 | 550 |  | 
 
 
 
 
 | 551 | HRESULT (STDMETHODCALLTYPE *ProcessInput)( | 
 
 
 
 
 | 552 | IMediaObject *This, | 
 
 
 
 
 | 553 | DWORD dwInputStreamIndex, | 
 
 
 
 
 | 554 | IMediaBuffer *pBuffer, | 
 
 
 
 
 | 555 | DWORD dwFlags, | 
 
 
 
 
 | 556 | REFERENCE_TIME rtTimestamp, | 
 
 
 
 
 | 557 | REFERENCE_TIME rtTimelength); | 
 
 
 
 
 | 558 |  | 
 
 
 
 
 | 559 | HRESULT (STDMETHODCALLTYPE *ProcessOutput)( | 
 
 
 
 
 | 560 | IMediaObject *This, | 
 
 
 
 
 | 561 | DWORD dwFlags, | 
 
 
 
 
 | 562 | DWORD cOutputBufferCount, | 
 
 
 
 
 | 563 | DMO_OUTPUT_DATA_BUFFER *pOutputBuffers, | 
 
 
 
 
 | 564 | DWORD *pdwStatus); | 
 
 
 
 
 | 565 |  | 
 
 
 
 
 | 566 | HRESULT (STDMETHODCALLTYPE *Lock)( | 
 
 
 
 
 | 567 | IMediaObject *This, | 
 
 
 
 
 | 568 | LONG bLock); | 
 
 
 
 
 | 569 |  | 
 
 
 
 
 | 570 | END_INTERFACE | 
 
 
 
 
 | 571 | } IMediaObjectVtbl; | 
 
 
 
 
 | 572 |  | 
 
 
 
 
 | 573 | interface IMediaObject { | 
 
 
 
 
 | 574 | CONST_VTBL IMediaObjectVtbl* lpVtbl; | 
 
 
 
 
 | 575 | }; | 
 
 
 
 
 | 576 |  | 
 
 
 
 
 | 577 | #ifdef COBJMACROS | 
 
 
 
 
 | 578 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 
 
 
 
 | 579 | /*** IUnknown methods ***/ | 
 
 
 
 
 | 580 | #define IMediaObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 
 
 
 
 | 581 | #define IMediaObject_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 
 
 
 
 | 582 | #define IMediaObject_Release(This) (This)->lpVtbl->Release(This) | 
 
 
 
 
 | 583 | /*** IMediaObject methods ***/ | 
 
 
 
 
 | 584 | #define IMediaObject_GetStreamCount(This,pcInputStreams,pcOutputStreams) (This)->lpVtbl->GetStreamCount(This,pcInputStreams,pcOutputStreams) | 
 
 
 
 
 | 585 | #define IMediaObject_GetInputStreamInfo(This,dwInputStreamIndex,pdwFlags) (This)->lpVtbl->GetInputStreamInfo(This,dwInputStreamIndex,pdwFlags) | 
 
 
 
 
 | 586 | #define IMediaObject_GetOutputStreamInfo(This,dwOutputStreamIndex,pdwFlags) (This)->lpVtbl->GetOutputStreamInfo(This,dwOutputStreamIndex,pdwFlags) | 
 
 
 
 
 | 587 | #define IMediaObject_GetInputType(This,dwInputStreamIndex,dwTypeIndex,pmt) (This)->lpVtbl->GetInputType(This,dwInputStreamIndex,dwTypeIndex,pmt) | 
 
 
 
 
 | 588 | #define IMediaObject_GetOutputType(This,dwOutputStreamIndex,dwTypeIndex,pmt) (This)->lpVtbl->GetOutputType(This,dwOutputStreamIndex,dwTypeIndex,pmt) | 
 
 
 
 
 | 589 | #define IMediaObject_SetInputType(This,dwInputStreamIndex,pmt,dwFlags) (This)->lpVtbl->SetInputType(This,dwInputStreamIndex,pmt,dwFlags) | 
 
 
 
 
 | 590 | #define IMediaObject_SetOutputType(This,dwOutputStreamIndex,pmt,dwFlags) (This)->lpVtbl->SetOutputType(This,dwOutputStreamIndex,pmt,dwFlags) | 
 
 
 
 
 | 591 | #define IMediaObject_GetInputCurrentType(This,dwInputStreamIndex,pmt) (This)->lpVtbl->GetInputCurrentType(This,dwInputStreamIndex,pmt) | 
 
 
 
 
 | 592 | #define IMediaObject_GetOutputCurrentType(This,dwOutputStreamIndex,pmt) (This)->lpVtbl->GetOutputCurrentType(This,dwOutputStreamIndex,pmt) | 
 
 
 
 
 | 593 | #define IMediaObject_GetInputSizeInfo(This,dwInputStreamIndex,pcbSize,pcbMaxLookahead,pcbAlignment) (This)->lpVtbl->GetInputSizeInfo(This,dwInputStreamIndex,pcbSize,pcbMaxLookahead,pcbAlignment) | 
 
 
 
 
 | 594 | #define IMediaObject_GetOutputSizeInfo(This,dwOutputStreamIndex,pcbSize,pcbAlignment) (This)->lpVtbl->GetOutputSizeInfo(This,dwOutputStreamIndex,pcbSize,pcbAlignment) | 
 
 
 
 
 | 595 | #define IMediaObject_GetInputMaxLatency(This,dwInputStreamIndex,prtMaxLatency) (This)->lpVtbl->GetInputMaxLatency(This,dwInputStreamIndex,prtMaxLatency) | 
 
 
 
 
 | 596 | #define IMediaObject_SetInputMaxLatency(This,dwInputStreamIndex,rtMaxLatency) (This)->lpVtbl->SetInputMaxLatency(This,dwInputStreamIndex,rtMaxLatency) | 
 
 
 
 
 | 597 | #define IMediaObject_Flush(This) (This)->lpVtbl->Flush(This) | 
 
 
 
 
 | 598 | #define IMediaObject_Discontinuity(This,dwInputStreamIndex) (This)->lpVtbl->Discontinuity(This,dwInputStreamIndex) | 
 
 
 
 
 | 599 | #define IMediaObject_AllocateStreamingResources(This) (This)->lpVtbl->AllocateStreamingResources(This) | 
 
 
 
 
 | 600 | #define IMediaObject_FreeStreamingResources(This) (This)->lpVtbl->FreeStreamingResources(This) | 
 
 
 
 
 | 601 | #define IMediaObject_GetInputStatus(This,dwInputStreamIndex,dwFlags) (This)->lpVtbl->GetInputStatus(This,dwInputStreamIndex,dwFlags) | 
 
 
 
 
 | 602 | #define IMediaObject_ProcessInput(This,dwInputStreamIndex,pBuffer,dwFlags,rtTimestamp,rtTimelength) (This)->lpVtbl->ProcessInput(This,dwInputStreamIndex,pBuffer,dwFlags,rtTimestamp,rtTimelength) | 
 
 
 
 
 | 603 | #define IMediaObject_ProcessOutput(This,dwFlags,cOutputBufferCount,pOutputBuffers,pdwStatus) (This)->lpVtbl->ProcessOutput(This,dwFlags,cOutputBufferCount,pOutputBuffers,pdwStatus) | 
 
 
 
 
 | 604 | #define IMediaObject_Lock(This,bLock) (This)->lpVtbl->Lock(This,bLock) | 
 
 
 
 
 | 605 | #else | 
 
 
 
 
 | 606 | /*** IUnknown methods ***/ | 
 
 
 
 
 | 607 | static FORCEINLINE HRESULT IMediaObject_QueryInterface(IMediaObject* This,REFIID riid,void **ppvObject) { | 
 
 
 
 
 | 608 | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 
 
 
 
 | 609 | } | 
 
 
 
 
 | 610 | static FORCEINLINE ULONG IMediaObject_AddRef(IMediaObject* This) { | 
 
 
 
 
 | 611 | return This->lpVtbl->AddRef(This); | 
 
 
 
 
 | 612 | } | 
 
 
 
 
 | 613 | static FORCEINLINE ULONG IMediaObject_Release(IMediaObject* This) { | 
 
 
 
 
 | 614 | return This->lpVtbl->Release(This); | 
 
 
 
 
 | 615 | } | 
 
 
 
 
 | 616 | /*** IMediaObject methods ***/ | 
 
 
 
 
 | 617 | static FORCEINLINE HRESULT IMediaObject_GetStreamCount(IMediaObject* This,DWORD *pcInputStreams,DWORD *pcOutputStreams) { | 
 
 
 
 
 | 618 | return This->lpVtbl->GetStreamCount(This,pcInputStreams,pcOutputStreams); | 
 
 
 
 
 | 619 | } | 
 
 
 
 
 | 620 | static FORCEINLINE HRESULT IMediaObject_GetInputStreamInfo(IMediaObject* This,DWORD dwInputStreamIndex,DWORD *pdwFlags) { | 
 
 
 
 
 | 621 | return This->lpVtbl->GetInputStreamInfo(This,dwInputStreamIndex,pdwFlags); | 
 
 
 
 
 | 622 | } | 
 
 
 
 
 | 623 | static FORCEINLINE HRESULT IMediaObject_GetOutputStreamInfo(IMediaObject* This,DWORD dwOutputStreamIndex,DWORD *pdwFlags) { | 
 
 
 
 
 | 624 | return This->lpVtbl->GetOutputStreamInfo(This,dwOutputStreamIndex,pdwFlags); | 
 
 
 
 
 | 625 | } | 
 
 
 
 
 | 626 | static FORCEINLINE HRESULT IMediaObject_GetInputType(IMediaObject* This,DWORD dwInputStreamIndex,DWORD dwTypeIndex,DMO_MEDIA_TYPE *pmt) { | 
 
 
 
 
 | 627 | return This->lpVtbl->GetInputType(This,dwInputStreamIndex,dwTypeIndex,pmt); | 
 
 
 
 
 | 628 | } | 
 
 
 
 
 | 629 | static FORCEINLINE HRESULT IMediaObject_GetOutputType(IMediaObject* This,DWORD dwOutputStreamIndex,DWORD dwTypeIndex,DMO_MEDIA_TYPE *pmt) { | 
 
 
 
 
 | 630 | return This->lpVtbl->GetOutputType(This,dwOutputStreamIndex,dwTypeIndex,pmt); | 
 
 
 
 
 | 631 | } | 
 
 
 
 
 | 632 | static FORCEINLINE HRESULT IMediaObject_SetInputType(IMediaObject* This,DWORD dwInputStreamIndex,const DMO_MEDIA_TYPE *pmt,DWORD dwFlags) { | 
 
 
 
 
 | 633 | return This->lpVtbl->SetInputType(This,dwInputStreamIndex,pmt,dwFlags); | 
 
 
 
 
 | 634 | } | 
 
 
 
 
 | 635 | static FORCEINLINE HRESULT IMediaObject_SetOutputType(IMediaObject* This,DWORD dwOutputStreamIndex,const DMO_MEDIA_TYPE *pmt,DWORD dwFlags) { | 
 
 
 
 
 | 636 | return This->lpVtbl->SetOutputType(This,dwOutputStreamIndex,pmt,dwFlags); | 
 
 
 
 
 | 637 | } | 
 
 
 
 
 | 638 | static FORCEINLINE HRESULT IMediaObject_GetInputCurrentType(IMediaObject* This,DWORD dwInputStreamIndex,DMO_MEDIA_TYPE *pmt) { | 
 
 
 
 
 | 639 | return This->lpVtbl->GetInputCurrentType(This,dwInputStreamIndex,pmt); | 
 
 
 
 
 | 640 | } | 
 
 
 
 
 | 641 | static FORCEINLINE HRESULT IMediaObject_GetOutputCurrentType(IMediaObject* This,DWORD dwOutputStreamIndex,DMO_MEDIA_TYPE *pmt) { | 
 
 
 
 
 | 642 | return This->lpVtbl->GetOutputCurrentType(This,dwOutputStreamIndex,pmt); | 
 
 
 
 
 | 643 | } | 
 
 
 
 
 | 644 | static FORCEINLINE HRESULT IMediaObject_GetInputSizeInfo(IMediaObject* This,DWORD dwInputStreamIndex,DWORD *pcbSize,DWORD *pcbMaxLookahead,DWORD *pcbAlignment) { | 
 
 
 
 
 | 645 | return This->lpVtbl->GetInputSizeInfo(This,dwInputStreamIndex,pcbSize,pcbMaxLookahead,pcbAlignment); | 
 
 
 
 
 | 646 | } | 
 
 
 
 
 | 647 | static FORCEINLINE HRESULT IMediaObject_GetOutputSizeInfo(IMediaObject* This,DWORD dwOutputStreamIndex,DWORD *pcbSize,DWORD *pcbAlignment) { | 
 
 
 
 
 | 648 | return This->lpVtbl->GetOutputSizeInfo(This,dwOutputStreamIndex,pcbSize,pcbAlignment); | 
 
 
 
 
 | 649 | } | 
 
 
 
 
 | 650 | static FORCEINLINE HRESULT IMediaObject_GetInputMaxLatency(IMediaObject* This,DWORD dwInputStreamIndex,REFERENCE_TIME *prtMaxLatency) { | 
 
 
 
 
 | 651 | return This->lpVtbl->GetInputMaxLatency(This,dwInputStreamIndex,prtMaxLatency); | 
 
 
 
 
 | 652 | } | 
 
 
 
 
 | 653 | static FORCEINLINE HRESULT IMediaObject_SetInputMaxLatency(IMediaObject* This,DWORD dwInputStreamIndex,REFERENCE_TIME rtMaxLatency) { | 
 
 
 
 
 | 654 | return This->lpVtbl->SetInputMaxLatency(This,dwInputStreamIndex,rtMaxLatency); | 
 
 
 
 
 | 655 | } | 
 
 
 
 
 | 656 | static FORCEINLINE HRESULT IMediaObject_Flush(IMediaObject* This) { | 
 
 
 
 
 | 657 | return This->lpVtbl->Flush(This); | 
 
 
 
 
 | 658 | } | 
 
 
 
 
 | 659 | static FORCEINLINE HRESULT IMediaObject_Discontinuity(IMediaObject* This,DWORD dwInputStreamIndex) { | 
 
 
 
 
 | 660 | return This->lpVtbl->Discontinuity(This,dwInputStreamIndex); | 
 
 
 
 
 | 661 | } | 
 
 
 
 
 | 662 | static FORCEINLINE HRESULT IMediaObject_AllocateStreamingResources(IMediaObject* This) { | 
 
 
 
 
 | 663 | return This->lpVtbl->AllocateStreamingResources(This); | 
 
 
 
 
 | 664 | } | 
 
 
 
 
 | 665 | static FORCEINLINE HRESULT IMediaObject_FreeStreamingResources(IMediaObject* This) { | 
 
 
 
 
 | 666 | return This->lpVtbl->FreeStreamingResources(This); | 
 
 
 
 
 | 667 | } | 
 
 
 
 
 | 668 | static FORCEINLINE HRESULT IMediaObject_GetInputStatus(IMediaObject* This,DWORD dwInputStreamIndex,DWORD *dwFlags) { | 
 
 
 
 
 | 669 | return This->lpVtbl->GetInputStatus(This,dwInputStreamIndex,dwFlags); | 
 
 
 
 
 | 670 | } | 
 
 
 
 
 | 671 | static FORCEINLINE HRESULT IMediaObject_ProcessInput(IMediaObject* This,DWORD dwInputStreamIndex,IMediaBuffer *pBuffer,DWORD dwFlags,REFERENCE_TIME rtTimestamp,REFERENCE_TIME rtTimelength) { | 
 
 
 
 
 | 672 | return This->lpVtbl->ProcessInput(This,dwInputStreamIndex,pBuffer,dwFlags,rtTimestamp,rtTimelength); | 
 
 
 
 
 | 673 | } | 
 
 
 
 
 | 674 | static FORCEINLINE HRESULT IMediaObject_ProcessOutput(IMediaObject* This,DWORD dwFlags,DWORD cOutputBufferCount,DMO_OUTPUT_DATA_BUFFER *pOutputBuffers,DWORD *pdwStatus) { | 
 
 
 
 
 | 675 | return This->lpVtbl->ProcessOutput(This,dwFlags,cOutputBufferCount,pOutputBuffers,pdwStatus); | 
 
 
 
 
 | 676 | } | 
 
 
 
 
 | 677 | static FORCEINLINE HRESULT IMediaObject_Lock(IMediaObject* This,LONG bLock) { | 
 
 
 
 
 | 678 | return This->lpVtbl->Lock(This,bLock); | 
 
 
 
 
 | 679 | } | 
 
 
 
 
 | 680 | #endif | 
 
 
 
 
 | 681 | #endif | 
 
 
 
 
 | 682 |  | 
 
 
 
 
 | 683 | #endif | 
 
 
 
 
 | 684 |  | 
 
 
 
 
 | 685 |  | 
 
 
 
 
 | 686 | #endif  /* __IMediaObject_INTERFACE_DEFINED__ */ | 
 
 
 
 
 | 687 |  | 
 
 
 
 
 | 688 | /***************************************************************************** | 
 
 
 
 
 | 689 | * IMediaObjectInPlace interface | 
 
 
 
 
 | 690 | */ | 
 
 
 
 
 | 691 | #ifndef __IMediaObjectInPlace_INTERFACE_DEFINED__ | 
 
 
 
 
 | 692 | #define __IMediaObjectInPlace_INTERFACE_DEFINED__ | 
 
 
 
 
 | 693 |  | 
 
 
 
 
 | 694 | DEFINE_GUID(IID_IMediaObjectInPlace, 0x651b9ad0, 0x0fc7, 0x4aa9, 0x95,0x38, 0xd8,0x99,0x31,0x01,0x07,0x41); | 
 
 
 
 
 | 695 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 
 
 
 
 | 696 | MIDL_INTERFACE("651b9ad0-0fc7-4aa9-9538-d89931010741") | 
 
 
 
 
 | 697 | IMediaObjectInPlace : public IUnknown | 
 
 
 
 
 | 698 | { | 
 
 
 
 
 | 699 | virtual HRESULT STDMETHODCALLTYPE Process( | 
 
 
 
 
 | 700 | ULONG ulSize, | 
 
 
 
 
 | 701 | BYTE *pData, | 
 
 
 
 
 | 702 | REFERENCE_TIME refTimeStart, | 
 
 
 
 
 | 703 | DWORD dwFlags) = 0; | 
 
 
 
 
 | 704 |  | 
 
 
 
 
 | 705 | virtual HRESULT STDMETHODCALLTYPE Clone( | 
 
 
 
 
 | 706 | IMediaObjectInPlace **ppMediaObject) = 0; | 
 
 
 
 
 | 707 |  | 
 
 
 
 
 | 708 | virtual HRESULT STDMETHODCALLTYPE GetLatency( | 
 
 
 
 
 | 709 | REFERENCE_TIME *pLatencyTime) = 0; | 
 
 
 
 
 | 710 |  | 
 
 
 
 
 | 711 | }; | 
 
 
 
 
 | 712 | #ifdef __CRT_UUID_DECL | 
 
 
 
 
 | 713 | __CRT_UUID_DECL(IMediaObjectInPlace, 0x651b9ad0, 0x0fc7, 0x4aa9, 0x95,0x38, 0xd8,0x99,0x31,0x01,0x07,0x41) | 
 
 
 
 
 | 714 | #endif | 
 
 
 
 
 | 715 | #else | 
 
 
 
 
 | 716 | typedef struct IMediaObjectInPlaceVtbl { | 
 
 
 
 
 | 717 | BEGIN_INTERFACE | 
 
 
 
 
 | 718 |  | 
 
 
 
 
 | 719 | /*** IUnknown methods ***/ | 
 
 
 
 
 | 720 | HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 
 
 
 
 | 721 | IMediaObjectInPlace *This, | 
 
 
 
 
 | 722 | REFIID riid, | 
 
 
 
 
 | 723 | void **ppvObject); | 
 
 
 
 
 | 724 |  | 
 
 
 
 
 | 725 | ULONG (STDMETHODCALLTYPE *AddRef)( | 
 
 
 
 
 | 726 | IMediaObjectInPlace *This); | 
 
 
 
 
 | 727 |  | 
 
 
 
 
 | 728 | ULONG (STDMETHODCALLTYPE *Release)( | 
 
 
 
 
 | 729 | IMediaObjectInPlace *This); | 
 
 
 
 
 | 730 |  | 
 
 
 
 
 | 731 | /*** IMediaObjectInPlace methods ***/ | 
 
 
 
 
 | 732 | HRESULT (STDMETHODCALLTYPE *Process)( | 
 
 
 
 
 | 733 | IMediaObjectInPlace *This, | 
 
 
 
 
 | 734 | ULONG ulSize, | 
 
 
 
 
 | 735 | BYTE *pData, | 
 
 
 
 
 | 736 | REFERENCE_TIME refTimeStart, | 
 
 
 
 
 | 737 | DWORD dwFlags); | 
 
 
 
 
 | 738 |  | 
 
 
 
 
 | 739 | HRESULT (STDMETHODCALLTYPE *Clone)( | 
 
 
 
 
 | 740 | IMediaObjectInPlace *This, | 
 
 
 
 
 | 741 | IMediaObjectInPlace **ppMediaObject); | 
 
 
 
 
 | 742 |  | 
 
 
 
 
 | 743 | HRESULT (STDMETHODCALLTYPE *GetLatency)( | 
 
 
 
 
 | 744 | IMediaObjectInPlace *This, | 
 
 
 
 
 | 745 | REFERENCE_TIME *pLatencyTime); | 
 
 
 
 
 | 746 |  | 
 
 
 
 
 | 747 | END_INTERFACE | 
 
 
 
 
 | 748 | } IMediaObjectInPlaceVtbl; | 
 
 
 
 
 | 749 |  | 
 
 
 
 
 | 750 | interface IMediaObjectInPlace { | 
 
 
 
 
 | 751 | CONST_VTBL IMediaObjectInPlaceVtbl* lpVtbl; | 
 
 
 
 
 | 752 | }; | 
 
 
 
 
 | 753 |  | 
 
 
 
 
 | 754 | #ifdef COBJMACROS | 
 
 
 
 
 | 755 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 
 
 
 
 | 756 | /*** IUnknown methods ***/ | 
 
 
 
 
 | 757 | #define IMediaObjectInPlace_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 
 
 
 
 | 758 | #define IMediaObjectInPlace_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 
 
 
 
 | 759 | #define IMediaObjectInPlace_Release(This) (This)->lpVtbl->Release(This) | 
 
 
 
 
 | 760 | /*** IMediaObjectInPlace methods ***/ | 
 
 
 
 
 | 761 | #define IMediaObjectInPlace_Process(This,ulSize,pData,refTimeStart,dwFlags) (This)->lpVtbl->Process(This,ulSize,pData,refTimeStart,dwFlags) | 
 
 
 
 
 | 762 | #define IMediaObjectInPlace_Clone(This,ppMediaObject) (This)->lpVtbl->Clone(This,ppMediaObject) | 
 
 
 
 
 | 763 | #define IMediaObjectInPlace_GetLatency(This,pLatencyTime) (This)->lpVtbl->GetLatency(This,pLatencyTime) | 
 
 
 
 
 | 764 | #else | 
 
 
 
 
 | 765 | /*** IUnknown methods ***/ | 
 
 
 
 
 | 766 | static FORCEINLINE HRESULT IMediaObjectInPlace_QueryInterface(IMediaObjectInPlace* This,REFIID riid,void **ppvObject) { | 
 
 
 
 
 | 767 | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 
 
 
 
 | 768 | } | 
 
 
 
 
 | 769 | static FORCEINLINE ULONG IMediaObjectInPlace_AddRef(IMediaObjectInPlace* This) { | 
 
 
 
 
 | 770 | return This->lpVtbl->AddRef(This); | 
 
 
 
 
 | 771 | } | 
 
 
 
 
 | 772 | static FORCEINLINE ULONG IMediaObjectInPlace_Release(IMediaObjectInPlace* This) { | 
 
 
 
 
 | 773 | return This->lpVtbl->Release(This); | 
 
 
 
 
 | 774 | } | 
 
 
 
 
 | 775 | /*** IMediaObjectInPlace methods ***/ | 
 
 
 
 
 | 776 | static FORCEINLINE HRESULT IMediaObjectInPlace_Process(IMediaObjectInPlace* This,ULONG ulSize,BYTE *pData,REFERENCE_TIME refTimeStart,DWORD dwFlags) { | 
 
 
 
 
 | 777 | return This->lpVtbl->Process(This,ulSize,pData,refTimeStart,dwFlags); | 
 
 
 
 
 | 778 | } | 
 
 
 
 
 | 779 | static FORCEINLINE HRESULT IMediaObjectInPlace_Clone(IMediaObjectInPlace* This,IMediaObjectInPlace **ppMediaObject) { | 
 
 
 
 
 | 780 | return This->lpVtbl->Clone(This,ppMediaObject); | 
 
 
 
 
 | 781 | } | 
 
 
 
 
 | 782 | static FORCEINLINE HRESULT IMediaObjectInPlace_GetLatency(IMediaObjectInPlace* This,REFERENCE_TIME *pLatencyTime) { | 
 
 
 
 
 | 783 | return This->lpVtbl->GetLatency(This,pLatencyTime); | 
 
 
 
 
 | 784 | } | 
 
 
 
 
 | 785 | #endif | 
 
 
 
 
 | 786 | #endif | 
 
 
 
 
 | 787 |  | 
 
 
 
 
 | 788 | #endif | 
 
 
 
 
 | 789 |  | 
 
 
 
 
 | 790 |  | 
 
 
 
 
 | 791 | #endif  /* __IMediaObjectInPlace_INTERFACE_DEFINED__ */ | 
 
 
 
 
 | 792 |  | 
 
 
 
 
 | 793 | enum _DMO_QUALITY_STATUS_FLAGS { | 
 
 
 
 
 | 794 | DMO_QUALITY_STATUS_ENABLED = 0x1 | 
 
 
 
 
 | 795 | }; | 
 
 
 
 
 | 796 | /***************************************************************************** | 
 
 
 
 
 | 797 | * IDMOQualityControl interface | 
 
 
 
 
 | 798 | */ | 
 
 
 
 
 | 799 | #ifndef __IDMOQualityControl_INTERFACE_DEFINED__ | 
 
 
 
 
 | 800 | #define __IDMOQualityControl_INTERFACE_DEFINED__ | 
 
 
 
 
 | 801 |  | 
 
 
 
 
 | 802 | DEFINE_GUID(IID_IDMOQualityControl, 0x65abea96, 0xcf36, 0x453f, 0xaf,0x8a, 0x70,0x5e,0x98,0xf1,0x62,0x60); | 
 
 
 
 
 | 803 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 
 
 
 
 | 804 | MIDL_INTERFACE("65abea96-cf36-453f-af8a-705e98f16260") | 
 
 
 
 
 | 805 | IDMOQualityControl : public IUnknown | 
 
 
 
 
 | 806 | { | 
 
 
 
 
 | 807 | virtual HRESULT STDMETHODCALLTYPE SetNow( | 
 
 
 
 
 | 808 | REFERENCE_TIME now) = 0; | 
 
 
 
 
 | 809 |  | 
 
 
 
 
 | 810 | virtual HRESULT STDMETHODCALLTYPE SetStatus( | 
 
 
 
 
 | 811 | DWORD flags) = 0; | 
 
 
 
 
 | 812 |  | 
 
 
 
 
 | 813 | virtual HRESULT STDMETHODCALLTYPE GetStatus( | 
 
 
 
 
 | 814 | DWORD *flags) = 0; | 
 
 
 
 
 | 815 |  | 
 
 
 
 
 | 816 | }; | 
 
 
 
 
 | 817 | #ifdef __CRT_UUID_DECL | 
 
 
 
 
 | 818 | __CRT_UUID_DECL(IDMOQualityControl, 0x65abea96, 0xcf36, 0x453f, 0xaf,0x8a, 0x70,0x5e,0x98,0xf1,0x62,0x60) | 
 
 
 
 
 | 819 | #endif | 
 
 
 
 
 | 820 | #else | 
 
 
 
 
 | 821 | typedef struct IDMOQualityControlVtbl { | 
 
 
 
 
 | 822 | BEGIN_INTERFACE | 
 
 
 
 
 | 823 |  | 
 
 
 
 
 | 824 | /*** IUnknown methods ***/ | 
 
 
 
 
 | 825 | HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 
 
 
 
 | 826 | IDMOQualityControl *This, | 
 
 
 
 
 | 827 | REFIID riid, | 
 
 
 
 
 | 828 | void **ppvObject); | 
 
 
 
 
 | 829 |  | 
 
 
 
 
 | 830 | ULONG (STDMETHODCALLTYPE *AddRef)( | 
 
 
 
 
 | 831 | IDMOQualityControl *This); | 
 
 
 
 
 | 832 |  | 
 
 
 
 
 | 833 | ULONG (STDMETHODCALLTYPE *Release)( | 
 
 
 
 
 | 834 | IDMOQualityControl *This); | 
 
 
 
 
 | 835 |  | 
 
 
 
 
 | 836 | /*** IDMOQualityControl methods ***/ | 
 
 
 
 
 | 837 | HRESULT (STDMETHODCALLTYPE *SetNow)( | 
 
 
 
 
 | 838 | IDMOQualityControl *This, | 
 
 
 
 
 | 839 | REFERENCE_TIME now); | 
 
 
 
 
 | 840 |  | 
 
 
 
 
 | 841 | HRESULT (STDMETHODCALLTYPE *SetStatus)( | 
 
 
 
 
 | 842 | IDMOQualityControl *This, | 
 
 
 
 
 | 843 | DWORD flags); | 
 
 
 
 
 | 844 |  | 
 
 
 
 
 | 845 | HRESULT (STDMETHODCALLTYPE *GetStatus)( | 
 
 
 
 
 | 846 | IDMOQualityControl *This, | 
 
 
 
 
 | 847 | DWORD *flags); | 
 
 
 
 
 | 848 |  | 
 
 
 
 
 | 849 | END_INTERFACE | 
 
 
 
 
 | 850 | } IDMOQualityControlVtbl; | 
 
 
 
 
 | 851 |  | 
 
 
 
 
 | 852 | interface IDMOQualityControl { | 
 
 
 
 
 | 853 | CONST_VTBL IDMOQualityControlVtbl* lpVtbl; | 
 
 
 
 
 | 854 | }; | 
 
 
 
 
 | 855 |  | 
 
 
 
 
 | 856 | #ifdef COBJMACROS | 
 
 
 
 
 | 857 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 
 
 
 
 | 858 | /*** IUnknown methods ***/ | 
 
 
 
 
 | 859 | #define IDMOQualityControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 
 
 
 
 | 860 | #define IDMOQualityControl_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 
 
 
 
 | 861 | #define IDMOQualityControl_Release(This) (This)->lpVtbl->Release(This) | 
 
 
 
 
 | 862 | /*** IDMOQualityControl methods ***/ | 
 
 
 
 
 | 863 | #define IDMOQualityControl_SetNow(This,now) (This)->lpVtbl->SetNow(This,now) | 
 
 
 
 
 | 864 | #define IDMOQualityControl_SetStatus(This,flags) (This)->lpVtbl->SetStatus(This,flags) | 
 
 
 
 
 | 865 | #define IDMOQualityControl_GetStatus(This,flags) (This)->lpVtbl->GetStatus(This,flags) | 
 
 
 
 
 | 866 | #else | 
 
 
 
 
 | 867 | /*** IUnknown methods ***/ | 
 
 
 
 
 | 868 | static FORCEINLINE HRESULT IDMOQualityControl_QueryInterface(IDMOQualityControl* This,REFIID riid,void **ppvObject) { | 
 
 
 
 
 | 869 | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 
 
 
 
 | 870 | } | 
 
 
 
 
 | 871 | static FORCEINLINE ULONG IDMOQualityControl_AddRef(IDMOQualityControl* This) { | 
 
 
 
 
 | 872 | return This->lpVtbl->AddRef(This); | 
 
 
 
 
 | 873 | } | 
 
 
 
 
 | 874 | static FORCEINLINE ULONG IDMOQualityControl_Release(IDMOQualityControl* This) { | 
 
 
 
 
 | 875 | return This->lpVtbl->Release(This); | 
 
 
 
 
 | 876 | } | 
 
 
 
 
 | 877 | /*** IDMOQualityControl methods ***/ | 
 
 
 
 
 | 878 | static FORCEINLINE HRESULT IDMOQualityControl_SetNow(IDMOQualityControl* This,REFERENCE_TIME now) { | 
 
 
 
 
 | 879 | return This->lpVtbl->SetNow(This,now); | 
 
 
 
 
 | 880 | } | 
 
 
 
 
 | 881 | static FORCEINLINE HRESULT IDMOQualityControl_SetStatus(IDMOQualityControl* This,DWORD flags) { | 
 
 
 
 
 | 882 | return This->lpVtbl->SetStatus(This,flags); | 
 
 
 
 
 | 883 | } | 
 
 
 
 
 | 884 | static FORCEINLINE HRESULT IDMOQualityControl_GetStatus(IDMOQualityControl* This,DWORD *flags) { | 
 
 
 
 
 | 885 | return This->lpVtbl->GetStatus(This,flags); | 
 
 
 
 
 | 886 | } | 
 
 
 
 
 | 887 | #endif | 
 
 
 
 
 | 888 | #endif | 
 
 
 
 
 | 889 |  | 
 
 
 
 
 | 890 | #endif | 
 
 
 
 
 | 891 |  | 
 
 
 
 
 | 892 |  | 
 
 
 
 
 | 893 | #endif  /* __IDMOQualityControl_INTERFACE_DEFINED__ */ | 
 
 
 
 
 | 894 |  | 
 
 
 
 
 | 895 | enum _DMO_VIDEO_OUTPUT_STREAM_FLAGS { | 
 
 
 
 
 | 896 | DMO_VOSF_NEEDS_PREVIOUS_SAMPLE = 0x1 | 
 
 
 
 
 | 897 | }; | 
 
 
 
 
 | 898 | /***************************************************************************** | 
 
 
 
 
 | 899 | * IDMOVideoOutputOptimizations interface | 
 
 
 
 
 | 900 | */ | 
 
 
 
 
 | 901 | #ifndef __IDMOVideoOutputOptimizations_INTERFACE_DEFINED__ | 
 
 
 
 
 | 902 | #define __IDMOVideoOutputOptimizations_INTERFACE_DEFINED__ | 
 
 
 
 
 | 903 |  | 
 
 
 
 
 | 904 | DEFINE_GUID(IID_IDMOVideoOutputOptimizations, 0xbe8f4f4e, 0x5b16, 0x4d29, 0xb3,0x50, 0x7f,0x6b,0x5d,0x92,0x98,0xac); | 
 
 
 
 
 | 905 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 
 
 
 
 | 906 | MIDL_INTERFACE("be8f4f4e-5b16-4d29-b350-7f6b5d9298ac") | 
 
 
 
 
 | 907 | IDMOVideoOutputOptimizations : public IUnknown | 
 
 
 
 
 | 908 | { | 
 
 
 
 
 | 909 | virtual HRESULT STDMETHODCALLTYPE QueryOperationModePreferences( | 
 
 
 
 
 | 910 | ULONG index, | 
 
 
 
 
 | 911 | DWORD *flags) = 0; | 
 
 
 
 
 | 912 |  | 
 
 
 
 
 | 913 | virtual HRESULT STDMETHODCALLTYPE SetOperationMode( | 
 
 
 
 
 | 914 | ULONG index, | 
 
 
 
 
 | 915 | DWORD flags) = 0; | 
 
 
 
 
 | 916 |  | 
 
 
 
 
 | 917 | virtual HRESULT STDMETHODCALLTYPE GetCurrentOperationMode( | 
 
 
 
 
 | 918 | ULONG index, | 
 
 
 
 
 | 919 | DWORD *flags) = 0; | 
 
 
 
 
 | 920 |  | 
 
 
 
 
 | 921 | virtual HRESULT STDMETHODCALLTYPE GetCurrentSampleRequirements( | 
 
 
 
 
 | 922 | ULONG index, | 
 
 
 
 
 | 923 | DWORD *flags) = 0; | 
 
 
 
 
 | 924 |  | 
 
 
 
 
 | 925 | }; | 
 
 
 
 
 | 926 | #ifdef __CRT_UUID_DECL | 
 
 
 
 
 | 927 | __CRT_UUID_DECL(IDMOVideoOutputOptimizations, 0xbe8f4f4e, 0x5b16, 0x4d29, 0xb3,0x50, 0x7f,0x6b,0x5d,0x92,0x98,0xac) | 
 
 
 
 
 | 928 | #endif | 
 
 
 
 
 | 929 | #else | 
 
 
 
 
 | 930 | typedef struct IDMOVideoOutputOptimizationsVtbl { | 
 
 
 
 
 | 931 | BEGIN_INTERFACE | 
 
 
 
 
 | 932 |  | 
 
 
 
 
 | 933 | /*** IUnknown methods ***/ | 
 
 
 
 
 | 934 | HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 
 
 
 
 | 935 | IDMOVideoOutputOptimizations *This, | 
 
 
 
 
 | 936 | REFIID riid, | 
 
 
 
 
 | 937 | void **ppvObject); | 
 
 
 
 
 | 938 |  | 
 
 
 
 
 | 939 | ULONG (STDMETHODCALLTYPE *AddRef)( | 
 
 
 
 
 | 940 | IDMOVideoOutputOptimizations *This); | 
 
 
 
 
 | 941 |  | 
 
 
 
 
 | 942 | ULONG (STDMETHODCALLTYPE *Release)( | 
 
 
 
 
 | 943 | IDMOVideoOutputOptimizations *This); | 
 
 
 
 
 | 944 |  | 
 
 
 
 
 | 945 | /*** IDMOVideoOutputOptimizations methods ***/ | 
 
 
 
 
 | 946 | HRESULT (STDMETHODCALLTYPE *QueryOperationModePreferences)( | 
 
 
 
 
 | 947 | IDMOVideoOutputOptimizations *This, | 
 
 
 
 
 | 948 | ULONG index, | 
 
 
 
 
 | 949 | DWORD *flags); | 
 
 
 
 
 | 950 |  | 
 
 
 
 
 | 951 | HRESULT (STDMETHODCALLTYPE *SetOperationMode)( | 
 
 
 
 
 | 952 | IDMOVideoOutputOptimizations *This, | 
 
 
 
 
 | 953 | ULONG index, | 
 
 
 
 
 | 954 | DWORD flags); | 
 
 
 
 
 | 955 |  | 
 
 
 
 
 | 956 | HRESULT (STDMETHODCALLTYPE *GetCurrentOperationMode)( | 
 
 
 
 
 | 957 | IDMOVideoOutputOptimizations *This, | 
 
 
 
 
 | 958 | ULONG index, | 
 
 
 
 
 | 959 | DWORD *flags); | 
 
 
 
 
 | 960 |  | 
 
 
 
 
 | 961 | HRESULT (STDMETHODCALLTYPE *GetCurrentSampleRequirements)( | 
 
 
 
 
 | 962 | IDMOVideoOutputOptimizations *This, | 
 
 
 
 
 | 963 | ULONG index, | 
 
 
 
 
 | 964 | DWORD *flags); | 
 
 
 
 
 | 965 |  | 
 
 
 
 
 | 966 | END_INTERFACE | 
 
 
 
 
 | 967 | } IDMOVideoOutputOptimizationsVtbl; | 
 
 
 
 
 | 968 |  | 
 
 
 
 
 | 969 | interface IDMOVideoOutputOptimizations { | 
 
 
 
 
 | 970 | CONST_VTBL IDMOVideoOutputOptimizationsVtbl* lpVtbl; | 
 
 
 
 
 | 971 | }; | 
 
 
 
 
 | 972 |  | 
 
 
 
 
 | 973 | #ifdef COBJMACROS | 
 
 
 
 
 | 974 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 
 
 
 
 | 975 | /*** IUnknown methods ***/ | 
 
 
 
 
 | 976 | #define IDMOVideoOutputOptimizations_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 
 
 
 
 | 977 | #define IDMOVideoOutputOptimizations_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 
 
 
 
 | 978 | #define IDMOVideoOutputOptimizations_Release(This) (This)->lpVtbl->Release(This) | 
 
 
 
 
 | 979 | /*** IDMOVideoOutputOptimizations methods ***/ | 
 
 
 
 
 | 980 | #define IDMOVideoOutputOptimizations_QueryOperationModePreferences(This,index,flags) (This)->lpVtbl->QueryOperationModePreferences(This,index,flags) | 
 
 
 
 
 | 981 | #define IDMOVideoOutputOptimizations_SetOperationMode(This,index,flags) (This)->lpVtbl->SetOperationMode(This,index,flags) | 
 
 
 
 
 | 982 | #define IDMOVideoOutputOptimizations_GetCurrentOperationMode(This,index,flags) (This)->lpVtbl->GetCurrentOperationMode(This,index,flags) | 
 
 
 
 
 | 983 | #define IDMOVideoOutputOptimizations_GetCurrentSampleRequirements(This,index,flags) (This)->lpVtbl->GetCurrentSampleRequirements(This,index,flags) | 
 
 
 
 
 | 984 | #else | 
 
 
 
 
 | 985 | /*** IUnknown methods ***/ | 
 
 
 
 
 | 986 | static FORCEINLINE HRESULT IDMOVideoOutputOptimizations_QueryInterface(IDMOVideoOutputOptimizations* This,REFIID riid,void **ppvObject) { | 
 
 
 
 
 | 987 | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 
 
 
 
 | 988 | } | 
 
 
 
 
 | 989 | static FORCEINLINE ULONG IDMOVideoOutputOptimizations_AddRef(IDMOVideoOutputOptimizations* This) { | 
 
 
 
 
 | 990 | return This->lpVtbl->AddRef(This); | 
 
 
 
 
 | 991 | } | 
 
 
 
 
 | 992 | static FORCEINLINE ULONG IDMOVideoOutputOptimizations_Release(IDMOVideoOutputOptimizations* This) { | 
 
 
 
 
 | 993 | return This->lpVtbl->Release(This); | 
 
 
 
 
 | 994 | } | 
 
 
 
 
 | 995 | /*** IDMOVideoOutputOptimizations methods ***/ | 
 
 
 
 
 | 996 | static FORCEINLINE HRESULT IDMOVideoOutputOptimizations_QueryOperationModePreferences(IDMOVideoOutputOptimizations* This,ULONG index,DWORD *flags) { | 
 
 
 
 
 | 997 | return This->lpVtbl->QueryOperationModePreferences(This,index,flags); | 
 
 
 
 
 | 998 | } | 
 
 
 
 
 | 999 | static FORCEINLINE HRESULT IDMOVideoOutputOptimizations_SetOperationMode(IDMOVideoOutputOptimizations* This,ULONG index,DWORD flags) { | 
 
 
 
 
 | 1000 | return This->lpVtbl->SetOperationMode(This,index,flags); | 
 
 
 
 
 | 1001 | } | 
 
 
 
 
 | 1002 | static FORCEINLINE HRESULT IDMOVideoOutputOptimizations_GetCurrentOperationMode(IDMOVideoOutputOptimizations* This,ULONG index,DWORD *flags) { | 
 
 
 
 
 | 1003 | return This->lpVtbl->GetCurrentOperationMode(This,index,flags); | 
 
 
 
 
 | 1004 | } | 
 
 
 
 
 | 1005 | static FORCEINLINE HRESULT IDMOVideoOutputOptimizations_GetCurrentSampleRequirements(IDMOVideoOutputOptimizations* This,ULONG index,DWORD *flags) { | 
 
 
 
 
 | 1006 | return This->lpVtbl->GetCurrentSampleRequirements(This,index,flags); | 
 
 
 
 
 | 1007 | } | 
 
 
 
 
 | 1008 | #endif | 
 
 
 
 
 | 1009 | #endif | 
 
 
 
 
 | 1010 |  | 
 
 
 
 
 | 1011 | #endif | 
 
 
 
 
 | 1012 |  | 
 
 
 
 
 | 1013 |  | 
 
 
 
 
 | 1014 | #endif  /* __IDMOVideoOutputOptimizations_INTERFACE_DEFINED__ */ | 
 
 
 
 
 | 1015 |  | 
 
 
 
 
 | 1016 | /* Begin additional prototypes for all interfaces */ | 
 
 
 
 
 | 1017 |  | 
 
 
 
 
 | 1018 |  | 
 
 
 
 
 | 1019 | /* End additional prototypes */ | 
 
 
 
 
 | 1020 |  | 
 
 
 
 
 | 1021 | #ifdef __cplusplus | 
 
 
 
 
 | 1022 | } | 
 
 
 
 
 | 1023 | #endif | 
 
 
 
 
 | 1024 |  | 
 
 
 
 
 | 1025 | #endif /* __mediaobj_h__ */ |