2001-08-16 00:50:02 +00:00
|
|
|
#ifndef DS_OUTPUTPIN_H
|
|
|
|
#define DS_OUTPUTPIN_H
|
|
|
|
|
|
|
|
/* "output pin" - the one that connects to output of filter. */
|
2001-03-20 00:05:27 +00:00
|
|
|
|
|
|
|
#include "interfaces.h"
|
|
|
|
#include "guids.h"
|
2001-05-06 21:43:45 +00:00
|
|
|
#include "allocator.h"
|
2001-08-16 00:50:02 +00:00
|
|
|
|
|
|
|
struct COutputPin;
|
|
|
|
|
|
|
|
struct COutputMemPin : public IMemInputPin
|
2001-03-20 00:05:27 +00:00
|
|
|
{
|
|
|
|
char** frame_pointer;
|
|
|
|
long* frame_size_pointer;
|
2001-05-06 21:43:45 +00:00
|
|
|
MemAllocator* pAllocator;
|
2001-08-16 00:50:02 +00:00
|
|
|
COutputPin* parent;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct COutputPin : public IPin
|
|
|
|
{
|
|
|
|
COutputMemPin* mempin;
|
|
|
|
int refcount;
|
|
|
|
AM_MEDIA_TYPE type;
|
|
|
|
IPin* remote;
|
2001-03-20 00:05:27 +00:00
|
|
|
COutputPin(const AM_MEDIA_TYPE& vhdr);
|
2001-05-06 21:43:45 +00:00
|
|
|
~COutputPin();
|
2001-08-16 00:50:02 +00:00
|
|
|
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; }
|
2001-03-20 00:05:27 +00:00
|
|
|
};
|
2001-08-16 00:50:02 +00:00
|
|
|
|
|
|
|
#endif /* DS_OUTPUTPIN_H */
|