在某些多媒体框架中,我们发送规范信息,如VC1配置文件类型(AP / SP / MP)和比特流格式(RCV)作为WMV解析器和WMV解码器之间的第一帧。规范信息用于初始化WMV解码器。
我正在使用默认的Media Foundation WMV Source和我自己的WMV解码器MFT。当我从MFT转储数据时,它只有视频数据而没有规范信息。所以,我认为规范信息是使用其他一些界面设置的。
有人可以给我一个垃圾信息吗?
答案 0 :(得分:1)
如果您指的是VC1序列标题,请通过spec信息查看MF_MT_USER_DATA属性。当MF会话管理器调用解码器MFT的SetOutputType()
时,它会将MF_MT_USER_DATA
作为blob提供。以下代码段可能会给你一个提示。
HRESULT SetOutputType(DWORD dwStreamID, IMFMediaType* pmt, DWORD dwFlags)
{
...
BYTE* seqData;
DWORD seqLength;
HRESULT hr;
hr = pmt->GetBlobSize(MF_MT_USER_DATA, &seqLength);
if (SUCCEEDED(hr))
{
seqData = (BYTE*) malloc(seqLength);
if (seqData != NULL)
{
hr = pmt->GetBlob(MF_MT_USER_DATA, seqLength, &seqLength);
}
}
/* Use MF_MT_USER_DATA to do something. */
...
}