亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? serverdlg.cpp

?? 采用DirecShow通過網(wǎng)絡(luò)傳輸實(shí)現(xiàn)遠(yuǎn)程視頻動態(tài)播放,
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
		pIn=UFilterUtils::GetPin(mAudioRenderer,TRUE,"Audio");
		if (SUCCEEDED(mGraph->Connect(pOut,pIn)))
			pass=TRUE;
	}

	if(pass)
	{
		pass=FALSE;
		pOut=UFilterUtils::GetPin(mAudioInfinitePin,FALSE,"Output2");
		pIn=mAudioSender->GetPin(0);
		if (SUCCEEDED(mGraph->Connect(pOut,pIn)))
			pass=TRUE;
	}

	return pass;

}

BOOL CServerDlg::CreateOGGFilters()
{
	HRESULT hr = NOERROR;
	BOOL  pass = FALSE;
	IPin * pOut = NULL;
	IPin * pIn  = NULL;
	IFileSourceFilter * mFileFilter;

	if (SUCCEEDED(CoCreateInstance(CLSID_MYFILESOURCEFILTER, NULL, CLSCTX_INPROC_SERVER,
		IID_IFileSourceFilter, (void **)&mFileFilter)))
	{
		WCHAR playingID[200];
		MultiByteToWideChar(CP_ACP,0,mPlayingMedia.mFilePath,-1,playingID,200);
		if(SUCCEEDED(mFileFilter->Load(playingID,NULL)))
		{
			if(SUCCEEDED(mFileFilter->QueryInterface(IID_IBaseFilter,(void **)&mFile)))
			{				
					mGraph->AddFilter(mFile,L"File");
					pass=TRUE;
			}	
		}
		mFileFilter->Release();
	}

	if(pass)
	{
		pass=FALSE;
		if (SUCCEEDED(CoCreateInstance(CLSID_MYOGGSPLITTER, NULL, CLSCTX_INPROC_SERVER,
				IID_IBaseFilter, (void **)&mSplitter)))
		{
			if (SUCCEEDED(mGraph->AddFilter(mSplitter,L"Splitter")))
				pass=TRUE;
		}
	}

	if(pass)
	{
		
		pass=FALSE;
		if (SUCCEEDED(CoCreateInstance(CLSID_MYINFINITEPIN, NULL, CLSCTX_INPROC_SERVER,
				IID_IBaseFilter, (void **)&mInfinitePin)))
		{
			if (SUCCEEDED(mGraph->AddFilter(mInfinitePin,L"InfinitePin")))
				pass=TRUE;
		}
	}

	if(pass)
	{
		pass=FALSE;
		if (SUCCEEDED(CoCreateInstance(CLSID_VideoRenderer, NULL, CLSCTX_INPROC_SERVER,
				IID_IBaseFilter, (void **)&mVideoRenderer)))
		{
			if (SUCCEEDED(mGraph->AddFilter(mVideoRenderer,L"VideoRenderer")))
				pass=TRUE;
		}
	}

	if(pass)
	{
	
		pass=FALSE;
		mVideoSender = new CFilterNetSender(NULL, &hr);
		IBaseFilter * pFilter = NULL;
		mVideoSender->QueryInterface(IID_IBaseFilter, (void**)&pFilter);
		if (SUCCEEDED(mGraph->AddFilter(pFilter, L"Video Sender")))
	        pass=TRUE;
	}

	if(pass)
	{
		
		pass=FALSE;
		if (SUCCEEDED(CoCreateInstance(CLSID_MYINFINITEPIN, NULL, CLSCTX_INPROC_SERVER,
				IID_IBaseFilter, (void **)&mTempInfinitePin)))
		{
			if (SUCCEEDED(mGraph->AddFilter(mTempInfinitePin,L"TempInfinitePin")))
				pass=TRUE;
		}
	}

	if(pass)
	{
		pass=FALSE;
		if (SUCCEEDED(CoCreateInstance(CLSID_DSoundRender, NULL, CLSCTX_INPROC_SERVER,
				IID_IBaseFilter, (void **)&mAudioRenderer)))
		{
			if (SUCCEEDED(mGraph->AddFilter(mAudioRenderer,L"AudioRenderer")))
				pass=TRUE;
		}
	}

	if(pass)
	{
		pass=FALSE;
		mAudioSender = new CFilterNetSender(NULL, &hr);
		IBaseFilter * pFilter = NULL;
		mAudioSender->QueryInterface(IID_IBaseFilter, (void**)&pFilter);
		if (SUCCEEDED(mGraph->AddFilter(pFilter, L"Audio Sender")))
	        pass=TRUE;
	}

	if(pass)
	{
		pOut=UFilterUtils::GetPin(mFile,FALSE,"Output");
		pIn=UFilterUtils::GetPin(mSplitter,TRUE,"Input");
		if (SUCCEEDED(mGraph->Connect(pOut,pIn)))
			pass=TRUE;
	}

	if(pass)
	{
		pOut=UFilterUtils::GetPin(mSplitter,FALSE,"Video");
		pIn=UFilterUtils::GetPin(mInfinitePin,TRUE,"Input");
		if (SUCCEEDED(mGraph->Connect(pOut,pIn)))
			pass=TRUE;
	}

	if(pass)
	{
		pass=FALSE;
		pOut=UFilterUtils::GetPin(mInfinitePin,FALSE,"Output1");
		pIn=UFilterUtils::GetPin(mVideoRenderer,TRUE,"Input");
		if (SUCCEEDED(mGraph->Connect(pOut,pIn)))
			pass=TRUE;
		
	}

	if(pass)
	{
		pass=FALSE;
		pOut=UFilterUtils::GetPin(mInfinitePin,FALSE,"Output2");
		pIn=mVideoSender->GetPin(0);
		if (SUCCEEDED(mGraph->Connect(pOut,pIn)))
			pass=TRUE;
	}

	if(pass)
	{
		
		pass=FALSE;
		if (SUCCEEDED(CoCreateInstance(CLSID_MYINFINITEPIN, NULL, CLSCTX_INPROC_SERVER,
				IID_IBaseFilter, (void **)&mAudioInfinitePin)))
		{
			if (SUCCEEDED(mGraph->AddFilter(mAudioInfinitePin,L"AudioInfinitePin")))
				pass=TRUE;
		}
	}
	if(pass)
	{
		pass=FALSE;
		pOut=UFilterUtils::GetPin(mSplitter,FALSE,"Vorbis");
		pIn=UFilterUtils::GetPin(mAudioInfinitePin,TRUE,"Input");
		if (SUCCEEDED(mGraph->Connect(pOut,pIn)))
		pass=TRUE;
	}

		if(pass)
	{
		pass=FALSE;
		pOut=UFilterUtils::GetPin(mAudioInfinitePin,FALSE,"Output1");
		pIn=UFilterUtils::GetPin(mAudioRenderer,TRUE,"Audio");
		if (SUCCEEDED(mGraph->Connect(pOut,pIn)))
			pass=TRUE;
	}

	if(pass)
	{
		pass=FALSE;
		pOut=UFilterUtils::GetPin(mAudioInfinitePin,FALSE,"Output2");
		pIn=mAudioSender->GetPin(0);
		if (SUCCEEDED(mGraph->Connect(pOut,pIn)))
			pass=TRUE;
	}

	return pass;
}

