我正在编写一个具有视频输出 PIN 的文件源过滤器,输出引脚类型是 H.264 原始格式:
HRESULT CVideoOutPin::GetMediaType(CMediaType *pMediaType)
{
CAutoLock lock(m_pFilter->pStateLock());
ZeroMemory(pMediaType, sizeof(CMediaType));
pMediaType->InitMediaType();
// {7807c3af-524f-11ce-9f53-0020af0ba770}
pMediaType->SetSubtype(&MEDIASUBTYPE_h264raw);
unsigned int * pSize = (unsigned int *) pMediaType->ReallocFormatBuffer(sizeof(unsigned int) * 2);
pSize[0] = m_pFlvFile->GetWidth();
pSize[1] = m_pFlvFile->GetHeight();
pMediaType->SetFormat((BYTE *)pSize, sizeof(unsigned int) * 2);
//*pMediaType = m_oVideoMediaType;
return S_OK;
}
我在 GraphEdit.exe 中尝试了几个解压缩过滤器,但没有一个可以连接到我的输出引脚。
我可以使用任何 DirectShow 过滤器来完成图表吗?