0

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

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

有人可以给我一个关于这个的垃圾信息吗?

4

1 回答 1

1

如果您的意思是 VC1 序列头,请通过规范信息查看MF_MT_USER_DATA属性。当 MF Session Manager 调用SetOutputType()解码器 MFT 时,它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. */

   ...
}
于 2012-06-09T08:03:12.540 回答