view loader/dshow/DS_Filter.h @ 15533:ddf15d233d58

Do not switch to audio tracks whose codec private data differs from the main audio track's as this will most likely result in messed up audio output. Patch by Michael Behrisch <list () behrisch ! de>
author mosu
date Sat, 21 May 2005 06:50:08 +0000
parents e3bbf44dbab2
children 49f01f8fbd60
line wrap: on
line source

#ifndef DS_FILTER_H
#define DS_FILTER_H

#include "inputpin.h"
#include "outputpin.h"

#if defined(__cplusplus)
extern "C" {
#endif

/**
   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);
void DS_Filter_Destroy(DS_Filter* This);

#if defined(__cplusplus)
}
#endif

#endif /* DS_FILTER_H */