Mercurial > mplayer.hg
view loader/dshow/DS_Filter.h @ 10578:b9d289fd8a57
10000l, the old code was slow as hell, copying stuff extra times and
actually broken -- blanking the whole screen at each 'page flip' with
-dr enabled. benchmarks:
before:
56% cpu for decode
56% cpu for vo with no -dr
25% cpu for vo with -dr
after:
56% cpu for decode
25% cpu for vo without -dr
0% cpu for vo with -dr
if vo_fbdev is going to do pageflip, it needs to do it for REAL, using
vertical scroll registers (like g2), not copying a temp buffer (which
will shear anyway and is super-slow).
author | rfelker |
---|---|
date | Tue, 12 Aug 2003 08:24:24 +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 */