mpv/loader/dshow/DS_Filter.h

51 lines
1.0 KiB
C

#ifndef MPLAYER_DS_FILTER_H
#define MPLAYER_DS_FILTER_H
#include "inputpin.h"
#include "outputpin.h"
#if defined(__cplusplus)
extern "C" {
#endif
typedef struct {
char* frame_pointer;
long frame_size;
} SampleProcUserData;
/**
User will allocate and fill format structures, call Create(),
and then set up m_pAll.
**/
typedef struct DS_Filter DS_Filter;
struct DS_Filter
{
int m_iHandle;
IBaseFilter* m_pFilter;
IPin* m_pInputPin;
IPin* m_pOutputPin;
CBaseFilter* m_pSrcFilter;
CBaseFilter2* m_pParentFilter;
IPin* m_pOurInput;
COutputPin* m_pOurOutput;
AM_MEDIA_TYPE *m_pOurType, *m_pDestType;
IMemAllocator* m_pAll;
IMemInputPin* m_pImp;
void ( *Start )(DS_Filter*);
void ( *Stop )(DS_Filter*);
};
DS_Filter* DS_FilterCreate(const char* dllname, const GUID* id,
AM_MEDIA_TYPE* in_fmt, AM_MEDIA_TYPE* out_fmt,SampleProcUserData* pUserData);
void DS_Filter_Destroy(DS_Filter* This);
#if defined(__cplusplus)
}
#endif
#endif /* MPLAYER_DS_FILTER_H */