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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cmediainfo.cpp

?? 采用DirecShow通過網絡傳輸實現遠程視頻動態播放,
?? CPP
字號:
//
// CMediaInfo.cpp
//

/*-----------------------------------------------------*\
			HQ Tech, Make Technology Easy!       
 More information, please go to http://hqtech.nease.net.
/*-----------------------------------------------------*/
#include <streams.h>
#include "stdafx.h"
#include "CMediaInfo.h"
#include "GlobalDefs.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

IMPLEMENT_SERIAL(CMediaInfo, CObject, 1)
/////////////////////////////////////////////////////////////////////////////
CMediaInfo::CMediaInfo()
{
	mFilePath[0]  = '\0';
	mProgramId    = 0;
	mFileType     = 0;
	mFileSize     = 0;
}

CMediaInfo::CMediaInfo(const CMediaInfo& inMedia)
{
	Clone(inMedia);
}

CMediaInfo::~CMediaInfo()
{
}

void CMediaInfo::Serialize(CArchive& ar)
{
	CObject::Serialize(ar); 

	CString str;
	if (ar.IsStoring())
	{
		str = mFilePath;
		ar << str;
		ar << mProgramId;
		ar << mFileType;
		ar << mFileSize;

	}
	else
	{
		ar >> str;
		strcpy(mFilePath, str);
		ar >> mProgramId;
		ar >> mFileType;
		ar >> mFileSize;
	}
}

CMediaInfo& CMediaInfo::operator=(const CMediaInfo& inMedia)
{
	Clone(inMedia);
	return *this;
}

void CMediaInfo::Clone(const CMediaInfo& inMedia)
{
	strcpy(mFilePath, inMedia.mFilePath);
	mProgramId    = inMedia.mProgramId;
	mFileType     = inMedia.mFileType;
	mFileSize     = inMedia.mFileSize;
}

void CMediaInfo::CopyTo(struct Program_List * outInfo)
{
	memcpy(outInfo->file_path, mFilePath, MAX_FILE_PATH);
	outInfo->pid		   = mProgramId;
	outInfo->file_type     = mFileType;
	outInfo->file_size     = mFileSize;
}

void CMediaInfo::CopyFrom(struct Program_List * inInfo)
{
	memcpy(mFilePath, inInfo->file_path, MAX_FILE_PATH);
	mProgramId    = inInfo->pid;
	mFileType     = inInfo->file_type;
	mFileSize     = inInfo->file_size;
}

BOOL CMediaInfo::SetFilePath(const char * inFile)
{
	if (ParseFile(inFile))
	{
		strcpy(mFilePath, inFile);
		return TRUE;
	}
	return FALSE;
}

void CMediaInfo::SetProgramId(long inPID)
{
	mProgramId = inPID;
}

BOOL CMediaInfo::ParseFile(const char * inFile)
{
	// At first, get the file size
	mFileSize = 0;
	CFileStatus  fileStatus;
	if (CFile::GetStatus(inFile, fileStatus))
	{
		mFileSize = fileStatus.m_size;
	}

	// Get the file extension
	CString strExt = strrchr(inFile, '.');
	if (strExt.CompareNoCase(".mpeg") == 0 ||
		strExt.CompareNoCase(".mpg") == 0 )
	{
		// Further checking...
		if(!CheckMpegFile(inFile))
		{
			AfxMessageBox("MPEG2 is not supported!");
			return FALSE;
		}
	}
	else if (strExt.CompareNoCase(".avi") == 0)
	{
		// Further checking...
		if(CheckOGGFile(inFile))
			mFileType = FT_OGG;
		else
			mFileType = FT_AVI;
	}
	else if (strExt.CompareNoCase(".rm") == 0||
		strExt.CompareNoCase(".rmvb") == 0)
	{
		// Further checking...
		mFileType = FT_REAL;
	}
	else
	{
		AfxMessageBox("This file type is not supported!");
		return FALSE;
	}
	
	return TRUE;
}

