COutputQueue (Compact 2013)
3/26/2014
Constructs a COutputQueue object.
Syntax
COutputQueue(
IPin* pInputPin,
HRESULT* phr,
BOOL bAuto = TRUE,
BOOL bQueue = TRUE,
LONG lBatchSize,
BOOL bBatchExact,
LONG lListSize,
DWORD dwPriority
);
Parameters
- pInputPin
Connected pin to which to send data.
- phr
HRESULT return code.
- bAuto
If TRUE, the queuing mode is determined by asking the connected input pin if the pin can block (by calling IMemInputPin::ReceiveCanBlock). If FALSE, queued or direct mode is set by the bQueue parameter.
- bQueue
Determines if samples are queued for delivery by a worker thread or are being sent directly. Ignored if bAuto is TRUE.
- lBatchSize
Size of the batch (1 for no batching).
- bBatchExact
Batch exactly to lBatchSize (but use SendAnyway to override batching).
- lListSize
Likely number in the list.
- dwPriority
Priority given to the created thread.
Return Value
None.
Remarks
The phr parameter should be updated only to report errors.
Usually bAuto will be TRUE.
In that case, the constructor calls IMemInputPin::ReceiveCanBlock on the downstream pin to determine whether to create a thread, and so to send samples asynchronously.
If bAuto is FALSE, a thread is created if, and only if, bQueue is TRUE.
If the batch size is not 1, data is not sent until lBatchSize samples have been received by the object.
The exceptions are that, if fewer than lBatchSize samples are passed to COutputQueue::Receive or COutputQueue::ReceiveMultiple in this object and bBatchExact is FALSE, the samples will be sent anyway.
If bBatchExact is TRUE, the COutputQueue::SendAnyway member function will cause the samples to be sent to the thread (if the thread is created).
Requirements
Header |
dshow.h, |
Library |
ole32.lib, |