MEDeviceStreamCreated 事件

MEDeviceStreamCreated 是设备 MFT 使用 MEUnknown 媒体事件生成的扩展媒体事件类型。

此扩展媒体事件类型没有有效负载。 应通过 IMFMediaEvent::GetStatus 方法提供适当的 HRESULT。

言论

此扩展媒体事件必须由设备 MFT 作为 DMFT 输出流的媒体类型选择的一部分发送。 在 IMFDeviceTransform 接口上调用 SetOutputStreamState 时,DMFT 负责使用 METransformInputStreamStateChanged 媒体事件来指示所需输入流状态的变化。 当管道通过调用 DMFT 的 SetInputStreamState 确认输入流状态更改时,DMFT 负责完成其内部状态配置并引发 MEDeviceStreamCreated 扩展媒体事件类型。

如果未引发此扩展媒体事件类型,则设备转换管理器不会向 DMFT 传递任何输入帧。 扩展媒体事件类型还必须设置为 IMFMediaEvent 的属性,即使用 MF_EVENT_MFT_INPUT_STREAM_ID 属性的输出流 ID。

IMFMediaEvent* pMediaEvent = nullptr;

hr = MFCreateMediaEvent (MEUnknown,
                         MEDeviceStreamCreated,
                         S_OK,
                         nullptr,
                         &pMediaEvent);
if (SUCCEEDED(hr))
{
    hr = pMediaEvent->SetUINT32(MF_EVENT_MFT_INPUT_STREAM_ID, GetOutputStreamId());
}

if (SUCCEEDED(hr))
{
    hr = m_pEventQueue->QueueEvent(pMediaEvent);
}

if (nullptr != pMediaEvent)
{
    pMediaEvent->Release();
    pMediaEvent = nullptr;
}

return hr;

要求

要求 价值
支持的最低客户端
Windows 10 [仅限桌面应用]
支持的最低服务器
Windows Server 2016 [仅限桌面应用]
页眉
mftransform.h

另请参阅

Media Foundation 事件

流式处理音频呈现器