Share via


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,
Streams.h

Library

ole32.lib,
Ole32auth.lib,
Strmbase.lib,
Strmiids.lib,
uuid.lib

See Also

Reference

COutputQueue Class