mpv/loader/dmo/DMO_Filter.h

48 lines
1.1 KiB
C

#ifndef MPLAYER_DMO_FILTER_H
#define MPLAYER_DMO_FILTER_H
#include "dmo_guids.h"
#include "dmo_interfaces.h"
#if defined(__cplusplus)
extern "C" {
#endif
typedef struct DMO_Filter
{
int m_iHandle;
IDMOVideoOutputOptimizations* m_pOptim;
IMediaObject* m_pMedia;
IMediaObjectInPlace* m_pInPlace;
AM_MEDIA_TYPE *m_pOurType, *m_pDestType;
} DMO_Filter;
typedef struct CMediaBuffer CMediaBuffer;
/**
* Create DMO_Filter object - similar syntax as for DS_Filter
*/
DMO_Filter* DMO_FilterCreate(const char* dllname, const GUID* id,
AM_MEDIA_TYPE* in_fmt, AM_MEDIA_TYPE* out_fmt);
/**
* Destroy DMO_Filter object - release all allocated resources
*/
void DMO_Filter_Destroy(DMO_Filter* This);
/**
* Create IMediaBuffer object - to pass/receive data from DMO_Filter
*
* maxlen - maximum size for this buffer
* mem - initial memory 0 - creates memory
* len - initial size of used portion of the buffer
* copy - make a local copy of data
*/
CMediaBuffer* CMediaBufferCreate(unsigned long maxlen, void* mem, unsigned long len, int copy);
#if defined(__cplusplus)
}
#endif
#endif /* MPLAYER_DMO_FILTER_H */