// Try to connect to microsoft mpeg1 stream splitter.
// If connection succeeded, mpeg1 file. Otherwise, mpeg2 file.
BOOL CMediaInfo::CheckMpegFile(const char * inFile)
{


	mFileType = FT_MPEG1;      // Default
	IGraphBuilder * pBuilder = NULL;
	CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
		IID_IGraphBuilder, (void **) &pBuilder);
	if (pBuilder)
	{
		// Create a file source filter
		IBaseFilter * pSource = NULL;
		WCHAR  wcFilePath[MAX_PATH];
		MultiByteToWideChar(CP_ACP, 0, inFile, -1, wcFilePath, MAX_PATH);
		pBuilder->AddSourceFilter(wcFilePath, L"Source", &pSource);
		pSource->Release();

		// Create microsoft MPEG-1 Stream Splitter
		IBaseFilter * pSplitter = NULL;
		CoCreateInstance(CLSID_MPEG1Splitter , NULL, CLSCTX_INPROC_SERVER,
			IID_IBaseFilter, (void **)&pSplitter);
		pBuilder->AddFilter(pSplitter, L"MPEG-1 Splitter");
		pSplitter->Release();

		// Try to connect them...
		IPin * pOut = GetPinByDirection(pSource, PINDIR_OUTPUT);
		IPin * pIn  = GetPinByDirection(pSplitter, PINDIR_INPUT);
		HRESULT hr  = pBuilder->ConnectDirect(pOut, pIn, NULL);
		if (FAILED(hr))
		{
			pBuilder->RemoveFilter(pSplitter);
			pBuilder->RemoveFilter(pSource);
			pBuilder->Release();
			return FALSE;

			//mFileType = FT_MPEG2; 
			// Attention here! 1M data at the end of the file!
		}

		pBuilder->RemoveFilter(pSplitter);
		pBuilder->RemoveFilter(pSource);
		pBuilder->Release();
	}
	return TRUE;

}

IPin * CMediaInfo::GetPinByDirection(IBaseFilter * inFilter, 
									 PIN_DIRECTION inDirection)
{
	IPin * foundPin = NULL;
	if (inFilter)
	{
		IEnumPins * pinEnum = 0;
		if (SUCCEEDED(inFilter->EnumPins(&pinEnum)))
		{
			pinEnum->Reset();

			IPin * pin = 0;
			ULONG fetchCount = 0;
			while (!foundPin && SUCCEEDED(pinEnum->Next(1, &pin, &fetchCount)) && 
				fetchCount)
			{
				if (pin)
				{
					PIN_INFO pinInfo;
					if (SUCCEEDED(pin->QueryPinInfo(&pinInfo)))
					{
						pinInfo.pFilter->Release();
						if (pinInfo.dir == inDirection)
						{
							foundPin = pin;
						}
					}
					// If found pin, we keep pin reference.
					// If not, we release it here.
					if (!foundPin)
					{
						pin->Release();
					}
					pin = 0;
				}
			}
			pinEnum->Release();
		}
	}

	// We don't keep outstanding reference count
	if (foundPin)
	{
		foundPin->Release();
	}
	return foundPin;
}

BOOL CMediaInfo::CheckOGGFile(const char *inFile)
{
	HRESULT hr = NOERROR;
	IFileSourceFilter * FileFilter;
	if (SUCCEEDED(CoCreateInstance(CLSID_MYOGGFILESOURCEFILTER, NULL, CLSCTX_INPROC_SERVER,
		IID_IFileSourceFilter, (void **)&FileFilter)))
	{
		WCHAR playingID[200];
		MultiByteToWideChar(CP_ACP,0,inFile,-1,playingID,200);
		if(SUCCEEDED(FileFilter->Load(playingID,NULL)))
		{
			FileFilter->Release();
			return TRUE;
		}

		FileFilter->Release();
	}
		return FALSE;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美天堂一区二区三区| 91精品国产综合久久婷婷香蕉| 亚洲免费观看在线视频| 欧美精品粉嫩高潮一区二区| 成人午夜在线视频| 婷婷激情综合网| 日韩理论在线观看| 精品国产一区二区三区av性色| 欧美在线|欧美| 99久久婷婷国产综合精品电影 | 国产综合色视频| 亚洲精品亚洲人成人网| 久久久久久免费网| 欧美一级生活片| 欧美在线制服丝袜| 91猫先生在线| 成人免费黄色在线| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲福利视频导航| 亚洲日本一区二区| 中文字幕一区日韩精品欧美| 亚洲精品在线电影| 欧美大片在线观看| 欧美日韩成人综合在线一区二区| 91亚洲永久精品| 粉嫩嫩av羞羞动漫久久久| 国产剧情一区在线| 韩国一区二区三区| 久久爱www久久做| 奇米888四色在线精品| 亚洲国产日韩一级| 一区二区三区欧美日| 亚洲欧洲成人自拍| 中文字幕一区二区三区在线不卡 | 麻豆91在线观看| 日韩精品专区在线| kk眼镜猥琐国模调教系列一区二区 | 成人综合婷婷国产精品久久蜜臀| 亚洲二区在线观看| 亚洲美腿欧美偷拍| 亚洲同性同志一二三专区| 国产精品久久久久久久裸模| 中文字幕 久热精品 视频在线| 久久综合九色欧美综合狠狠| 精品国产乱码久久久久久久| 精品精品欲导航| 2023国产精品| 国产精品丝袜一区| 国产精品久久久久久久岛一牛影视 | 亚洲老司机在线| 中文字幕一区二区在线观看 | 轻轻草成人在线| av中文一区二区三区| 精品处破学生在线二十三| 美女诱惑一区二区| 九一久久久久久| 免费观看30秒视频久久| 性久久久久久久久久久久| 天堂久久久久va久久久久| 亚洲国产成人av| 日韩电影在线观看网站| 国产一区二区三区免费观看| 精品中文av资源站在线观看| 国产精品资源站在线| 成人一级视频在线观看| 91欧美一区二区| 欧美色电影在线| 日韩欧美在线影院| 欧美久久久久久久久中文字幕| 成人综合在线观看| 欧美日韩在线亚洲一区蜜芽| 日韩午夜激情视频| 国产精品美女久久福利网站| 亚洲一区二区三区自拍| 国产乱码一区二区三区| 91社区在线播放| 久久麻豆一区二区| 欧美国产禁国产网站cc| 夜夜精品浪潮av一区二区三区| 理论片日本一区| 91成人国产精品| 国产精品久久久爽爽爽麻豆色哟哟| 亚洲综合自拍偷拍| 91在线观看污| 久久久亚洲高清| 久久精品国产亚洲aⅴ| 亚洲第一激情av| 奇米色777欧美一区二区| 成人av网址在线| 日韩精品一区二区三区在线播放| 一区二区在线免费观看| 国产精品亚洲人在线观看| 在线成人av影院| 亚洲综合区在线| 91精品福利在线| 亚洲影视在线播放| 国产精品免费丝袜| 亚洲一区在线电影| 欧美在线综合视频| 亚洲一区二区三区四区在线观看| 成人性生交大片免费| 中文字幕视频一区| 成人av午夜影院| 一区二区三区毛片| 91精品免费观看| 久久精品噜噜噜成人88aⅴ| 日韩视频123| 在线看一区二区| 欧美xxxx在线观看| yourporn久久国产精品| 欧美国产日韩亚洲一区| 白白色亚洲国产精品| 午夜亚洲福利老司机| 日韩欧美国产高清| 国产99一区视频免费| 亚洲精品v日韩精品| 91精品国产综合久久精品app| 久久成人免费网站| 国产精品欧美久久久久一区二区| 日韩午夜精品视频| 激情小说欧美图片| 亚洲卡通动漫在线| 欧美电影免费观看完整版| 99久久伊人精品| 美女任你摸久久| 亚洲狠狠丁香婷婷综合久久久| 欧美日韩一区久久| 成人黄色综合网站| 激情av综合网| 大美女一区二区三区| 欧美伦理视频网站| 首页国产欧美久久| 亚洲精品一区二区三区香蕉| www.亚洲精品| 紧缚奴在线一区二区三区| 亚洲一区二区视频在线观看| www日韩大片| 精品福利在线导航| 中文一区一区三区高中清不卡| 久久久蜜桃精品| 综合分类小说区另类春色亚洲小说欧美| 国产欧美一区二区精品秋霞影院 | 亚洲国产一区视频| 亚洲最大的成人av| 蜜臂av日日欢夜夜爽一区| 国内一区二区在线| 色哟哟精品一区| 欧美一区二区三区免费在线看 | 欧美日韩免费不卡视频一区二区三区| 91久久线看在观草草青青| 欧美午夜精品久久久| 91精品国产一区二区三区香蕉| 欧美大肚乱孕交hd孕妇| 久久亚洲捆绑美女| 欧美电影免费观看高清完整版在线 | 久久免费看少妇高潮| 久久久91精品国产一区二区三区| 欧美电视剧免费全集观看| 精品第一国产综合精品aⅴ| 亚洲精品日产精品乱码不卡| 精品亚洲porn| 欧美日韩在线播放| 成人免费小视频| 福利电影一区二区| 成人免费高清在线| 欧美男生操女生| 欧美日韩大陆在线| 欧美va亚洲va在线观看蝴蝶网| 久久亚洲精华国产精华液| 国产精品久线在线观看| 亚洲成人一区在线| 成人高清免费观看| 欧美一二三四区在线| 一区二区三区四区在线播放| 美国欧美日韩国产在线播放| 99久久精品免费| 精品99一区二区三区| 亚洲a一区二区| 91免费版在线看| 亚洲国产激情av| 久久精品国产精品亚洲精品| 国产精品99久久久| 欧美日韩精品高清| 欧美国产日韩精品免费观看| 亚洲成va人在线观看| 高清国产午夜精品久久久久久| 丰满亚洲少妇av| 久久久三级国产网站| 日本人妖一区二区| 欧美女孩性生活视频| 亚洲一区二区三区四区在线免费观看 | 免费观看在线色综合| 国产精品一二一区| 26uuu久久综合| 久久精品国产久精国产爱| 91精品免费观看| 蜜桃视频一区二区| 91精品国产手机| 国产麻豆91精品| 精品视频免费在线|