BOOL CServerDlg::CreateMPEGFilters()
{
		HRESULT hr = NOERROR;
	BOOL  pass = FALSE;
	IPin * pOut = NULL;
	IPin * pIn  = NULL;
	IFileSourceFilter * mFileFilter;

	if (SUCCEEDED(CoCreateInstance(CLSID_MYFILESOURCEFILTER, NULL, CLSCTX_INPROC_SERVER,
		IID_IFileSourceFilter, (void **)&mFileFilter)))
	{
		WCHAR playingID[200];
		MultiByteToWideChar(CP_ACP,0,mPlayingMedia.mFilePath,-1,playingID,200);
		if(SUCCEEDED(mFileFilter->Load(playingID,NULL)))
		{
			if(SUCCEEDED(mFileFilter->QueryInterface(IID_IBaseFilter,(void **)&mFile)))
			{				
					mGraph->AddFilter(mFile,L"File");
					pass=TRUE;
			}	
		}
		mFileFilter->Release();
	}

	if(pass)
	{
		pass=FALSE;
		if (SUCCEEDED(CoCreateInstance(CLSID_MYMPEGSPLITTER, NULL, CLSCTX_INPROC_SERVER,
				IID_IBaseFilter, (void **)&mSplitter)))
		{
			if (SUCCEEDED(mGraph->AddFilter(mSplitter,L"Splitter")))
				pass=TRUE;
		}
	}

	if(pass)
	{
		
		pass=FALSE;
		if (SUCCEEDED(CoCreateInstance(CLSID_MYINFINITEPIN, NULL, CLSCTX_INPROC_SERVER,
				IID_IBaseFilter, (void **)&mInfinitePin)))
		{
			if (SUCCEEDED(mGraph->AddFilter(mInfinitePin,L"InfinitePin")))
				pass=TRUE;
		}
	}

	if(pass)
	{
		pass=FALSE;
		if (SUCCEEDED(CoCreateInstance(CLSID_VideoRenderer, NULL, CLSCTX_INPROC_SERVER,
				IID_IBaseFilter, (void **)&mVideoRenderer)))
		{
			if (SUCCEEDED(mGraph->AddFilter(mVideoRenderer,L"VideoRenderer")))
				pass=TRUE;
		}
	}

	if(pass)
	{
	
		pass=FALSE;
		mVideoSender = new CFilterNetSender(NULL, &hr);
		IBaseFilter * pFilter = NULL;
		mVideoSender->QueryInterface(IID_IBaseFilter, (void**)&pFilter);
		if (SUCCEEDED(mGraph->AddFilter(pFilter, L"Video Sender")))
	        pass=TRUE;
	}

	if(pass)
	{
		
		pass=FALSE;
		if (SUCCEEDED(CoCreateInstance(CLSID_MYINFINITEPIN, NULL, CLSCTX_INPROC_SERVER,
				IID_IBaseFilter, (void **)&mTempInfinitePin)))
		{
			if (SUCCEEDED(mGraph->AddFilter(mTempInfinitePin,L"TempInfinitePin")))
				pass=TRUE;
		}
	}

	if(pass)
	{
		pass=FALSE;
		if (SUCCEEDED(CoCreateInstance(CLSID_DSoundRender, NULL, CLSCTX_INPROC_SERVER,
				IID_IBaseFilter, (void **)&mAudioRenderer)))
		{
			if (SUCCEEDED(mGraph->AddFilter(mAudioRenderer,L"AudioRenderer")))
				pass=TRUE;
		}
	}

	if(pass)
	{
		pass=FALSE;
		mAudioSender = new CFilterNetSender(NULL, &hr);
		IBaseFilter * pFilter = NULL;
		mAudioSender->QueryInterface(IID_IBaseFilter, (void**)&pFilter);
		if (SUCCEEDED(mGraph->AddFilter(pFilter, L"Audio Sender")))
	        pass=TRUE;
	}

	if(pass)
	{
		pOut=UFilterUtils::GetPin(mFile,FALSE,"Output");
		pIn=UFilterUtils::GetPin(mSplitter,TRUE,"Input");
		if (SUCCEEDED(mGraph->Connect(pOut,pIn)))
			pass=TRUE;
	}

	if(pass)
	{
		pOut=UFilterUtils::GetPin(mSplitter,FALSE,"Video");
		pIn=UFilterUtils::GetPin(mInfinitePin,TRUE,"Input");
		if (SUCCEEDED(mGraph->Connect(pOut,pIn)))
			pass=TRUE;
	}

	if(pass)
	{
		pass=FALSE;
		pOut=UFilterUtils::GetPin(mInfinitePin,FALSE,"Output1");
		pIn=UFilterUtils::GetPin(mVideoRenderer,TRUE,"Input");
		if (SUCCEEDED(mGraph->Connect(pOut,pIn)))
			pass=TRUE;
		
	}

	if(pass)
	{
		pass=FALSE;
		pOut=UFilterUtils::GetPin(mInfinitePin,FALSE,"Output2");
		pIn=mVideoSender->GetPin(0);
		if (SUCCEEDED(mGraph->Connect(pOut,pIn)))
			pass=TRUE;
	}

	if(pass)
	{
		
		pass=FALSE;
		if (SUCCEEDED(CoCreateInstance(CLSID_MYINFINITEPIN, NULL, CLSCTX_INPROC_SERVER,
				IID_IBaseFilter, (void **)&mAudioInfinitePin)))
		{
			if (SUCCEEDED(mGraph->AddFilter(mAudioInfinitePin,L"AudioInfinitePin")))
				pass=TRUE;
		}
	}
	if(pass)
	{
		pass=FALSE;
		pOut=UFilterUtils::GetPin(mSplitter,FALSE,"Audio");
		pIn=UFilterUtils::GetPin(mAudioInfinitePin,TRUE,"Input");
		if (SUCCEEDED(mGraph->Connect(pOut,pIn)))
		pass=TRUE;
	}

		if(pass)
	{
		pass=FALSE;
		pOut=UFilterUtils::GetPin(mAudioInfinitePin,FALSE,"Output1");
		pIn=UFilterUtils::GetPin(mAudioRenderer,TRUE,"Audio");
		if (SUCCEEDED(mGraph->Connect(pOut,pIn)))
			pass=TRUE;
	}

	if(pass)
	{
		pass=FALSE;
		pOut=UFilterUtils::GetPin(mAudioInfinitePin,FALSE,"Output2");
		pIn=mAudioSender->GetPin(0);
		if (SUCCEEDED(mGraph->Connect(pOut,pIn)))
			pass=TRUE;
	}

	return pass;

}

void CServerDlg::SendSimpleCommand(long inCommand)
{
	char  buf[MAX_COMMAND_SIZE];
	long  len  = sizeof(Net_Command);
	// Specify command id first
	long * pCmd = (long *) buf;
	*pCmd = inCommand;
	*pCmd = htonl(*pCmd);
     mControll.Send(buf, len);
}

void CServerDlg::OnTimer(UINT nIDEvent) 
{
    if(nIDEvent==mSliderTimer)
	{
		double pos=0,duration=1;
		if (mSeeking)
		{
			GetCurrentPosition(&pos);
			GetDuration(&duration);
			int newpos=int(pos*1000/duration);
			if(mProgress.GetPos()!=newpos)
			{
				mProgress.SetPos(newpos);
				SendProgress(newpos);
			}
		}
	}
	CDialog::OnTimer(nIDEvent);
}

void CServerDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
	if(pScrollBar->GetSafeHwnd()==mProgress.GetSafeHwnd())
	{
		if(mGraph)
		{
			double duration=1;
			GetDuration(&duration);
			double pos=duration*mProgress.GetPos()/1000.;
			SetCurrentPosition(pos);
		}
	}
	CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}

void CServerDlg::GetDuration(double *outDuration)
{
	if (mSeeking)
	{
		__int64 length = 0;
		if (SUCCEEDED(mSeeking->GetDuration(&length)))
		{
			*outDuration = ((double)length) / 10000000.;
		}
	}

}

