COutputQueue.COutputQueue 构造函数

[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayerIMFMediaEngine媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

构造函数方法。

语法

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

参数

pInputPin

指向输入引脚的 IPin 接口的指针。 对象会将示例传送到此图钉。

phr

指向 HRESULT 返回代码的指针。 在调用此方法之前,将值设置为S_OK。 返回时, phr 会收到一个值,该值指示方法的成功或失败。

bAuto

指定对象是否决定何时创建队列的标志。 如果 为 TRUE,则仅当输入引脚可能阻止时, 对象才会创建队列。 如果 为 FALSE,则 bQueue 参数指定是否创建队列。

bQueue

如果 bAutoTRUE,则忽略此参数。 如果 bAutoFALSE,则此标志指定是否创建队列。

lBatchSize

一批中要交付的最大样本数。

bBatchExact

指定是否使用确切批大小的标志。 如果 为 TRUE,则对象将等待 lBatchSize 样本,然后再将其传送到输入引脚。 如果 为 FALSE,则对象在接收样本时传递样本。

lListSize

队列的缓存大小。 默认值 DEFAULTCACHE 是为 CBaseList 类定义的常量。

dwPriority

提供示例的线程的优先级。

备注

如果 bAutoTRUE,则对象在下游引脚上调用 IMemInputPin::ReceiveCanBlock 方法。 如果 ReceiveCanBlock 返回S_OK (这意味着引脚可能会阻止 IMemInputPin::Receive 调用) ,则 对象将创建一个线程来传送示例。 否则,它不会创建线程。

如果 bAutoFALSE,则 bQueue 的值确定是否创建线程。

如果 对象创建线程,它将线程句柄分配给 COutputQueue::m_hThread 成员变量。 线程过程为 COutputQueue::InitialThreadProc,线程参数是指向此的指针。 对象还创建一个用于保存样本的队列,该队列由 COutputQueue::m_List 成员变量提供。

要求

要求
标头
Outputq.h (包括 Streams.h)

Strmbase.lib (零售版本) ;
Strmbasd.lib (调试生成)

另请参阅

COutputQueue 类