深入探究媒体会话开发:从拓扑构建到数据处理
1. 拓扑构建与媒体类型协商
1.1 处理字节流处理程序事件
在媒体会话开发中, CMP3SessionTopoBuilder::HandleByteStreamHandlerEvent() 函数起到关键作用。它首先从字节流处理程序中提取实际的 IMFMediaSource 对象,接着调用辅助函数来协商拓扑中各个组件之间的媒体类型。若一切顺利,该函数会触发 MFSessionTopologyStatus 事件,向播放器表明拓扑已准备好,随后播放器将开始播放。
// make sure that what was created was the media source
if(objectType != MF_OBJECT_MEDIASOURCE)
{
hr = E_UNEXPECTED;
break;
}
// get the IMFMediaSource pointer from the IUnknown we got from EndCreateObject
m_pSource = pUnkSource;
BREAK_ON_NULL(m_pSource, E_UNEXPECTED);
// call a function to negotiate the media types between each MF component in the
// topology
hr = NegotiateMediaTypes();
BREAK_ON_F
超级会员免费看
订阅专栏 解锁全文
28

被折叠的 条评论
为什么被折叠?