void CServerDlg::GetCurrentPosition(double *outPosition)
{
	if (mSeeking)
	{
		__int64 position = 0;
		if (SUCCEEDED(mSeeking->GetCurrentPosition(&position)))
		{
			*outPosition = ((double)position) / 10000000.;		
		}
	}
}

void CServerDlg::SetCurrentPosition(double inPosition)
{
	if (mSeeking)
	{
		__int64 one = 10000000;
		__int64 position = (__int64)(one * inPosition);
		HRESULT hr = mSeeking->SetPositions(&position, AM_SEEKING_AbsolutePositioning | AM_SEEKING_SeekToKeyFrame, 
			0, AM_SEEKING_NoPositioning);
	}
}

void CServerDlg::SendProgress(int pos)
{
	char  buf[MAX_COMMAND_SIZE];
	long  len  = sizeof(Net_Command) + sizeof(Media_Progress);
	long * pCmd = (long *) buf;
	*pCmd = Cmd_SetProgress;
	*pCmd = htonl(*pCmd);
	pCmd++;
	Media_Progress * pData = (Media_Progress *) pCmd;
	pData->program_Progress = pos;
	pData->my_hton();
	mControll.Send(buf, len);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
看电视剧不卡顿的网站| 亚洲欧美电影院| 美女视频一区二区| 欧美一级欧美一级在线播放| 日本中文字幕一区二区视频| 日韩三级在线观看| 精品一区二区综合| 国产蜜臀97一区二区三区| 成人在线视频首页| 亚洲精品视频在线| 欧美乱妇20p| 久久99精品久久久| 国产日韩欧美制服另类| 91视视频在线观看入口直接观看www | 欧美在线一二三| 亚洲成a人片综合在线| 日韩欧美亚洲国产另类| 国产一区二区三区四区五区入口| 国产精品乱码人人做人人爱| 色狠狠综合天天综合综合| 日日摸夜夜添夜夜添精品视频| 精品国产乱码久久久久久影片| 久久99国产精品免费| 国产精品嫩草久久久久| 欧美日韩视频在线一区二区| 精品亚洲欧美一区| 国产精品美女久久久久久久网站| 91黄色在线观看| 激情文学综合网| 亚洲伦理在线免费看| 欧美一级高清大全免费观看| 成人小视频免费在线观看| 亚洲在线视频一区| 国产视频一区不卡| 欧美日韩国产一二三| 国产精品99久久久| 亚洲一区在线观看免费观看电影高清 | 在线一区二区视频| 精品一区二区三区蜜桃| 亚洲欧美日韩电影| 精品久久久久久久久久久久久久久 | 欧美视频一区二| 国产盗摄一区二区| 婷婷亚洲久悠悠色悠在线播放| 国产调教视频一区| 5858s免费视频成人| jlzzjlzz国产精品久久| 日本aⅴ亚洲精品中文乱码| 中文字幕日韩欧美一区二区三区| 欧美一二区视频| 日本道色综合久久| 国产亚洲一区二区三区四区| 色偷偷88欧美精品久久久| 欧美三级乱人伦电影| 亚洲国产视频在线| 亚洲国产cao| 国产一区二区三区蝌蚪| 亚洲一级二级在线| 国产精品麻豆久久久| 精品国内二区三区| 欧美日韩国产精品成人| 国产成人精品www牛牛影视| 日韩va欧美va亚洲va久久| 亚洲美女精品一区| 久久久久久久久岛国免费| 91麻豆精品国产91久久久久久| 99久久国产免费看| 成人综合婷婷国产精品久久蜜臀| 国产在线精品免费| 老司机免费视频一区二区三区| 亚洲第一福利一区| 亚洲一级电影视频| 亚洲国产精品麻豆| 亚洲影视在线播放| 亚洲一区二区精品久久av| 一区二区三区成人在线视频| 最新欧美精品一区二区三区| 中文字幕乱码亚洲精品一区| 久久人人97超碰com| 精品国产制服丝袜高跟| 日韩精品一区二区三区在线播放 | 久久日韩精品一区二区五区| 欧美v国产在线一区二区三区| 在线播放中文字幕一区| 欧美挠脚心视频网站| 欧美日韩电影在线播放| 欧美日韩视频专区在线播放| 欧美精品久久久久久久多人混战 | 国产精品激情偷乱一区二区∴| 国产欧美精品一区aⅴ影院| 国产欧美一区二区精品性色 | 欧美老人xxxx18| 91麻豆精品国产自产在线 | 欧美高清在线一区二区| 国产农村妇女毛片精品久久麻豆| 国产精品久久777777| 亚洲人成亚洲人成在线观看图片 | 亚洲一区二区三区四区在线免费观看 | 国产精品国产三级国产aⅴ入口| 国产精品美女久久久久久| 中文字幕一区二区三区不卡在线 | 国产视频在线观看一区二区三区| 国产女同互慰高潮91漫画| √…a在线天堂一区| 亚洲午夜精品一区二区三区他趣| 亚洲高清免费观看高清完整版在线观看| 午夜私人影院久久久久| 久久精品二区亚洲w码| 国产精品一区二区久久精品爱涩| 国产电影精品久久禁18| 日本韩国欧美一区二区三区| 欧美日韩欧美一区二区| 精品国产一区二区三区久久影院| 国产色爱av资源综合区| 一区二区三区四区精品在线视频| 日本中文字幕不卡| 99麻豆久久久国产精品免费| 欧美日韩一区精品| 久久综合成人精品亚洲另类欧美 | 精品电影一区二区三区| 国产精品三级久久久久三级| 亚洲成人一区二区| 国产成人欧美日韩在线电影| 欧美艳星brazzers| 久久亚洲免费视频| 一区二区三区在线不卡| 久久91精品国产91久久小草| 色网综合在线观看| 久久综合精品国产一区二区三区| 亚洲线精品一区二区三区| 国产福利一区在线| 欧美夫妻性生活| 中文字幕一区免费在线观看| 日韩成人伦理电影在线观看| av网站免费线看精品| 欧美刺激午夜性久久久久久久| 亚洲色图一区二区| 国产精品综合网| 欧美日韩中文字幕一区| 久久色在线观看| 日韩不卡手机在线v区| 成人黄色大片在线观看| 亚洲精品一线二线三线| 亚洲成年人影院| 色哟哟一区二区在线观看| 久久综合国产精品| 天堂蜜桃91精品| 欧美视频中文字幕| 综合在线观看色| 国产成人亚洲精品狼色在线| 欧美一区二区三区电影| 天堂一区二区在线免费观看| 在线看国产一区| 亚洲人成网站影音先锋播放| 国产91在线看| 久久久久九九视频| 乱中年女人伦av一区二区| 欧美日韩欧美一区二区| 亚洲午夜视频在线观看| 在线中文字幕一区| 一区二区三区在线观看欧美| 色综合网色综合| 成人免费在线视频| 不卡的av电影| 国产精品女人毛片| 国产成人一区在线| 国产三级欧美三级日产三级99| 国产一区二区在线视频| 精品人伦一区二区色婷婷| 蜜臀av一区二区三区| 91精品国产一区二区| 午夜精品成人在线| 7777精品伊人久久久大香线蕉最新版| 亚洲精品国产精品乱码不99| 色综合中文字幕国产 | 国产·精品毛片| 久久精品一区二区三区不卡| 国产一区二区三区四区五区美女 | 国产一区亚洲一区| 久久久.com| 成人午夜在线免费| 亚洲色图欧洲色图婷婷| 色婷婷av一区二区三区之一色屋| 亚洲同性gay激情无套| 色偷偷成人一区二区三区91| 亚洲国产欧美在线| 欧美一区二区在线观看| 久久99精品久久久久久动态图 | 国产一区二区三区精品欧美日韩一区二区三区 | 最新日韩在线视频| 欧美在线影院一区二区| 日本大胆欧美人术艺术动态| 久久色成人在线| 91视频精品在这里| 亚洲国产成人91porn| 精品人在线二区三区| 不卡在线观看av| 五月天国产精品| 国产性色一区二区| 欧美综合一区二区三区|