Author: greatlrd Date: Sun May 27 13:34:59 2007 New Revision: 26908
URL: http://svn.reactos.org/svn/reactos?rev=26908&view=rev Log: add correct mediaoobj.idl compatible with ms dxsdk 2004 dec add medoaram.idl compatible with ms dxsdk 2004 dec
Added: trunk/reactos/include/dxsdk/mediaobj.idl (with props) trunk/reactos/include/dxsdk/medparam.idl (with props) Removed: trunk/reactos/include/psdk/mediaobj.h trunk/reactos/include/psdk/mediaobj.idl Modified: trunk/reactos/include/dxsdk/ (props changed) trunk/reactos/include/dxsdk/dxsdk.rbuild
Propchange: trunk/reactos/include/dxsdk/ ------------------------------------------------------------------------------ --- svn:ignore (original) +++ svn:ignore Sun May 27 13:34:59 2007 @@ -5,3 +5,5 @@ mixerocx.h vidcap.h Videoacc.h +mediaobj.h +medparam.h
Modified: trunk/reactos/include/dxsdk/dxsdk.rbuild URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/dxsdk/dxsdk.rbuild?... ============================================================================== --- trunk/reactos/include/dxsdk/dxsdk.rbuild (original) +++ trunk/reactos/include/dxsdk/dxsdk.rbuild Sun May 27 13:34:59 2007 @@ -3,6 +3,8 @@ <file>amstream.idl</file> <file>ddstream.idl</file> <file>mixerocx.idl</file> + <file>mediaobj.idl</file> + <file>medparam.idl</file> <file>mmstream.idl</file> <file>vidcap.idl</file> <file>Videoacc.idl</file>
Added: trunk/reactos/include/dxsdk/mediaobj.idl URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/dxsdk/mediaobj.idl?... ============================================================================== --- trunk/reactos/include/dxsdk/mediaobj.idl (added) +++ trunk/reactos/include/dxsdk/mediaobj.idl Sun May 27 13:34:59 2007 @@ -1,0 +1,189 @@ + +import "unknwn.idl"; +import "objidl.idl"; + + +cpp_quote("#ifdef __strmif_h__") +cpp_quote("typedef AM_MEDIA_TYPE DMO_MEDIA_TYPE;") +cpp_quote("#else") +typedef struct _DMOMediaType +{ + GUID majortype; + GUID subtype; + BOOL bFixedSizeSamples; + BOOL bTemporalCompression; + ULONG lSampleSize; + GUID formattype; + IUnknown *pUnk; + ULONG cbFormat; + [size_is(cbFormat)] BYTE * pbFormat; +} DMO_MEDIA_TYPE; +typedef LONGLONG REFERENCE_TIME; +cpp_quote("#endif") + + + +enum _DMO_INPUT_DATA_BUFFER_FLAGS +{ + DMO_INPUT_DATA_BUFFERF_SYNCPOINT = 0x00000001, + DMO_INPUT_DATA_BUFFERF_TIME = 0x00000002, + DMO_INPUT_DATA_BUFFERF_TIMELENGTH = 0x00000004 +}; + +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_INCOMPLETE = 0x01000000 +}; + +enum _DMO_INPUT_STATUS_FLAGS +{ + DMO_INPUT_STATUSF_ACCEPT_DATA = 0x00000001 +}; + +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 +}; + +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 +}; + +enum _DMO_SET_TYPE_FLAGS +{ + DMO_SET_TYPEF_TEST_ONLY = 0x00000001, + DMO_SET_TYPEF_CLEAR = 0x00000002 +}; + +enum _DMO_PROCESS_OUTPUT_FLAGS +{ + DMO_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER = 0x00000001 +}; + +enum _DMO_INPLACE_PROCESS_FLAGS +{ + DMO_INPLACE_NORMAL = 0x00000000, + DMO_INPLACE_ZERO = 0x00000001 +}; + +enum _DMO_QUALITY_STATUS_FLAGS +{ + DMO_QUALITY_STATUS_ENABLED = 0x00000001 +}; + +enum _DMO_VIDEO_OUTPUT_STREAM_FLAGS +{ + DMO_VOSF_NEEDS_PREVIOUS_SAMPLE = 0x00000001 +}; + + +[ + object, + 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); +} + + +typedef struct _DMO_OUTPUT_DATA_BUFFER +{ + IMediaBuffer *pBuffer; + DWORD dwStatus; + REFERENCE_TIME rtTimestamp; + REFERENCE_TIME rtTimelength; +} DMO_OUTPUT_DATA_BUFFER, *PDMO_OUTPUT_DATA_BUFFER; + + +[ + object, + 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); +}; + + +[ +object, +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] WCHAR **Names, [out] DWORD *pcItemsFetched); + HRESULT Skip(DWORD cItemsToSkip); + HRESULT Reset(void); + HRESULT Clone([out] IEnumDMO **ppEnum); +} + +[ +object, +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); +} + +[ +object, +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); +} + +[ +object, +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 + ); +} +
Propchange: trunk/reactos/include/dxsdk/mediaobj.idl ------------------------------------------------------------------------------ svn:eol-style = native
Added: trunk/reactos/include/dxsdk/medparam.idl URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/dxsdk/medparam.idl?... ============================================================================== --- trunk/reactos/include/dxsdk/medparam.idl (added) +++ trunk/reactos/include/dxsdk/medparam.idl Sun May 27 13:34:59 2007 @@ -1,0 +1,107 @@ + + +import "oaidl.idl"; +import "ocidl.idl"; +import "strmif.idl"; + + +typedef float MP_DATA; + +typedef enum _MP_Type +{ + MPT_INT, + MPT_FLOAT, + MPT_BOOL, + MPT_ENUM, + MPT_MAX, +} MP_TYPE; + +cpp_quote("const MP_DATA MPBOOL_TRUE = 1.0;") +cpp_quote("const MP_DATA MPBOOL_FALSE = 0.0;") + + +typedef enum _MP_CURVE_TYPE +{ + MP_CURVE_JUMP = 0x0001, + MP_CURVE_LINEAR = 0x0002, + MP_CURVE_SQUARE = 0x0004, + MP_CURVE_INVSQUARE = 0x0008, + MP_CURVE_SINE = 0x0010, +} MP_CURVE_TYPE; + + +typedef DWORD MP_CAPS; +const MP_CAPS MP_CAPS_CURVE_JUMP = MP_CURVE_JUMP; +const MP_CAPS MP_CAPS_CURVE_LINEAR = MP_CURVE_LINEAR; +const MP_CAPS MP_CAPS_CURVE_SQUARE = MP_CURVE_SQUARE; +const MP_CAPS MP_CAPS_CURVE_INVSQUARE = MP_CURVE_INVSQUARE; +const MP_CAPS MP_CAPS_CURVE_SINE = MP_CURVE_SINE; + +typedef struct _MP_PARAMINFO +{ + MP_TYPE mpType; + MP_CAPS mopCaps; + MP_DATA mpdMinValue; + MP_DATA mpdMaxValue; + MP_DATA mpdNeutralValue; + WCHAR szUnitText[32]; + WCHAR szLabel[32]; +} MP_PARAMINFO; + +typedef DWORD DWORD; +const DWORD DWORD_ALLPARAMS = -1; +typedef DWORD MP_TIMEDATA; + +cpp_quote("DEFINE_GUID(GUID_TIME_REFERENCE, 0x93ad712b, 0xdaa0, 0x4ffe, 0xbc, 0x81, 0xb0, 0xce, 0x50, 0x0f, 0xcd, 0xd9);") +cpp_quote("DEFINE_GUID(GUID_TIME_MUSIC, 0x0574c49d, 0x5b04, 0x4b15, 0xa5, 0x42, 0xae, 0x28, 0x20, 0x30, 0x11, 0x7b);") +cpp_quote("DEFINE_GUID(GUID_TIME_SAMPLES, 0xa8593d05, 0x0c43, 0x4984, 0x9a, 0x63, 0x97, 0xaf, 0x9e, 0x02, 0xc4, 0xc0);") + +typedef DWORD MP_FLAGS; +const MP_FLAGS MPF_ENVLP_STANDARD = 0x0000; +const MP_FLAGS MPF_ENVLP_BEGIN_CURRENTVAL = 0x0001; +const MP_FLAGS MPF_ENVLP_BEGIN_NEUTRALVAL = 0x0002; + +typedef struct _MP_ENVELOPE_SEGMENT +{ + REFERENCE_TIME rtStart; + REFERENCE_TIME rtEnd; + MP_DATA valStart; + MP_DATA valEnd; + MP_CURVE_TYPE iCurve; + MP_FLAGS flags; +} MP_ENVELOPE_SEGMENT; + + +const MP_FLAGS MPF_PUNCHIN_REFTIME = 0; +const MP_FLAGS MPF_PUNCHIN_NOW = 0x0001; +const MP_FLAGS MPF_PUNCHIN_STOPPED = 0x0002; + +[ +object, +uuid(6d6cbb60-a223-44aa-842f-a2f06750be6d), +version(1.0) +] +interface IMediaParamInfo : IUnknown +{ + HRESULT GetParamCount ([out] DWORD * pdwParams); + HRESULT GetParamInfo ([in] DWORD dwParamIndex, [out] MP_PARAMINFO * pInfo); + HRESULT GetParamText ([in] DWORD dwParamIndex, [out] WCHAR **ppwchText); + HRESULT GetNumTimeFormats ([out] DWORD * pdwNumTimeFormats); + HRESULT GetSupportedTimeFormat([in] DWORD dwFormatIndex, [out] GUID *pguidTimeFormat); + HRESULT GetCurrentTimeFormat ([out] GUID *pguidTimeFormat, [out] MP_TIMEDATA *pTimeData); +} + +[ +object, +uuid(6d6cbb61-a223-44aa-842f-a2f06750be6e), +version(1.0) +] +interface IMediaParams : IUnknown +{ + HRESULT GetParam ([in] DWORD dwParamIndex, [out] MP_DATA *pValue); + HRESULT SetParam ([in] DWORD dwParamIndex, [in] MP_DATA value); + HRESULT AddEnvelope ([in] DWORD dwParamIndex, [in] DWORD cSegments, [in] MP_ENVELOPE_SEGMENT * pEnvelopeSegments); + HRESULT FlushEnvelope ([in] DWORD dwParamIndex, [in] REFERENCE_TIME refTimeStart, [in] REFERENCE_TIME refTimeEnd); + HRESULT SetTimeFormat ([in] GUID guidTimeFormat, [in] MP_TIMEDATA mpTimeData); +} +
Propchange: trunk/reactos/include/dxsdk/medparam.idl ------------------------------------------------------------------------------ svn:eol-style = native
Removed: trunk/reactos/include/psdk/mediaobj.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/mediaobj.h?rev... ============================================================================== --- trunk/reactos/include/psdk/mediaobj.h (original) +++ trunk/reactos/include/psdk/mediaobj.h (removed) @@ -1,172 +1,0 @@ -/*** Autogenerated by WIDL 0.3.0 from include\psdk\mediaobj.idl - Do not edit ***/ -#include <rpc.h> -#include <rpcndr.h> - -#ifndef __WIDL_INCLUDE_PSDK_MEDIAOBJ_H -#define __WIDL_INCLUDE_PSDK_MEDIAOBJ_H -#ifdef __cplusplus -extern "C" { -#endif -#if !defined(COM_NO_WINDOWS_H) && !defined(__WINESRC__) -#include <windows.h> -#include <ole2.h> -#endif -#include <unknwn.h> -#include <objidl.h> -#ifndef __IDMOQualityControl_FWD_DEFINED__ -#define __IDMOQualityControl_FWD_DEFINED__ -typedef interface IDMOQualityControl IDMOQualityControl; -#endif - -#ifndef __IDMOVideoOutputOptimizations_FWD_DEFINED__ -#define __IDMOVideoOutputOptimizations_FWD_DEFINED__ -typedef interface IDMOVideoOutputOptimizations IDMOVideoOutputOptimizations; -#endif - -#ifndef __IMediaBuffer_FWD_DEFINED__ -#define __IMediaBuffer_FWD_DEFINED__ -typedef interface IMediaBuffer IMediaBuffer; -#endif - -#ifndef __IMediaObject_FWD_DEFINED__ -#define __IMediaObject_FWD_DEFINED__ -typedef interface IMediaObject IMediaObject; -#endif - -#ifndef __IMediaObjectInPlace_FWD_DEFINED__ -#define __IMediaObjectInPlace_FWD_DEFINED__ -typedef interface IMediaObjectInPlace IMediaObjectInPlace; -#endif - -typedef struct _DMOMediaType { - GUID majortype; - GUID subtype; - BOOL bFixedSizeSamples; - BOOL bTemporalCompression; - ULONG lSampleSize; - GUID formattype; - IUnknown *pUnk; - ULONG cbFormat; - BYTE *pbFormat; -} DMO_MEDIA_TYPE; -#ifndef __IEnumDMO_FWD_DEFINED__ -#define __IEnumDMO_FWD_DEFINED__ -typedef interface IEnumDMO IEnumDMO; -#endif - -/***************************************************************************** - * IEnumDMO interface - */ -#ifndef __IEnumDMO_INTERFACE_DEFINED__ -#define __IEnumDMO_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IEnumDMO, 0x2c3cd98a, 0x2bfa, 0x4a53, 0x9c,0x27, 0x52,0x49,0xba,0x64,0xba,0x0f); -#if defined(__cplusplus) && !defined(CINTERFACE) -interface IEnumDMO : public IUnknown -{ - virtual HRESULT STDMETHODCALLTYPE Next( - DWORD cItemsToFetch, - CLSID* pCLSID, - WCHAR** Names, - DWORD* pcItemsFetched) = 0; - - virtual HRESULT STDMETHODCALLTYPE Skip( - DWORD cItemsToSkip) = 0; - - virtual HRESULT STDMETHODCALLTYPE Reset( - ) = 0; - - virtual HRESULT STDMETHODCALLTYPE Clone( - IEnumDMO** ppEnum) = 0; - -}; -#else -typedef struct IEnumDMOVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IEnumDMO* This, - REFIID riid, - void** ppvObject); - - ULONG (STDMETHODCALLTYPE *AddRef)( - IEnumDMO* This); - - ULONG (STDMETHODCALLTYPE *Release)( - IEnumDMO* This); - - /*** IEnumDMO methods ***/ - HRESULT (STDMETHODCALLTYPE *Next)( - IEnumDMO* This, - DWORD cItemsToFetch, - CLSID* pCLSID, - WCHAR** Names, - DWORD* pcItemsFetched); - - HRESULT (STDMETHODCALLTYPE *Skip)( - IEnumDMO* This, - DWORD cItemsToSkip); - - HRESULT (STDMETHODCALLTYPE *Reset)( - IEnumDMO* This); - - HRESULT (STDMETHODCALLTYPE *Clone)( - IEnumDMO* This, - IEnumDMO** ppEnum); - - END_INTERFACE -} IEnumDMOVtbl; -interface IEnumDMO { - const IEnumDMOVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -/*** IUnknown methods ***/ -#define IEnumDMO_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) -#define IEnumDMO_AddRef(p) (p)->lpVtbl->AddRef(p) -#define IEnumDMO_Release(p) (p)->lpVtbl->Release(p) -/*** IEnumDMO methods ***/ -#define IEnumDMO_Next(p,a,b,c,d) (p)->lpVtbl->Next(p,a,b,c,d) -#define IEnumDMO_Skip(p,a) (p)->lpVtbl->Skip(p,a) -#define IEnumDMO_Reset(p) (p)->lpVtbl->Reset(p) -#define IEnumDMO_Clone(p,a) (p)->lpVtbl->Clone(p,a) -#endif - -#endif - -HRESULT CALLBACK IEnumDMO_Skip_Proxy( - IEnumDMO* This, - DWORD cItemsToSkip); -void __RPC_STUB IEnumDMO_Skip_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT CALLBACK IEnumDMO_Reset_Proxy( - IEnumDMO* This); -void __RPC_STUB IEnumDMO_Reset_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); -HRESULT CALLBACK IEnumDMO_Clone_Proxy( - IEnumDMO* This, - IEnumDMO** ppEnum); -void __RPC_STUB IEnumDMO_Clone_Stub( - IRpcStubBuffer* This, - IRpcChannelBuffer* pRpcChannelBuffer, - PRPC_MESSAGE pRpcMessage, - DWORD* pdwStubPhase); - -#endif /* __IEnumDMO_INTERFACE_DEFINED__ */ - -/* Begin additional prototypes for all interfaces */ - - -/* End additional prototypes */ - -#ifdef __cplusplus -} -#endif -#endif /* __WIDL_INCLUDE_PSDK_MEDIAOBJ_H */
Removed: trunk/reactos/include/psdk/mediaobj.idl URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/mediaobj.idl?r... ============================================================================== --- trunk/reactos/include/psdk/mediaobj.idl (original) +++ trunk/reactos/include/psdk/mediaobj.idl (removed) @@ -1,74 +1,0 @@ -/* - * Copyright (C) 2002 Alexandre Julliard - * Copyright (C) 2004 Vincent Béron - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -cpp_quote("#if !defined(COM_NO_WINDOWS_H) && !defined(__WINESRC__)") -cpp_quote("#include <windows.h>") -cpp_quote("#include <ole2.h>") -cpp_quote("#endif") - -import "unknwn.idl"; -import "objidl.idl"; - -interface IDMOQualityControl; -interface IDMOVideoOutputOptimizations; -interface IMediaBuffer; -interface IMediaObject; -interface IMediaObjectInPlace; - -typedef struct _DMOMediaType -{ - GUID majortype; - GUID subtype; - BOOL bFixedSizeSamples; - BOOL bTemporalCompression; - ULONG lSampleSize; - GUID formattype; - IUnknown *pUnk; - ULONG cbFormat; - BYTE *pbFormat; -} DMO_MEDIA_TYPE; - -/***************************************************************************** - * IEnumDMO interface - */ -[ - object, - uuid(2C3CD98A-2BFA-4A53-9C27-5249BA64BA0F), - pointer_default(unique) -] -interface IEnumDMO : IUnknown -{ - [local] - HRESULT Next( - [in] DWORD cItemsToFetch, - [out] CLSID *pCLSID, - [out] WCHAR **Names, - [out] DWORD *pcItemsFetched - ); - - HRESULT Skip( - [in] DWORD cItemsToSkip - ); - - HRESULT Reset(); - - HRESULT Clone( - [out] IEnumDMO **ppEnum - ); -}