读书人

求一段directshow播放socket接收到的视

发布时间: 2013-01-25 15:55:29 作者: rapoo

求一段directshow播放socket接收到的视频信息的代码
求一段directshow播放socket接收到的视频信息的代码,最好是c++的
[解决办法]
//接收端
void CCapture::ReceiveVedio(HWND m_hWnd)
{
HRESULT hr;
CoCreateInstance(CLSID_CaptureGraphBuilder2 , NULL, CLSCTX_INPROC,
IID_ICaptureGraphBuilder2, (void **) &pCapture);
hr = CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
IID_IGraphBuilder, (void **)&pReceiveGrap);
hr = CoCreateInstance(CLSID_DSNetReceive, NULL, CLSCTX_INPROC_SERVER,
IID_IBaseFilter, (void**)&pReceive); //接收端
hr = CoCreateInstance(CLSID_VideoDeCompressorCategory, NULL, CLSCTX_INPROC_SERVER,
IID_IBaseFilter, (void**)&pDecodec); //解码器
hr = CoCreateInstance(CLSID_VideoRenderer,0,CLSCTX_ALL,
IID_IBaseFilter,(void**)&pReceivePreview);
hr =pReceiveGrap->AddFilter(pReceive,L"Xvid Receive");
ParameterSetReceive(pReceive);

pCapture->SetFiltergraph(pReceiveGrap);
hr =pReceiveGrap->AddFilter(pDecodec,L"Xvid Decodec");
hr =pReceiveGrap->AddFilter(pReceivePreview,L"Previvew");
//连接引脚
IPin *p1Out=FindPin(pReceive,PINDIR_OUTPUT);
IPin *p2In=FindPin(pDecodec,PINDIR_INPUT);
hr=pReceiveGrap->Connect(p1Out,p2In);

IPin *p2Out=FindPin(pDecodec,PINDIR_OUTPUT);
IPin *p3In=FindPin(pReceivePreview,PINDIR_INPUT);
hr=pReceiveGrap->Connect(p2Out,p3In);

pReceiveGrap->QueryInterface(IID_IVideoWindow,(LPVOID*)&pReceiveViewWindow);
SetVideoWindow(m_hWnd,pReceiveViewWindow);
}
请采纳,修改

读书人网 >C++

热点推荐