summaryrefslogtreecommitdiffstats
path: root/loader/dshow/outputpin.c
diff options
context:
space:
mode:
Diffstat (limited to 'loader/dshow/outputpin.c')
-rw-r--r--loader/dshow/outputpin.c49
1 files changed, 24 insertions, 25 deletions
diff --git a/loader/dshow/outputpin.c b/loader/dshow/outputpin.c
index 4546d0294d..5e9a76b9ef 100644
--- a/loader/dshow/outputpin.c
+++ b/loader/dshow/outputpin.c
@@ -4,13 +4,14 @@
#include "outputpin.h"
#include <stdio.h>
#include <string.h>
+#include <stdlib.h>
/*
An object beyond interface IEnumMediaTypes.
Returned by COutputPin through call IPin::EnumMediaTypes().
*/
-static int unimplemented(const char* s, void* p)
+static inline int output_unimplemented(const char* s, void* p)
{
Debug printf("%s(%p) called (UNIMPLEMENTED)", s, p);
return E_NOTIMPL;
@@ -24,6 +25,15 @@ typedef struct CEnumMediaTypes
GUID interfaces[2];
} CEnumMediaTypes;
+struct _COutputMemPin
+{
+ IMemInputPin_vt* vt;
+ DECLARE_IUNKNOWN();
+ char** frame_pointer;
+ long* frame_size_pointer;
+ MemAllocator* pAllocator;
+ COutputPin* parent;
+};
static HRESULT STDCALL CEnumMediaTypes_Next(IEnumMediaTypes * This,
/* [in] */ ULONG cMediaTypes,
@@ -58,8 +68,7 @@ static HRESULT STDCALL CEnumMediaTypes_Next(IEnumMediaTypes * This,
static HRESULT STDCALL CEnumMediaTypes_Skip(IEnumMediaTypes * This,
/* [in] */ ULONG cMediaTypes)
{
- Debug unimplemented("CEnumMediaTypes::Skip", This);
- return E_NOTIMPL;
+ return output_unimplemented("CEnumMediaTypes::Skip", This);
}
static HRESULT STDCALL CEnumMediaTypes_Reset(IEnumMediaTypes * This)
@@ -121,7 +130,7 @@ CEnumMediaTypes* CEnumMediaTypesCreate(const AM_MEDIA_TYPE* amt)
*************/
-static HRESULT STDCALL COutputPin_QueryInterface(IUnknown* This, GUID* iid, void** ppv)
+static HRESULT STDCALL COutputPin_QueryInterface(IUnknown* This, const GUID* iid, void** ppv)
{
COutputPin* p = (COutputPin*) This;
@@ -214,8 +223,7 @@ static HRESULT STDCALL COutputPin_ConnectionMediaType(IPin * This,
static HRESULT STDCALL COutputPin_QueryPinInfo(IPin * This,
/* [out] */ PIN_INFO *pInfo)
{
- Debug unimplemented("COutputPin_QueryPinInfo", This);
- return E_NOTIMPL;
+ return output_unimplemented("COutputPin_QueryPinInfo", This);
}
static HRESULT STDCALL COutputPin_QueryDirection(IPin * This,
@@ -231,15 +239,13 @@ static HRESULT STDCALL COutputPin_QueryDirection(IPin * This,
static HRESULT STDCALL COutputPin_QueryId(IPin * This,
/* [out] */ LPWSTR *Id)
{
- Debug unimplemented("COutputPin_QueryId", This);
- return E_NOTIMPL;
+ return output_unimplemented("COutputPin_QueryId", This);
}
static HRESULT STDCALL COutputPin_QueryAccept(IPin * This,
/* [in] */ const AM_MEDIA_TYPE *pmt)
{
- Debug unimplemented("COutputPin_QueryAccept", This);
- return E_NOTIMPL;
+ return output_unimplemented("COutputPin_QueryAccept", This);
}
static HRESULT STDCALL COutputPin_EnumMediaTypes(IPin * This,
@@ -256,26 +262,22 @@ static HRESULT STDCALL COutputPin_QueryInternalConnections(IPin * This,
/* [out] */ IPin **apPin,
/* [out][in] */ ULONG *nPin)
{
- Debug unimplemented("COutputPin_QueryInternalConnections", This);
- return E_NOTIMPL;
+ return output_unimplemented("COutputPin_QueryInternalConnections", This);
}
static HRESULT STDCALL COutputPin_EndOfStream(IPin * This)
{
- Debug unimplemented("COutputPin_EndOfStream", This);
- return E_NOTIMPL;
+ return output_unimplemented("COutputPin_EndOfStream", This);
}
static HRESULT STDCALL COutputPin_BeginFlush(IPin * This)
{
- Debug unimplemented("COutputPin_BeginFlush", This);
- return E_NOTIMPL;
+ return output_unimplemented("COutputPin_BeginFlush", This);
}
static HRESULT STDCALL COutputPin_EndFlush(IPin * This)
{
- Debug unimplemented("COutputPin_EndFlush", This);
- return E_NOTIMPL;
+ return output_unimplemented("COutputPin_EndFlush", This);
}
static HRESULT STDCALL COutputPin_NewSegment(IPin * This,
@@ -292,7 +294,7 @@ static HRESULT STDCALL COutputPin_NewSegment(IPin * This,
// IMemInputPin->IUnknown methods
-static HRESULT STDCALL COutputPin_M_QueryInterface(IUnknown* This, GUID* iid, void** ppv)
+static HRESULT STDCALL COutputPin_M_QueryInterface(IUnknown* This, const GUID* iid, void** ppv)
{
COutputPin* p = (COutputPin*)This;
@@ -351,8 +353,7 @@ static HRESULT STDCALL COutputPin_NotifyAllocator(IMemInputPin* This,
static HRESULT STDCALL COutputPin_GetAllocatorRequirements(IMemInputPin* This,
/* [out] */ ALLOCATOR_PROPERTIES* pProps)
{
- Debug unimplemented("COutputPin_GetAllocatorRequirements", This);
- return E_NOTIMPL;
+ return output_unimplemented("COutputPin_GetAllocatorRequirements", This);
}
static HRESULT STDCALL COutputPin_Receive(IMemInputPin* This,
@@ -395,14 +396,12 @@ static HRESULT STDCALL COutputPin_ReceiveMultiple(IMemInputPin * This,
/* [in] */ long nSamples,
/* [out] */ long *nSamplesProcessed)
{
- Debug unimplemented("COutputPin_ReceiveMultiple", This);
- return E_NOTIMPL;
+ return output_unimplemented("COutputPin_ReceiveMultiple", This);
}
static HRESULT STDCALL COutputPin_ReceiveCanBlock(IMemInputPin * This)
{
- Debug unimplemented("COutputPin_ReceiveCanBlock", This);
- return E_NOTIMPL;
+ return output_unimplemented("COutputPin_ReceiveCanBlock", This);
}
static void COutputPin_SetFramePointer(COutputPin* This, char** z)