AJA NTV2 SDK  17.6.0.2675
NTV2 SDK 17.6.0.2675
COutputQueue Class Reference

#include <outputq.h>

Inheritance diagram for COutputQueue:
[legend]
Collaboration diagram for COutputQueue:
[legend]

Classes

struct  NewSegmentPacket
 

Public Member Functions

 COutputQueue (IPin *pInputPin, __inout HRESULT *phr, BOOL bAuto=TRUE, BOOL bQueue=TRUE, LONG lBatchSize=1, BOOL bBatchExact=FALSE, LONG lListSize=DEFAULTCACHE, DWORD dwPriority=THREAD_PRIORITY_NORMAL, bool bFlushingOpt=false)
 
 ~COutputQueue ()
 
void BeginFlush ()
 
void EndFlush ()
 
void EOS ()
 
void SendAnyway ()
 
void NewSegment (REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate)
 
HRESULT Receive (IMediaSample *pSample)
 
HRESULT ReceiveMultiple (__in_ecount(nSamples) IMediaSample **pSamples, long nSamples, __out long *nSamplesProcessed)
 
void Reset ()
 
BOOL IsIdle ()
 
void SetPopEvent (HANDLE hEvent)
 
- Public Member Functions inherited from CCritSec
 CCritSec ()
 
 ~CCritSec ()
 
void Lock ()
 
void Unlock ()
 

Protected Member Functions

DWORD ThreadProc ()
 
BOOL IsQueued ()
 
void QueueSample (IMediaSample *pSample)
 
BOOL IsSpecialSample (IMediaSample *pSample)
 
void FreeSamples ()
 
void NotifyThread ()
 
 __field_ecount_opt (m_lBatchSize) IMediaSample **m_ppSamples
 
 __range (0, m_lBatchSize) LONG m_nBatched
 

Static Protected Member Functions

static DWORD WINAPI InitialThreadProc (__in LPVOID pv)
 

Protected Attributes

IPin *const m_pPin
 
IMemInputPin * m_pInputPin
 
const BOOL m_bBatchExact
 
const LONG m_lBatchSize
 
CSampleListm_List
 
HANDLE m_hSem
 
CAMEvent m_evFlushComplete
 
HANDLE m_hThread
 
LONG m_lWaiting
 
BOOL m_bFlushing
 
BOOL m_bFlushed
 
bool m_bFlushingOpt
 
BOOL m_bTerminate
 
BOOL m_bSendAnyway
 
HRESULT volatile m_hr
 
HANDLE m_hEventPop
 

Detailed Description

Definition at line 14 of file outputq.h.

Constructor & Destructor Documentation

◆ COutputQueue()

COutputQueue::COutputQueue ( IPin *  pInputPin,
__inout HRESULT *  phr,
BOOL  bAuto = TRUE,
BOOL  bQueue = TRUE,
LONG  lBatchSize = 1,
BOOL  bBatchExact = FALSE,
LONG  lListSize = DEFAULTCACHE,
DWORD  dwPriority = THREAD_PRIORITY_NORMAL,
bool  bFlushingOpt = false 
)

Definition at line 43 of file outputq.cpp.

◆ ~COutputQueue()

COutputQueue::~COutputQueue ( )

Definition at line 149 of file outputq.cpp.

Member Function Documentation

◆ __field_ecount_opt()

COutputQueue::__field_ecount_opt ( m_lBatchSize  )
protected

◆ __range()

COutputQueue::__range ( ,
m_lBatchSize   
)
protected

◆ BeginFlush()

void COutputQueue::BeginFlush ( )

Definition at line 463 of file outputq.cpp.

◆ EndFlush()

void COutputQueue::EndFlush ( )

Definition at line 516 of file outputq.cpp.

◆ EOS()

void COutputQueue::EOS ( )

Definition at line 436 of file outputq.cpp.

◆ FreeSamples()

void COutputQueue::FreeSamples ( )
protected

Definition at line 716 of file outputq.cpp.

◆ InitialThreadProc()

DWORD WINAPI COutputQueue::InitialThreadProc ( __in LPVOID  pv)
staticprotected

