如何使dx9中提供的DSNetwork(即dsnet.ax过滤器)与AVI Mux过滤器(加上File Writer)能正确相连

ltprogram 2004-03-12 06:02:31
不知道各位对dx9中提供的DSNetwork熟不熟悉。我对该过滤器改造如下:
接收端:
GetMediaType (
IN int iPosition,
OUT CMediaType * pmt
)
{
ASSERT (pmt) ;
HRESULT hr ;

if (iPosition == 0) {
ASSERT (pmt) ;
pmt -> InitMediaType () ;

pmt -> SetType (& MEDIATYPE_Video) ;///*MEDIATYPE_NULL
pmt -> SetSubtype (& (GUID)FOURCCMap(FCC('DIV3'))) ;
pmt->bFixedSizeSamples=false;
pmt -> bTemporalCompression = TRUE;
pmt -> lSampleSize = 0;
pmt -> formattype = FORMAT_VideoInfo;
pmt -> cbFormat = sizeof(VIDEOINFOHEADER);

VIDEOINFOHEADER * pvihr =new VIDEOINFOHEADER;
pvihr ->bmiHeader.biCompression = FCC('DIV3');
pvihr ->bmiHeader.biHeight = 240;
pvihr ->bmiHeader.biWidth = 320;
pvihr ->bmiHeader.biPlanes = 1;
pvihr ->bmiHeader.biBitCount=24;

::SetRect(&(pvihr ->rcSource),0,0,0,0);
::SetRect(&(pvihr ->rcTarget),0,0,0,0);

pmt -> pbFormat = (BYTE *)pvihr;


hr = S_OK ;
}
else {
hr = VFW_S_NO_MORE_ITEMS ;
}

return hr ;


}


CheckMediaType (
IN const CMediaType * pmt
)
{
if (pmt -> majortype == MEDIATYPE_Video)
{
return NOERROR ;
}

return S_FALSE ;
}


我现在将该过滤器与AVI Mux过滤器相连,以使其能将接收到的视频流写入到一个文件中。连接的时候没有问题,但一运行起来,就出现问题:
“0x1c21d6cd”指令引用的“0x05cc97ae”内存。该内存不能为“written”


各位大虾,救救我吧。
...全文
68 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wl3c 2004-08-23
  • 打赏
  • 举报
回复
越来越高深了!
兴奋!!!
cappuccinoboby 2004-03-25
  • 打赏
  • 举报
回复
可能是接收到的数据没有打时间标签的缘故吧。

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