CBaseOutputPin 方法

Deliver方法将媒体示例传递到连接的输入插针。

语法

virtual HRESULT Deliver(
   IMediaSample *pSample
);

parameters

pSample

指向示例的 IMediaSample 接口的指针。

返回值

返回一个 HRESULT 值。 可能的值包括下表中列出的值。

返回代码 说明
S _ 正常
成功。
VFW _ E _ 未 _ 连接
未连接 Pin。

备注

此方法调用输入插针上的 IMemInputPin:: Receive 方法。 如果 IMemInputPin:: ReceiveCanBlock方法返回 S OK, Receive 将会阻止 _ 。

调用此方法后,释放示例。 输入插针可能会在示例中保留引用计数,因此,请不要重复使用该示例。 始终调用 CBaseOutputPin:: GetDeliveryBuffer 方法来获取新的示例。

在调用此方法之前,请保存筛选器的临界区。 否则,在调用方法的过程中,pin 可能会断开连接。 如果筛选器使用工作线程来提供示例,请在筛选器准备好交付示例时,保存临界区。 否则,可以在筛选器的 IMemInputPin:: Receive 方法中保存临界区,筛选器将在其中处理示例。

工作线程可能会造成潜在的死锁。 当线程包含关键部分时,它可能会等待筛选器中的状态更改。 同时,状态更改可能会等待线程完成。 若要防止出现这种情况,状态更改代码应向终止线程的事件发出信号,然后等待线程完成信号。

要求

要求 Value
标头
Amfilter (包含流 .h)

Strmbase (零售版本) ;
Strmbasd (调试版本)

另请参阅

CBaseOutputPin 类