8294
|
1 #ifndef DMO_FILTER_H
|
|
2 #define DMO_FILTER_H
|
|
3
|
|
4 #include "dmo_guids.h"
|
|
5 #include "dmo_interfaces.h"
|
|
6
|
|
7 #if defined(__cplusplus)
|
|
8 extern "C" {
|
|
9 #endif
|
|
10
|
|
11 typedef struct _DMO_Filter
|
|
12 {
|
|
13 int m_iHandle;
|
|
14 IDMOVideoOutputOptimizations* m_pOptim;
|
|
15 IMediaObject* m_pMedia;
|
|
16 IMediaObjectInPlace* m_pInPlace;
|
|
17 AM_MEDIA_TYPE *m_pOurType, *m_pDestType;
|
|
18 } DMO_Filter;
|
|
19
|
|
20 typedef struct _CMediaBuffer CMediaBuffer;
|
|
21
|
|
22 /**
|
|
23 * Create DMO_Filter object - similar syntax as for DS_Filter
|
|
24 */
|
|
25 DMO_Filter* DMO_FilterCreate(const char* dllname, const GUID* id,
|
|
26 AM_MEDIA_TYPE* in_fmt, AM_MEDIA_TYPE* out_fmt);
|
|
27 /**
|
|
28 * Destroy DMO_Filter object - release all allocated resources
|
|
29 */
|
|
30 void DMO_Filter_Destroy(DMO_Filter* This);
|
|
31
|
|
32
|
|
33 /**
|
|
34 * Create IMediaBuffer object - to pass/receive data from DMO_Filter
|
|
35 *
|
|
36 * maxlen - maximum size for this buffer
|
|
37 * mem - initial memory 0 - creates memory
|
|
38 * len - initial size of used portion of the buffer
|
|
39 * copy - make a local copy of data
|
|
40 */
|
|
41 CMediaBuffer* CMediaBufferCreate(unsigned long maxlen, void* mem, unsigned long len, int copy);
|
|
42
|
|
43 #if defined(__cplusplus)
|
|
44 }
|
|
45 #endif
|
|
46
|
|
47 #endif /* DS_FILTER_H */
|