예제 #1
0
CLAVOutputPin::CLAVOutputPin(std::deque<CMediaType>& mts, LPCWSTR pName, CBaseFilter *pFilter, CCritSec *pLock, HRESULT *phr, CBaseDemuxer::StreamType pinType, const char* container)
  : CBaseOutputPin(NAME("lavf dshow output pin"), pFilter, pLock, phr, pName)
  , m_mts(mts)
  , m_containerFormat(container)
  , m_pinType(pinType)
  , m_Parser(this, container)
{
  SetQueueSizes();
}
예제 #2
0
CLAVOutputPin::CLAVOutputPin(std::vector<CMediaType>& mts, LPCWSTR pName, CBaseFilter *pFilter, CCritSec *pLock, HRESULT *phr, CBaseDemuxer::StreamType pinType, const char* container, bool bFirst)
  : CBaseOutputPin(NAME("lavf dshow output pin"), pFilter, pLock, phr, pName)
  , m_containerFormat(container)
  , m_pinType(pinType)
  , m_Parser(this, container)
  , m_bFirstPin(bFirst)
  , m_mts(mts)
{
  m_rtPrev = m_bFirstPin ? 0 : AV_NOPTS_VALUE;

  SetQueueSizes();
}
예제 #3
0
CLAVOutputPin::CLAVOutputPin(std::vector<CMediaType>& mts, LPCWSTR pName, CBaseFilter *pFilter, CCritSec *pLock, HRESULT *phr, CBaseDemuxer::StreamType pinType, const char* container, int nBuffers)
  : CBaseOutputPin(NAME("lavf dshow output pin"), pFilter, pLock, phr, pName)
  , m_hrDeliver(S_OK)
  , m_fFlushing(false)
  , m_eEndFlush(TRUE)
  , m_containerFormat(container)
  , m_newMT(NULL)
  , m_pinType(pinType)
  , m_Parser(this, container)
  , m_rtPrev(0)
  , m_bPacketAllocator(FALSE)
  , m_dwQueueMaxMem(256)
{
  m_mts = mts;
  m_nBuffers = max(nBuffers, 1);

  SetQueueSizes();
}