| cpp_quote("/**") |
| cpp_quote(" * This file is part of the mingw-w64 runtime package.") |
| cpp_quote(" * No warranty is given; refer to the file DISCLAIMER within this package.") |
| cpp_quote(" */") |
| cpp_quote("") |
| |
| cpp_quote("#include <winapifamily.h>") |
| cpp_quote("") |
| |
| import "unknwn.idl"; |
| import "objidl.idl"; |
| |
| cpp_quote("") |
| cpp_quote("#ifdef __strmif_h__") |
| cpp_quote("typedef AM_MEDIA_TYPE DMO_MEDIA_TYPE;") |
| cpp_quote("#else") |
| typedef struct _DMOMediaType { |
| GUID majortype; |
| GUID subtype; |
| WINBOOL bFixedSizeSamples; |
| WINBOOL bTemporalCompression; |
| ULONG lSampleSize; |
| GUID formattype; |
| IUnknown *pUnk; |
| ULONG cbFormat; |
| [size_is (cbFormat)] BYTE *pbFormat; |
| } DMO_MEDIA_TYPE; |
| |
| cpp_quote("") |
| typedef LONGLONG REFERENCE_TIME; |
| cpp_quote("#endif") |
| |
| cpp_quote("") |
| enum _DMO_INPUT_DATA_BUFFER_FLAGS { |
| DMO_INPUT_DATA_BUFFERF_SYNCPOINT = 0x00000001, |
| DMO_INPUT_DATA_BUFFERF_TIME = 0x00000002, |
| DMO_INPUT_DATA_BUFFERF_TIMELENGTH = 0x00000004, |
| DMO_INPUT_DATA_BUFFERF_DISCONTINUITY = 0x00000008 |
| }; |
| |
| cpp_quote("") |
| enum _DMO_OUTPUT_DATA_BUFFER_FLAGS { |
| DMO_OUTPUT_DATA_BUFFERF_SYNCPOINT = 0x00000001, |
| DMO_OUTPUT_DATA_BUFFERF_TIME = 0x00000002, |
| DMO_OUTPUT_DATA_BUFFERF_TIMELENGTH = 0x00000004, |
| DMO_OUTPUT_DATA_BUFFERF_DISCONTINUITY = 0x00000008, |
| DMO_OUTPUT_DATA_BUFFERF_INCOMPLETE = 0x01000000 |
| }; |
| |
| cpp_quote("") |
| enum _DMO_INPUT_STATUS_FLAGS { |
| DMO_INPUT_STATUSF_ACCEPT_DATA = 0x00000001 |
| }; |
| |
| cpp_quote("") |
| enum _DMO_INPUT_STREAM_INFO_FLAGS { |
| DMO_INPUT_STREAMF_WHOLE_SAMPLES = 0x00000001, |
| DMO_INPUT_STREAMF_SINGLE_SAMPLE_PER_BUFFER = 0x00000002, |
| DMO_INPUT_STREAMF_FIXED_SAMPLE_SIZE = 0x00000004, |
| DMO_INPUT_STREAMF_HOLDS_BUFFERS = 0x00000008 |
| }; |
| |
| cpp_quote("") |
| enum _DMO_OUTPUT_STREAM_INFO_FLAGS { |
| DMO_OUTPUT_STREAMF_WHOLE_SAMPLES = 0x00000001, |
| DMO_OUTPUT_STREAMF_SINGLE_SAMPLE_PER_BUFFER = 0x00000002, |
| DMO_OUTPUT_STREAMF_FIXED_SAMPLE_SIZE = 0x00000004, |
| DMO_OUTPUT_STREAMF_DISCARDABLE = 0x00000008, |
| DMO_OUTPUT_STREAMF_OPTIONAL = 0x00000010 |
| }; |
| |
| cpp_quote("") |
| enum _DMO_SET_TYPE_FLAGS { |
| DMO_SET_TYPEF_TEST_ONLY = 0x00000001, |
| DMO_SET_TYPEF_CLEAR = 0x00000002 |
| }; |
| |
| cpp_quote("") |
| enum _DMO_PROCESS_OUTPUT_FLAGS { |
| DMO_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER = 0x00000001 |
| }; |
| |
| cpp_quote("") |
| cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") |
| enum _DMO_INPLACE_PROCESS_FLAGS { |
| DMO_INPLACE_NORMAL = 0x00000000, |
| DMO_INPLACE_ZERO = 0x00000001 |
| }; |
| |
| cpp_quote("") |
| enum _DMO_QUALITY_STATUS_FLAGS { |
| DMO_QUALITY_STATUS_ENABLED = 0x00000001 |
| }; |
| |
| cpp_quote("") |
| enum _DMO_VIDEO_OUTPUT_STREAM_FLAGS { |
| DMO_VOSF_NEEDS_PREVIOUS_SAMPLE = 0x00000001 |
| }; |
| |
| cpp_quote("") |
| [object, local, uuid (59eff8b9-938c-4a26-82f2-95cb84cdc837)] |
| interface IMediaBuffer : IUnknown { |
| HRESULT SetLength (DWORD cbLength); |
| HRESULT GetMaxLength ([out] DWORD *pcbMaxLength); |
| HRESULT GetBufferAndLength ([out] BYTE **ppBuffer,[out] DWORD *pcbLength); |
| } |
| |
| cpp_quote("") |
| typedef struct _DMO_OUTPUT_DATA_BUFFER { |
| IMediaBuffer *pBuffer; |
| DWORD dwStatus; |
| REFERENCE_TIME rtTimestamp; |
| REFERENCE_TIME rtTimelength; |
| } DMO_OUTPUT_DATA_BUFFER,*PDMO_OUTPUT_DATA_BUFFER; |
| |
| cpp_quote("") |
| [object, local, uuid (d8ad0f58-5494-4102-97c5-ec798e59bcf4)] |
| interface IMediaObject : IUnknown { |
| HRESULT GetStreamCount ([out] DWORD *pcInputStreams,[out] DWORD *pcOutputStreams); |
| HRESULT GetInputStreamInfo (DWORD dwInputStreamIndex,[out] DWORD *pdwFlags); |
| HRESULT GetOutputStreamInfo (DWORD dwOutputStreamIndex,[out] DWORD *pdwFlags); |
| HRESULT GetInputType (DWORD dwInputStreamIndex, DWORD dwTypeIndex,[out] DMO_MEDIA_TYPE *pmt); |
| HRESULT GetOutputType (DWORD dwOutputStreamIndex, DWORD dwTypeIndex,[out] DMO_MEDIA_TYPE *pmt); |
| HRESULT SetInputType (DWORD dwInputStreamIndex,[in] const DMO_MEDIA_TYPE *pmt, DWORD dwFlags); |
| HRESULT SetOutputType (DWORD dwOutputStreamIndex,[in] const DMO_MEDIA_TYPE *pmt, DWORD dwFlags); |
| HRESULT GetInputCurrentType (DWORD dwInputStreamIndex,[out] DMO_MEDIA_TYPE *pmt); |
| HRESULT GetOutputCurrentType (DWORD dwOutputStreamIndex,[out] DMO_MEDIA_TYPE *pmt); |
| HRESULT GetInputSizeInfo (DWORD dwInputStreamIndex,[out] DWORD *pcbSize,[out] DWORD *pcbMaxLookahead,[out] DWORD *pcbAlignment); |
| HRESULT GetOutputSizeInfo (DWORD dwOutputStreamIndex,[out] DWORD *pcbSize,[out] DWORD *pcbAlignment); |
| HRESULT GetInputMaxLatency (DWORD dwInputStreamIndex,[out] REFERENCE_TIME *prtMaxLatency); |
| HRESULT SetInputMaxLatency (DWORD dwInputStreamIndex, REFERENCE_TIME rtMaxLatency); |
| HRESULT Flush (); |
| HRESULT Discontinuity (DWORD dwInputStreamIndex); |
| HRESULT AllocateStreamingResources (); |
| HRESULT FreeStreamingResources (); |
| HRESULT GetInputStatus (DWORD dwInputStreamIndex,[out] DWORD *dwFlags); |
| HRESULT ProcessInput (DWORD dwInputStreamIndex, IMediaBuffer *pBuffer, DWORD dwFlags, REFERENCE_TIME rtTimestamp, REFERENCE_TIME rtTimelength); |
| HRESULT ProcessOutput (DWORD dwFlags, DWORD cOutputBufferCount,[in, out, size_is (cOutputBufferCount)]DMO_OUTPUT_DATA_BUFFER *pOutputBuffers,[out] DWORD *pdwStatus); |
| HRESULT Lock (LONG bLock); |
| }; |
| |
| cpp_quote("") |
| [object, local, uuid (2c3cd98a-2bfa-4a53-9c27-5249ba64ba0f)] |
| interface IEnumDMO : IUnknown { |
| HRESULT Next (DWORD cItemsToFetch,[out, size_is (cItemsToFetch), length_is (*pcItemsFetched)] CLSID *pCLSID,[out, size_is (cItemsToFetch), length_is (*pcItemsFetched), string] LPWSTR *Names,[out] DWORD *pcItemsFetched); |
| HRESULT Skip (DWORD cItemsToSkip); |
| HRESULT Reset (void); |
| HRESULT Clone ([out] IEnumDMO **ppEnum); |
| } |
| |
| cpp_quote("") |
| [object, local, uuid (651b9ad0-0fc7-4aa9-9538-d89931010741)] |
| interface IMediaObjectInPlace : IUnknown { |
| HRESULT Process ([in] ULONG ulSize,[in, out, size_is (ulSize)] BYTE *pData,[in] REFERENCE_TIME refTimeStart,[in] DWORD dwFlags); |
| HRESULT Clone ([out] IMediaObjectInPlace **ppMediaObject); |
| HRESULT GetLatency ([out] REFERENCE_TIME *pLatencyTime); |
| } |
| |
| cpp_quote("") |
| [object, local, uuid (65abea96-cf36-453f-af8a-705e98f16260)] |
| interface IDMOQualityControl : IUnknown { |
| HRESULT SetNow ([in] REFERENCE_TIME rtNow); |
| HRESULT SetStatus ([in] DWORD dwFlags); |
| HRESULT GetStatus ([out] DWORD *pdwFlags); |
| } |
| |
| cpp_quote("") |
| [object, local, uuid (be8f4f4e-5b16-4d29-b350-7f6b5d9298ac)] |
| interface IDMOVideoOutputOptimizations : IUnknown { |
| HRESULT QueryOperationModePreferences (ULONG ulOutputStreamIndex, DWORD *pdwRequestedCapabilities); |
| HRESULT SetOperationMode (ULONG ulOutputStreamIndex, DWORD dwEnabledFeatures); |
| HRESULT GetCurrentOperationMode (ULONG ulOutputStreamIndex, DWORD *pdwEnabledFeatures); |
| HRESULT GetCurrentSampleRequirements (ULONG ulOutputStreamIndex, DWORD *pdwRequestedFeatures); |
| } |
| cpp_quote("#endif") |