Mercurial > mplayer.hg
view loader/dshow/DS_Filter.h @ 32434:acb796d7ca50
Make mencoder account for encoder delay when considering the current
time position of a muxer stream. To mencoder core, delayed frames
should be considered as "dealt with", since they'll get to the muxer
eventually. Without this compensation, mencoder will sometimes make
different frame skip/duplicate decisions on the first of a two-pass
x264 encode (since x264 buffers many more frames on the first pass),
leading to a segfault in x264 when it gets fed more frames on the
second pass.
author | corey |
---|---|
date | Thu, 21 Oct 2010 07:05:30 +0000 |
parents | 26f673ba0675 |
children |
line wrap: on
line source
#ifndef MPLAYER_DS_FILTER_H #define MPLAYER_DS_FILTER_H #include "inputpin.h" #include "outputpin.h" 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); #endif /* MPLAYER_DS_FILTER_H */