Definition at line 182 of file outputq.cpp.

◆ IsIdle()

BOOL COutputQueue::IsIdle ( )

Definition at line 775 of file outputq.cpp.

◆ IsQueued()

BOOL COutputQueue::IsQueued ( )
inlineprotected

Definition at line 68 of file outputq.h.

◆ IsSpecialSample()

BOOL COutputQueue::IsSpecialSample ( IMediaSample *  pSample)
inlineprotected

Definition at line 76 of file outputq.h.

◆ NewSegment()

void COutputQueue::NewSegment ( REFERENCE_TIME  tStart,
REFERENCE_TIME  tStop,
double  dRate 
)

Definition at line 393 of file outputq.cpp.

◆ NotifyThread()

void COutputQueue::NotifyThread ( )
protected

Definition at line 759 of file outputq.cpp.

◆ QueueSample()

void COutputQueue::QueueSample ( IMediaSample *  pSample)
protected

Definition at line 558 of file outputq.cpp.

◆ Receive()

HRESULT COutputQueue::Receive ( IMediaSample *  pSample)

Definition at line 576 of file outputq.cpp.

◆ ReceiveMultiple()

HRESULT COutputQueue::ReceiveMultiple ( __in_ecount(nSamples) IMediaSample **  pSamples,
long  nSamples,
__out long *  nSamplesProcessed 
)

Definition at line 594 of file outputq.cpp.

◆ Reset()

void COutputQueue::Reset ( )

Definition at line 701 of file outputq.cpp.

◆ SendAnyway()

void COutputQueue::SendAnyway ( )

Definition at line 374 of file outputq.cpp.

◆ SetPopEvent()

void COutputQueue::SetPopEvent ( HANDLE  hEvent)

Definition at line 798 of file outputq.cpp.

◆ ThreadProc()

DWORD COutputQueue::ThreadProc ( )
protected

Definition at line 203 of file outputq.cpp.

Member Data Documentation

◆ m_bBatchExact

const BOOL COutputQueue::m_bBatchExact
protected

Definition at line 105 of file outputq.h.

◆ m_bFlushed

BOOL COutputQueue::m_bFlushed
protected

Definition at line 122 of file outputq.h.

◆ m_bFlushing

BOOL COutputQueue::m_bFlushing
protected

Definition at line 118 of file outputq.h.

◆ m_bFlushingOpt

bool COutputQueue::m_bFlushingOpt
protected

Definition at line 123 of file outputq.h.

◆ m_bSendAnyway

BOOL COutputQueue::m_bSendAnyway
protected

Definition at line 129 of file outputq.h.

◆ m_bTerminate

BOOL COutputQueue::m_bTerminate
protected

Definition at line 126 of file outputq.h.

◆ m_evFlushComplete

CAMEvent COutputQueue::m_evFlushComplete
protected

Definition at line 110 of file outputq.h.

◆ m_hEventPop

HANDLE COutputQueue::m_hEventPop
protected

Definition at line 135 of file outputq.h.

◆ m_hr

HRESULT volatile COutputQueue::m_hr
protected

Definition at line 132 of file outputq.h.

◆ m_hSem

HANDLE COutputQueue::m_hSem
protected

Definition at line 109 of file outputq.h.

◆ m_hThread

HANDLE COutputQueue::m_hThread
protected

Definition at line 111 of file outputq.h.

◆ m_lBatchSize

const LONG COutputQueue::m_lBatchSize
protected

Definition at line 106 of file outputq.h.

◆ m_List

CSampleList* COutputQueue::m_List
protected

Definition at line 108 of file outputq.h.

◆ m_lWaiting

LONG COutputQueue::m_lWaiting
protected

Definition at line 116 of file outputq.h.

◆ m_pInputPin

IMemInputPin* COutputQueue::m_pInputPin
protected

Definition at line 104 of file outputq.h.

◆ m_pPin

IPin* const COutputQueue::m_pPin
protected

Definition at line 103 of file outputq.h.


The documentation for this class was generated from the following files: