blob: 4c8e4e880585f4a8ad611b2fc97cfadac964ba32 [file] [log] [blame]
/*** Autogenerated by WIDL 5.0-rc1 from mfreadwrite.idl - Do not edit ***/
#ifdef _WIN32
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif
#include <rpc.h>
#include <rpcndr.h>
#endif
#ifndef COM_NO_WINDOWS_H
#include <windows.h>
#include <ole2.h>
#endif
#ifndef __mfreadwrite_h__
#define __mfreadwrite_h__
/* Forward declarations */
#ifndef __IMFSourceReader_FWD_DEFINED__
#define __IMFSourceReader_FWD_DEFINED__
typedef interface IMFSourceReader IMFSourceReader;
#ifdef __cplusplus
interface IMFSourceReader;
#endif /* __cplusplus */
#endif
#ifndef __IMFSinkWriter_FWD_DEFINED__
#define __IMFSinkWriter_FWD_DEFINED__
typedef interface IMFSinkWriter IMFSinkWriter;
#ifdef __cplusplus
interface IMFSinkWriter;
#endif /* __cplusplus */
#endif
#ifndef __IMFSourceReaderCallback_FWD_DEFINED__
#define __IMFSourceReaderCallback_FWD_DEFINED__
typedef interface IMFSourceReaderCallback IMFSourceReaderCallback;
#ifdef __cplusplus
interface IMFSourceReaderCallback;
#endif /* __cplusplus */
#endif
/* Headers for imported files */
#include <mfobjects.h>
#ifdef __cplusplus
extern "C" {
#endif
EXTERN_GUID(MF_SOURCE_READER_ASYNC_CALLBACK, 0x1e3dbeac,0xbb43,0x4c35,0xb5,0x07,0xcd,0x64,0x44,0x64,0xc9,0x65);
EXTERN_GUID(MF_SOURCE_READER_D3D_MANAGER, 0xec822da2,0xe1e9,0x4b29,0xa0,0xd8,0x56,0x3c,0x71,0x9f,0x52,0x69);
EXTERN_GUID(MF_SOURCE_READER_DISABLE_DXVA, 0xaa456cfd,0x3943,0x4a1e,0xa7,0x7d,0x18,0x38,0xc0,0xea,0x2e,0x35);
EXTERN_GUID(MF_SOURCE_READER_MEDIASOURCE_CONFIG, 0x9085abeb,0x0354,0x48f9,0xab,0xb5,0x20,0x0d,0xf8,0x38,0xc6,0x8e);
EXTERN_GUID(MF_SOURCE_READER_MEDIASOURCE_CHARACTERISTICS, 0x6d23f5c8,0xc5d7,0x4a9b,0x99,0x71,0x5d,0x11,0xf8,0xbc,0xa8,0x80);
EXTERN_GUID(MF_SOURCE_READER_ENABLE_VIDEO_PROCESSING, 0xfb394f3d,0xccf1,0x42ee,0xbb,0xb3,0xf9,0xb8,0x45,0xd5,0x68,0x1d);
EXTERN_GUID(MF_SOURCE_READER_DISCONNECT_MEDIASOURCE_ON_SHUTDOWN, 0x56b67165,0x219e,0x456d,0xa2,0x2e,0x2d,0x30,0x04,0xc7,0xfe,0x56);
typedef enum MF_SOURCE_READER_CONTROL_FLAG {
MF_SOURCE_READER_CONTROLF_DRAIN = 0x1
} MF_SOURCE_READER_CONTROL_FLAG;
typedef enum MF_SOURCE_READER_FLAG {
MF_SOURCE_READERF_ERROR = 0x1,
MF_SOURCE_READERF_ENDOFSTREAM = 0x2,
MF_SOURCE_READERF_NEWSTREAM = 0x4,
MF_SOURCE_READERF_NATIVEMEDIATYPECHANGED = 0x10,
MF_SOURCE_READERF_CURRENTMEDIATYPECHANGED = 0x20,
MF_SOURCE_READERF_STREAMTICK = 0x100
} MF_SOURCE_READER_FLAG;
typedef struct _MF_SINK_WRITER_STATISTICS {
DWORD cb;
LONGLONG llLastTimestampReceived;
LONGLONG llLastTimestampEncoded;
LONGLONG llLastTimestampProcessed;
LONGLONG llLastStreamTickReceived;
LONGLONG llLastSinkSampleRequest;
QWORD qwNumSamplesReceived;
QWORD qwNumSamplesEncoded;
QWORD qwNumSamplesProcessed;
QWORD qwNumStreamTicksReceived;
DWORD dwByteCountQueued;
QWORD qwByteCountProcessed;
DWORD dwNumOutstandingSinkSampleRequests;
DWORD dwAverageSampleRateReceived;
DWORD dwAverageSampleRateEncoded;
DWORD dwAverageSampleRateProcessed;
} MF_SINK_WRITER_STATISTICS;
enum {
MF_SOURCE_READER_INVALID_STREAM_INDEX = 0xffffffff,
MF_SOURCE_READER_ALL_STREAMS = 0xfffffffe,
MF_SOURCE_READER_ANY_STREAM = 0xfffffffe,
MF_SOURCE_READER_FIRST_AUDIO_STREAM = 0xfffffffd,
MF_SOURCE_READER_FIRST_VIDEO_STREAM = 0xfffffffc,
MF_SOURCE_READER_MEDIASOURCE = 0xffffffff
};
/*****************************************************************************
* IMFSourceReader interface
*/
#ifndef __IMFSourceReader_INTERFACE_DEFINED__
#define __IMFSourceReader_INTERFACE_DEFINED__
DEFINE_GUID(IID_IMFSourceReader, 0x70ae66f2, 0xc809, 0x4e4f, 0x89,0x15, 0xbd,0xcb,0x40,0x6b,0x79,0x93);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("70ae66f2-c809-4e4f-8915-bdcb406b7993")
IMFSourceReader : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE GetStreamSelection(
DWORD dwStreamIndex,
WINBOOL *pfSelected) = 0;
virtual HRESULT STDMETHODCALLTYPE SetStreamSelection(
DWORD dwStreamIndex,
WINBOOL fSelected) = 0;
virtual HRESULT STDMETHODCALLTYPE GetNativeMediaType(
DWORD dwStreamIndex,
DWORD dwMediaTypeIndex,
IMFMediaType **ppMediaType) = 0;
virtual HRESULT STDMETHODCALLTYPE GetCurrentMediaType(
DWORD dwStreamIndex,
IMFMediaType **ppMediaType) = 0;
virtual HRESULT STDMETHODCALLTYPE SetCurrentMediaType(
DWORD dwStreamIndex,
DWORD *pdwReserved,
IMFMediaType *pMediaType) = 0;
virtual HRESULT STDMETHODCALLTYPE SetCurrentPosition(
REFGUID guidTimeFormat,
REFPROPVARIANT varPosition) = 0;
virtual HRESULT STDMETHODCALLTYPE ReadSample(
DWORD dwStreamIndex,
DWORD dwControlFlags,
DWORD *pdwActualStreamIndex,
DWORD *pdwStreamFlags,
LONGLONG *pllTimestamp,
IMFSample **ppSample) = 0;
virtual HRESULT STDMETHODCALLTYPE Flush(
DWORD dwStreamIndex) = 0;
virtual HRESULT STDMETHODCALLTYPE GetServiceForStream(
DWORD dwStreamIndex,
REFGUID guidService,
REFIID riid,
LPVOID *ppvObject) = 0;
virtual HRESULT STDMETHODCALLTYPE GetPresentationAttribute(
DWORD dwStreamIndex,
REFGUID guidAttribute,
PROPVARIANT *pvarAttribute) = 0;
};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IMFSourceReader, 0x70ae66f2, 0xc809, 0x4e4f, 0x89,0x15, 0xbd,0xcb,0x40,0x6b,0x79,0x93)
#endif
#else
typedef struct IMFSourceReaderVtbl {
BEGIN_INTERFACE
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IMFSourceReader *This,
REFIID riid,
void **ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IMFSourceReader *This);
ULONG (STDMETHODCALLTYPE *Release)(
IMFSourceReader *This);
/*** IMFSourceReader methods ***/
HRESULT (STDMETHODCALLTYPE *GetStreamSelection)(
IMFSourceReader *This,
DWORD dwStreamIndex,
WINBOOL *pfSelected);
HRESULT (STDMETHODCALLTYPE *SetStreamSelection)(
IMFSourceReader *This,
DWORD dwStreamIndex,
WINBOOL fSelected);
HRESULT (STDMETHODCALLTYPE *GetNativeMediaType)(
IMFSourceReader *This,
DWORD dwStreamIndex,
DWORD dwMediaTypeIndex,
IMFMediaType **ppMediaType);
HRESULT (STDMETHODCALLTYPE *GetCurrentMediaType)(
IMFSourceReader *This,
DWORD dwStreamIndex,
IMFMediaType **ppMediaType);
HRESULT (STDMETHODCALLTYPE *SetCurrentMediaType)(
IMFSourceReader *This,
DWORD dwStreamIndex,
DWORD *pdwReserved,
IMFMediaType *pMediaType);
HRESULT (STDMETHODCALLTYPE *SetCurrentPosition)(
IMFSourceReader *This,
REFGUID guidTimeFormat,
REFPROPVARIANT varPosition);
HRESULT (STDMETHODCALLTYPE *ReadSample)(
IMFSourceReader *This,
DWORD dwStreamIndex,
DWORD dwControlFlags,
DWORD *pdwActualStreamIndex,
DWORD *pdwStreamFlags,
LONGLONG *pllTimestamp,
IMFSample **ppSample);
HRESULT (STDMETHODCALLTYPE *Flush)(
IMFSourceReader *This,
DWORD dwStreamIndex);
HRESULT (STDMETHODCALLTYPE *GetServiceForStream)(
IMFSourceReader *This,
DWORD dwStreamIndex,
REFGUID guidService,
REFIID riid,
LPVOID *ppvObject);
HRESULT (STDMETHODCALLTYPE *GetPresentationAttribute)(
IMFSourceReader *This,
DWORD dwStreamIndex,
REFGUID guidAttribute,
PROPVARIANT *pvarAttribute);
END_INTERFACE
} IMFSourceReaderVtbl;
interface IMFSourceReader {
CONST_VTBL IMFSourceReaderVtbl* lpVtbl;
};
#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IMFSourceReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IMFSourceReader_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IMFSourceReader_Release(This) (This)->lpVtbl->Release(This)
/*** IMFSourceReader methods ***/
#define IMFSourceReader_GetStreamSelection(This,dwStreamIndex,pfSelected) (This)->lpVtbl->GetStreamSelection(This,dwStreamIndex,pfSelected)
#define IMFSourceReader_SetStreamSelection(This,dwStreamIndex,fSelected) (This)->lpVtbl->SetStreamSelection(This,dwStreamIndex,fSelected)
#define IMFSourceReader_GetNativeMediaType(This,dwStreamIndex,dwMediaTypeIndex,ppMediaType) (This)->lpVtbl->GetNativeMediaType(This,dwStreamIndex,dwMediaTypeIndex,ppMediaType)
#define IMFSourceReader_GetCurrentMediaType(This,dwStreamIndex,ppMediaType) (This)->lpVtbl->GetCurrentMediaType(This,dwStreamIndex,ppMediaType)
#define IMFSourceReader_SetCurrentMediaType(This,dwStreamIndex,pdwReserved,pMediaType) (This)->lpVtbl->SetCurrentMediaType(This,dwStreamIndex,pdwReserved,pMediaType)
#define IMFSourceReader_SetCurrentPosition(This,guidTimeFormat,varPosition) (This)->lpVtbl->SetCurrentPosition(This,guidTimeFormat,varPosition)
#define IMFSourceReader_ReadSample(This,dwStreamIndex,dwControlFlags,pdwActualStreamIndex,pdwStreamFlags,pllTimestamp,ppSample) (This)->lpVtbl->ReadSample(This,dwStreamIndex,dwControlFlags,pdwActualStreamIndex,pdwStreamFlags,pllTimestamp,ppSample)
#define IMFSourceReader_Flush(This,dwStreamIndex) (This)->lpVtbl->Flush(This,dwStreamIndex)
#define IMFSourceReader_GetServiceForStream(This,dwStreamIndex,guidService,riid,ppvObject) (This)->lpVtbl->GetServiceForStream(This,dwStreamIndex,guidService,riid,ppvObject)
#define IMFSourceReader_GetPresentationAttribute(This,dwStreamIndex,guidAttribute,pvarAttribute) (This)->lpVtbl->GetPresentationAttribute(This,dwStreamIndex,guidAttribute,pvarAttribute)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IMFSourceReader_QueryInterface(IMFSourceReader* This,REFIID riid,void **ppvObject) {
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IMFSourceReader_AddRef(IMFSourceReader* This) {
return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IMFSourceReader_Release(IMFSourceReader* This) {
return This->lpVtbl->Release(This);
}
/*** IMFSourceReader methods ***/
static FORCEINLINE HRESULT IMFSourceReader_GetStreamSelection(IMFSourceReader* This,DWORD dwStreamIndex,WINBOOL *pfSelected) {
return This->lpVtbl->GetStreamSelection(This,dwStreamIndex,pfSelected);
}
static FORCEINLINE HRESULT IMFSourceReader_SetStreamSelection(IMFSourceReader* This,DWORD dwStreamIndex,WINBOOL fSelected) {
return This->lpVtbl->SetStreamSelection(This,dwStreamIndex,fSelected);
}
static FORCEINLINE HRESULT IMFSourceReader_GetNativeMediaType(IMFSourceReader* This,DWORD dwStreamIndex,DWORD dwMediaTypeIndex,IMFMediaType **ppMediaType) {
return This->lpVtbl->GetNativeMediaType(This,dwStreamIndex,dwMediaTypeIndex,ppMediaType);
}
static FORCEINLINE HRESULT IMFSourceReader_GetCurrentMediaType(IMFSourceReader* This,DWORD dwStreamIndex,IMFMediaType **ppMediaType) {
return This->lpVtbl->GetCurrentMediaType(This,dwStreamIndex,ppMediaType);
}
static FORCEINLINE HRESULT IMFSourceReader_SetCurrentMediaType(IMFSourceReader* This,DWORD dwStreamIndex,DWORD *pdwReserved,IMFMediaType *pMediaType) {
return This->lpVtbl->SetCurrentMediaType(This,dwStreamIndex,pdwReserved,pMediaType);
}
static FORCEINLINE HRESULT IMFSourceReader_SetCurrentPosition(IMFSourceReader* This,REFGUID guidTimeFormat,REFPROPVARIANT varPosition) {
return This->lpVtbl->SetCurrentPosition(This,guidTimeFormat,varPosition);
}
static FORCEINLINE HRESULT IMFSourceReader_ReadSample(IMFSourceReader* This,DWORD dwStreamIndex,DWORD dwControlFlags,DWORD *pdwActualStreamIndex,DWORD *pdwStreamFlags,LONGLONG *pllTimestamp,IMFSample **ppSample) {
return This->lpVtbl->ReadSample(This,dwStreamIndex,dwControlFlags,pdwActualStreamIndex,pdwStreamFlags,pllTimestamp,ppSample);
}
static FORCEINLINE HRESULT IMFSourceReader_Flush(IMFSourceReader* This,DWORD dwStreamIndex) {
return This->lpVtbl->Flush(This,dwStreamIndex);
}
static FORCEINLINE HRESULT IMFSourceReader_GetServiceForStream(IMFSourceReader* This,DWORD dwStreamIndex,REFGUID guidService,REFIID riid,LPVOID *ppvObject) {
return This->lpVtbl->GetServiceForStream(This,dwStreamIndex,guidService,riid,ppvObject);
}
static FORCEINLINE HRESULT IMFSourceReader_GetPresentationAttribute(IMFSourceReader* This,DWORD dwStreamIndex,REFGUID guidAttribute,PROPVARIANT *pvarAttribute) {
return This->lpVtbl->GetPresentationAttribute(This,dwStreamIndex,guidAttribute,pvarAttribute);
}
#endif
#endif
#endif
#endif /* __IMFSourceReader_INTERFACE_DEFINED__ */
/*****************************************************************************
* IMFSinkWriter interface
*/
#ifndef __IMFSinkWriter_INTERFACE_DEFINED__
#define __IMFSinkWriter_INTERFACE_DEFINED__
DEFINE_GUID(IID_IMFSinkWriter, 0x3137f1cd, 0xfe5e, 0x4805, 0xa5,0xd8, 0xfb,0x47,0x74,0x48,0xcb,0x3d);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("3137f1cd-fe5e-4805-a5d8-fb477448cb3d")
IMFSinkWriter : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE AddStream(
IMFMediaType *pTargetMediaType,
DWORD *pdwStreamIndex) = 0;
virtual HRESULT STDMETHODCALLTYPE SetInputMediaType(
DWORD dwStreamIndex,
IMFMediaType *pInputMediaType,
IMFAttributes *pEncodingParameters) = 0;
virtual HRESULT STDMETHODCALLTYPE BeginWriting(
) = 0;
virtual HRESULT STDMETHODCALLTYPE WriteSample(
DWORD dwStreamIndex,
IMFSample *pSample) = 0;
virtual HRESULT STDMETHODCALLTYPE SendStreamTick(
DWORD dwStreamIndex,
LONGLONG llTimestamp) = 0;
virtual HRESULT STDMETHODCALLTYPE PlaceMarker(
DWORD dwStreamIndex,
LPVOID pvContext) = 0;
virtual HRESULT STDMETHODCALLTYPE NotifyEndOfSegment(
DWORD dwStreamIndex) = 0;
virtual HRESULT STDMETHODCALLTYPE Flush(
DWORD dwStreamIndex) = 0;
virtual HRESULT STDMETHODCALLTYPE Finalize(
) = 0;
virtual HRESULT STDMETHODCALLTYPE GetServiceForStream(
DWORD dwStreamIndex,
REFGUID guidService,
REFIID riid,
LPVOID *ppvObject) = 0;
virtual HRESULT STDMETHODCALLTYPE GetStatistics(
DWORD dwStreamIndex,
MF_SINK_WRITER_STATISTICS *pStats) = 0;
};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IMFSinkWriter, 0x3137f1cd, 0xfe5e, 0x4805, 0xa5,0xd8, 0xfb,0x47,0x74,0x48,0xcb,0x3d)
#endif
#else
typedef struct IMFSinkWriterVtbl {
BEGIN_INTERFACE
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IMFSinkWriter *This,
REFIID riid,
void **ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IMFSinkWriter *This);
ULONG (STDMETHODCALLTYPE *Release)(
IMFSinkWriter *This);
/*** IMFSinkWriter methods ***/
HRESULT (STDMETHODCALLTYPE *AddStream)(
IMFSinkWriter *This,
IMFMediaType *pTargetMediaType,
DWORD *pdwStreamIndex);
HRESULT (STDMETHODCALLTYPE *SetInputMediaType)(
IMFSinkWriter *This,
DWORD dwStreamIndex,
IMFMediaType *pInputMediaType,
IMFAttributes *pEncodingParameters);
HRESULT (STDMETHODCALLTYPE *BeginWriting)(
IMFSinkWriter *This);
HRESULT (STDMETHODCALLTYPE *WriteSample)(
IMFSinkWriter *This,
DWORD dwStreamIndex,
IMFSample *pSample);
HRESULT (STDMETHODCALLTYPE *SendStreamTick)(
IMFSinkWriter *This,
DWORD dwStreamIndex,
LONGLONG llTimestamp);
HRESULT (STDMETHODCALLTYPE *PlaceMarker)(
IMFSinkWriter *This,
DWORD dwStreamIndex,
LPVOID pvContext);
HRESULT (STDMETHODCALLTYPE *NotifyEndOfSegment)(
IMFSinkWriter *This,
DWORD dwStreamIndex);
HRESULT (STDMETHODCALLTYPE *Flush)(
IMFSinkWriter *This,
DWORD dwStreamIndex);
HRESULT (STDMETHODCALLTYPE *Finalize)(
IMFSinkWriter *This);
HRESULT (STDMETHODCALLTYPE *GetServiceForStream)(
IMFSinkWriter *This,
DWORD dwStreamIndex,
REFGUID guidService,
REFIID riid,
LPVOID *ppvObject);
HRESULT (STDMETHODCALLTYPE *GetStatistics)(
IMFSinkWriter *This,
DWORD dwStreamIndex,
MF_SINK_WRITER_STATISTICS *pStats);
END_INTERFACE
} IMFSinkWriterVtbl;
interface IMFSinkWriter {
CONST_VTBL IMFSinkWriterVtbl* lpVtbl;
};
#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IMFSinkWriter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IMFSinkWriter_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IMFSinkWriter_Release(This) (This)->lpVtbl->Release(This)
/*** IMFSinkWriter methods ***/
#define IMFSinkWriter_AddStream(This,pTargetMediaType,pdwStreamIndex) (This)->lpVtbl->AddStream(This,pTargetMediaType,pdwStreamIndex)
#define IMFSinkWriter_SetInputMediaType(This,dwStreamIndex,pInputMediaType,pEncodingParameters) (This)->lpVtbl->SetInputMediaType(This,dwStreamIndex,pInputMediaType,pEncodingParameters)
#define IMFSinkWriter_BeginWriting(This) (This)->lpVtbl->BeginWriting(This)
#define IMFSinkWriter_WriteSample(This,dwStreamIndex,pSample) (This)->lpVtbl->WriteSample(This,dwStreamIndex,pSample)
#define IMFSinkWriter_SendStreamTick(This,dwStreamIndex,llTimestamp) (This)->lpVtbl->SendStreamTick(This,dwStreamIndex,llTimestamp)
#define IMFSinkWriter_PlaceMarker(This,dwStreamIndex,pvContext) (This)->lpVtbl->PlaceMarker(This,dwStreamIndex,pvContext)
#define IMFSinkWriter_NotifyEndOfSegment(This,dwStreamIndex) (This)->lpVtbl->NotifyEndOfSegment(This,dwStreamIndex)
#define IMFSinkWriter_Flush(This,dwStreamIndex) (This)->lpVtbl->Flush(This,dwStreamIndex)
#define IMFSinkWriter_Finalize(This) (This)->lpVtbl->Finalize(This)
#define IMFSinkWriter_GetServiceForStream(This,dwStreamIndex,guidService,riid,ppvObject) (This)->lpVtbl->GetServiceForStream(This,dwStreamIndex,guidService,riid,ppvObject)
#define IMFSinkWriter_GetStatistics(This,dwStreamIndex,pStats) (This)->lpVtbl->GetStatistics(This,dwStreamIndex,pStats)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IMFSinkWriter_QueryInterface(IMFSinkWriter* This,REFIID riid,void **ppvObject) {
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IMFSinkWriter_AddRef(IMFSinkWriter* This) {
return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IMFSinkWriter_Release(IMFSinkWriter* This) {
return This->lpVtbl->Release(This);
}
/*** IMFSinkWriter methods ***/
static FORCEINLINE HRESULT IMFSinkWriter_AddStream(IMFSinkWriter* This,IMFMediaType *pTargetMediaType,DWORD *pdwStreamIndex) {
return This->lpVtbl->AddStream(This,pTargetMediaType,pdwStreamIndex);
}
static FORCEINLINE HRESULT IMFSinkWriter_SetInputMediaType(IMFSinkWriter* This,DWORD dwStreamIndex,IMFMediaType *pInputMediaType,IMFAttributes *pEncodingParameters) {
return This->lpVtbl->SetInputMediaType(This,dwStreamIndex,pInputMediaType,pEncodingParameters);
}
static FORCEINLINE HRESULT IMFSinkWriter_BeginWriting(IMFSinkWriter* This) {
return This->lpVtbl->BeginWriting(This);
}
static FORCEINLINE HRESULT IMFSinkWriter_WriteSample(IMFSinkWriter* This,DWORD dwStreamIndex,IMFSample *pSample) {
return This->lpVtbl->WriteSample(This,dwStreamIndex,pSample);
}
static FORCEINLINE HRESULT IMFSinkWriter_SendStreamTick(IMFSinkWriter* This,DWORD dwStreamIndex,LONGLONG llTimestamp) {
return This->lpVtbl->SendStreamTick(This,dwStreamIndex,llTimestamp);
}
static FORCEINLINE HRESULT IMFSinkWriter_PlaceMarker(IMFSinkWriter* This,DWORD dwStreamIndex,LPVOID pvContext) {
return This->lpVtbl->PlaceMarker(This,dwStreamIndex,pvContext);
}
static FORCEINLINE HRESULT IMFSinkWriter_NotifyEndOfSegment(IMFSinkWriter* This,DWORD dwStreamIndex) {
return This->lpVtbl->NotifyEndOfSegment(This,dwStreamIndex);
}
static FORCEINLINE HRESULT IMFSinkWriter_Flush(IMFSinkWriter* This,DWORD dwStreamIndex) {
return This->lpVtbl->Flush(This,dwStreamIndex);
}
static FORCEINLINE HRESULT IMFSinkWriter_Finalize(IMFSinkWriter* This) {
return This->lpVtbl->Finalize(This);
}
static FORCEINLINE HRESULT IMFSinkWriter_GetServiceForStream(IMFSinkWriter* This,DWORD dwStreamIndex,REFGUID guidService,REFIID riid,LPVOID *ppvObject) {
return This->lpVtbl->GetServiceForStream(This,dwStreamIndex,guidService,riid,ppvObject);
}
static FORCEINLINE HRESULT IMFSinkWriter_GetStatistics(IMFSinkWriter* This,DWORD dwStreamIndex,MF_SINK_WRITER_STATISTICS *pStats) {
return This->lpVtbl->GetStatistics(This,dwStreamIndex,pStats);
}
#endif
#endif
#endif
#endif /* __IMFSinkWriter_INTERFACE_DEFINED__ */
/*****************************************************************************
* IMFSourceReaderCallback interface
*/
#ifndef __IMFSourceReaderCallback_INTERFACE_DEFINED__
#define __IMFSourceReaderCallback_INTERFACE_DEFINED__
DEFINE_GUID(IID_IMFSourceReaderCallback, 0xdeec8d99, 0xfa1d, 0x4d82, 0x84,0xc2, 0x2c,0x89,0x69,0x94,0x48,0x67);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("deec8d99-fa1d-4d82-84c2-2c8969944867")
IMFSourceReaderCallback : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE OnReadSample(
HRESULT hrStatus,
DWORD dwStreamIndex,
DWORD dwStreamFlags,
LONGLONG llTimestamp,
IMFSample *pSample) = 0;
virtual HRESULT STDMETHODCALLTYPE OnFlush(
DWORD dwStreamIndex) = 0;
virtual HRESULT STDMETHODCALLTYPE OnEvent(
DWORD dwStreamIndex,
IMFMediaEvent *pEvent) = 0;
};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IMFSourceReaderCallback, 0xdeec8d99, 0xfa1d, 0x4d82, 0x84,0xc2, 0x2c,0x89,0x69,0x94,0x48,0x67)
#endif
#else
typedef struct IMFSourceReaderCallbackVtbl {
BEGIN_INTERFACE
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IMFSourceReaderCallback *This,
REFIID riid,
void **ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IMFSourceReaderCallback *This);
ULONG (STDMETHODCALLTYPE *Release)(
IMFSourceReaderCallback *This);
/*** IMFSourceReaderCallback methods ***/
HRESULT (STDMETHODCALLTYPE *OnReadSample)(
IMFSourceReaderCallback *This,
HRESULT hrStatus,
DWORD dwStreamIndex,
DWORD dwStreamFlags,
LONGLONG llTimestamp,
IMFSample *pSample);
HRESULT (STDMETHODCALLTYPE *OnFlush)(
IMFSourceReaderCallback *This,
DWORD dwStreamIndex);
HRESULT (STDMETHODCALLTYPE *OnEvent)(
IMFSourceReaderCallback *This,
DWORD dwStreamIndex,
IMFMediaEvent *pEvent);
END_INTERFACE
} IMFSourceReaderCallbackVtbl;
interface IMFSourceReaderCallback {
CONST_VTBL IMFSourceReaderCallbackVtbl* lpVtbl;
};
#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IMFSourceReaderCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IMFSourceReaderCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IMFSourceReaderCallback_Release(This) (This)->lpVtbl->Release(This)
/*** IMFSourceReaderCallback methods ***/
#define IMFSourceReaderCallback_OnReadSample(This,hrStatus,dwStreamIndex,dwStreamFlags,llTimestamp,pSample) (This)->lpVtbl->OnReadSample(This,hrStatus,dwStreamIndex,dwStreamFlags,llTimestamp,pSample)
#define IMFSourceReaderCallback_OnFlush(This,dwStreamIndex) (This)->lpVtbl->OnFlush(This,dwStreamIndex)
#define IMFSourceReaderCallback_OnEvent(This,dwStreamIndex,pEvent) (This)->lpVtbl->OnEvent(This,dwStreamIndex,pEvent)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IMFSourceReaderCallback_QueryInterface(IMFSourceReaderCallback* This,REFIID riid,void **ppvObject) {
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IMFSourceReaderCallback_AddRef(IMFSourceReaderCallback* This) {
return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IMFSourceReaderCallback_Release(IMFSourceReaderCallback* This) {
return This->lpVtbl->Release(This);
}
/*** IMFSourceReaderCallback methods ***/
static FORCEINLINE HRESULT IMFSourceReaderCallback_OnReadSample(IMFSourceReaderCallback* This,HRESULT hrStatus,DWORD dwStreamIndex,DWORD dwStreamFlags,LONGLONG llTimestamp,IMFSample *pSample) {
return This->lpVtbl->OnReadSample(This,hrStatus,dwStreamIndex,dwStreamFlags,llTimestamp,pSample);
}
static FORCEINLINE HRESULT IMFSourceReaderCallback_OnFlush(IMFSourceReaderCallback* This,DWORD dwStreamIndex) {
return This->lpVtbl->OnFlush(This,dwStreamIndex);
}
static FORCEINLINE HRESULT IMFSourceReaderCallback_OnEvent(IMFSourceReaderCallback* This,DWORD dwStreamIndex,IMFMediaEvent *pEvent) {
return This->lpVtbl->OnEvent(This,dwStreamIndex,pEvent);
}
#endif
#endif
#endif
#endif /* __IMFSourceReaderCallback_INTERFACE_DEFINED__ */
HRESULT WINAPI MFCreateSinkWriterFromMediaSink(IMFMediaSink *pMediaSink,IMFAttributes *pAttributes,IMFSinkWriter **ppSinkWriter);
HRESULT WINAPI MFCreateSinkWriterFromURL(LPCWSTR pwszOutputURL,IMFByteStream *pByteStream,IMFAttributes *pAttributes,IMFSinkWriter **ppSinkWriter);
HRESULT WINAPI MFCreateSourceReaderFromByteStream(IMFByteStream *pByteStream,IMFAttributes *pAttributes,IMFSourceReader **ppSourceReader);
HRESULT WINAPI MFCreateSourceReaderFromMediaSource(IMFMediaSource *pMediaSource,IMFAttributes *pAttributes,IMFSourceReader **ppSourceReader);
HRESULT WINAPI MFCreateSourceReaderFromURL(LPCWSTR pwszURL,IMFAttributes *pAttributes,IMFSourceReader **ppSourceReader);
/* Begin additional prototypes for all interfaces */
/* End additional prototypes */
#ifdef __cplusplus
}
#endif
#endif /* __mfreadwrite_h__ */