如何在媒体基础上为解码器设置wmv规范信息

时间:2012-05-23 07:25:31

标签: profile wmv specifications ms-media-foundation mft

在某些多媒体框架中,我们发送规范信息,如VC1配置文件类型(AP / SP / MP)和比特流格式(RCV)作为WMV解析器和WMV解码器之间的第一帧。规范信息用于初始化WMV解码器。

我正在使用默认的Media Foundation WMV Source和我自己的WMV解码器MFT。当我从MFT转储数据时,它只有视频数据而没有规范信息。所以,我认为规范信息是使用其他一些界面设置的。

有人可以给我一个垃圾信息吗?

1 个答案:

答案 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. */

   ...
}