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

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

?? cmediainfo.cpp

?? VC vod源碼 放出來供大家交流學習
?? 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))
		{
			AfxMessageBox("OGG file is not supported!");
			return FALSE;
			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一区二区三区免费野_久草精品视频
亚洲欧美电影一区二区| 国产精品妹子av| 国产99久久久精品| 日日夜夜免费精品| 一区二区三区丝袜| 亚洲图片激情小说| ㊣最新国产の精品bt伙计久久| 久久久亚洲高清| 亚洲精品在线免费播放| 91精品国产综合久久久久久久久久 | 91麻豆国产福利在线观看| 国产一区欧美日韩| 人人狠狠综合久久亚洲| 麻豆成人91精品二区三区| 精品一区二区久久| 国产99久久久国产精品潘金| 欧美精品久久一区二区三区| 91精品91久久久中77777| 91在线播放网址| 国产亚洲精品中文字幕| 日韩理论电影院| 成人毛片视频在线观看| 91麻豆高清视频| 国产精品麻豆久久久| 国产一区二区在线观看免费| 日韩视频一区在线观看| 国产午夜亚洲精品理论片色戒| 偷拍一区二区三区| 国产成人精品影视| 欧美网站一区二区| 欧美电影免费观看高清完整版在| 国产精品视频一二三区| 国产成人在线网站| 久久综合久久99| 夜夜精品浪潮av一区二区三区| 成人精品视频.| 国产精品理论片在线观看| 午夜久久福利影院| 欧美三区免费完整视频在线观看| 精品嫩草影院久久| 国产精品福利一区| 91麻豆精东视频| 亚洲国产精品视频| 黑人巨大精品欧美黑白配亚洲| 国产精品久久一卡二卡| 亚洲成人三级小说| 一区二区三区中文字幕精品精品| 一区二区三区四区国产精品| 亚洲精品在线三区| 国产欧美日韩三区| 麻豆精品一二三| 中文字幕一区二区三区四区不卡 | 日日摸夜夜添夜夜添亚洲女人| 高清不卡一二三区| 偷拍亚洲欧洲综合| 欧美精品一区二区在线播放| 免费精品视频在线| 日韩理论片在线| 91麻豆swag| 麻豆91免费看| 日韩伦理电影网| 国产欧美1区2区3区| 91在线精品秘密一区二区| 午夜不卡av免费| 在线视频欧美精品| 国产精品18久久久| 国产网红主播福利一区二区| 精品一区二区三区不卡| 91精品国产品国语在线不卡| 国产精品一级黄| 亚洲午夜三级在线| 在线观看亚洲精品视频| 中文字幕欧美激情一区| 欧美美女一区二区在线观看| 亚洲欧洲综合另类| 国产成人激情av| 日韩视频免费观看高清在线视频| 丁香激情综合国产| 国产精品乱人伦一区二区| 日本伊人精品一区二区三区观看方式 | 亚洲精品在线观看网站| 久久久久久久久久久久久女国产乱| 夜夜精品视频一区二区| 欧美三级电影在线看| 亚洲成av人片一区二区三区| 色嗨嗨av一区二区三区| 精品久久久三级丝袜| 精品在线你懂的| 欧美在线一区二区三区| 国产三级一区二区| 国产原创一区二区| 国产精品久久久久一区二区三区共 | 国产精品羞羞答答xxdd| 欧美一二三在线| 亚洲一区二区视频在线观看| 欧美色精品在线视频| 国产精品三级电影| youjizz国产精品| 成a人片国产精品| 26uuu精品一区二区| 91视频在线看| 国产一区二区网址| 国产美女av一区二区三区| 中文字幕欧美日韩一区| 亚洲国产裸拍裸体视频在线观看乱了 | 自拍偷拍亚洲欧美日韩| 国产精品黄色在线观看| 免费成人美女在线观看.| 成人晚上爱看视频| 99久久精品久久久久久清纯| 国产精品亚洲人在线观看| 国产一区二区三区日韩| 99久久99久久精品国产片果冻| 99热在这里有精品免费| 在线观看亚洲专区| 亚洲视频在线一区二区| 一区二区三区欧美在线观看| 另类小说视频一区二区| 在线看不卡av| 色综合视频一区二区三区高清| 日韩欧美国产一区二区三区 | 亚洲一区二区三区激情| 日韩在线播放一区二区| 一区二区三区蜜桃网| 久久久久国产精品厨房| 色综合久久精品| 99久久婷婷国产综合精品| 欧美麻豆精品久久久久久| 欧美精品一区二区高清在线观看| av在线不卡网| 九九视频精品免费| 亚洲欧美日韩久久| 亚洲欧美另类小说| 中文字幕不卡一区| 国产精品久久久久影视| 欧美成人激情免费网| 91精品中文字幕一区二区三区| 久久狠狠亚洲综合| jlzzjlzz亚洲女人18| 51午夜精品国产| 亚洲欧美乱综合| 欧美亚洲日本国产| 国产午夜亚洲精品理论片色戒| 精品一区二区在线播放| 国产免费成人在线视频| 国产91精品入口| 亚洲色图清纯唯美| 日韩一区二区中文字幕| 成人污视频在线观看| 一区二区三区av电影| 9191国产精品| 国产成人av一区二区三区在线观看| 亚洲精品写真福利| 国产精品丝袜一区| 99国产精品国产精品久久| 亚洲国产精品ⅴa在线观看| 日韩精品乱码av一区二区| 成人高清av在线| 国产日韩欧美电影| 丰满白嫩尤物一区二区| 精品国产凹凸成av人网站| 日韩福利视频网| 6080yy午夜一二三区久久| 一区二区三区产品免费精品久久75| 成人综合婷婷国产精品久久 | 欧美精品aⅴ在线视频| 欧美一区二区三区视频免费播放| 偷拍与自拍一区| 99久久久免费精品国产一区二区| 亚洲一区二区美女| 1区2区3区精品视频| 国产一区二区精品久久91| 欧美一级高清大全免费观看| 国产精品乱码人人做人人爱| 日本女优在线视频一区二区| 欧美在线综合视频| 经典一区二区三区| 最近中文字幕一区二区三区| 欧美一区二区在线播放| 国产一区二区三区在线看麻豆| 一区二区三区欧美久久| 日韩色视频在线观看| 99精品国产91久久久久久| aa级大片欧美| 欧美日韩高清一区二区| 久久久亚洲午夜电影| 国产精品久久久久久久岛一牛影视 | 亚洲综合自拍偷拍| 欧美一区二区三区四区久久| 成人免费看的视频| 免费在线观看日韩欧美| 亚洲午夜日本在线观看| 亚洲欧洲精品一区二区三区不卡| 欧美疯狂做受xxxx富婆| aaa国产一区| 国产成人自拍在线| 国产一区二区h| 日韩精品一二三| 午夜a成v人精品| 丁香网亚洲国际|