summaryrefslogtreecommitdiffstats
path: root/loader/dshow/outputpin.h
diff options
context:
space:
mode:
Diffstat (limited to 'loader/dshow/outputpin.h')
-rw-r--r--loader/dshow/outputpin.h26
1 files changed, 12 insertions, 14 deletions
diff --git a/loader/dshow/outputpin.h b/loader/dshow/outputpin.h
index 7cedd7dfed..47ef9f43ef 100644
--- a/loader/dshow/outputpin.h
+++ b/loader/dshow/outputpin.h
@@ -3,35 +3,33 @@
/* "output pin" - the one that connects to output of filter. */
-#include "interfaces.h"
-#include "guids.h"
#include "allocator.h"
-struct COutputPin;
+typedef struct _COutputPin COutputPin;
-struct COutputMemPin : public IMemInputPin
+typedef struct _COutputMemPin COutputMemPin;
+struct _COutputMemPin
{
+ IMemInputPin_vt* vt;
char** frame_pointer;
long* frame_size_pointer;
MemAllocator* pAllocator;
COutputPin* parent;
};
-struct COutputPin : public IPin
+struct _COutputPin
{
+ IPin_vt* vt;
COutputMemPin* mempin;
int refcount;
AM_MEDIA_TYPE type;
IPin* remote;
- COutputPin(const AM_MEDIA_TYPE& vhdr);
- ~COutputPin();
- void SetFramePointer(char** z) { mempin->frame_pointer = z; }
- void SetPointer2(char* p) {
- if (mempin->pAllocator)
- mempin->pAllocator->SetPointer(p);
- }
- void SetFrameSizePointer(long* z) { mempin->frame_size_pointer = z; }
- void SetNewFormat(const AM_MEDIA_TYPE& a) { type = a; }
+ void ( *SetFramePointer )(COutputPin*, char** z);
+ void ( *SetPointer2 )(COutputPin*, char* p);
+ void ( *SetFrameSizePointer )(COutputPin*, long* z);
+ void ( *SetNewFormat )(COutputPin*, const AM_MEDIA_TYPE* a);
};
+COutputPin* COutputPinCreate(const AM_MEDIA_TYPE* vhdr);
+
#endif /* DS_OUTPUTPIN_H */