diff options
Diffstat (limited to 'loader/dshow/outputpin.h')
-rw-r--r-- | loader/dshow/outputpin.h | 26 |
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 */ |