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

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

?? compression.cpp

?? 網絡電話例程
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
		HACMSTREAM hstr = NULL;
		mmr = acmStreamOpen(&hstr,
						NULL, // any driver
						&m_wfSrc, // source format
						pwfPCM, // destination format
						NULL, // no filter
						NULL, // no callback
						0, // instance data (not used)
						ACM_STREAMOPENF_NONREALTIME); // flags
		if (mmr) {
			AfxMessageBox("Failed to open a stream to do PCM to PCM conversion\n");
			return 0;
		}
		// fill in the conversion info
		ACMSTREAMHEADER strhdr;
		memset(&strhdr, 0, sizeof(strhdr));
		strhdr.cbStruct = sizeof(strhdr);
		strhdr.pbSrc = m_pSrcData; // the source data to convert
		strhdr.cbSrcLength = m_dwSrcBytes;
		strhdr.pbDst = pDst1Data;
		strhdr.cbDstLength = dwDst1Bytes;

		// prep the header
		mmr = acmStreamPrepareHeader(hstr, &strhdr, 0); 
	
		// convert the data
		TRACE("Converting to intermediate PCM format...\n");
		mmr = acmStreamConvert(hstr, &strhdr, 0);
		if (mmr) {
			AfxMessageBox("Failed to do PCM to PCM conversion\n");
			return 0;
		}
		TRACE("Converted OK\n");
	
		// close the stream
		acmStreamClose(hstr, 0);

		///////////////////////////////////////////////////////////////////////////////////
		// convert the intermediate PCM format to the final format
		// open the driver
		HACMDRIVER had = NULL;
		mmr = acmDriverOpen(&had, hadid, 0);
		if (mmr) {
			AfxMessageBox("Failed to open driver\n");
			return 0;
		}

		// open the conversion stream
		// Note the use of the ACM_STREAMOPENF_NONREALTIME flag. Without this
		// some software compressors will report error 512 - not possible
		mmr = acmStreamOpen(&hstr,
						had, // driver handle
						pwfPCM, // source format
						pwfDrv, // destination format
						NULL, // no filter
						NULL, // no callback
						0, // instance data (not used)
						ACM_STREAMOPENF_NONREALTIME ); // flags
		if (mmr) {
			AfxMessageBox("Failed to open a stream to do PCM to driver format conversion\n");
			return 0;
		}

		// fill in the conversion info
		ACMSTREAMHEADER strhdr2;
		memset(&strhdr2, 0, sizeof(strhdr2));
		strhdr2.cbStruct = sizeof(strhdr2);
		strhdr2.pbSrc = pDst1Data; // the source data to convert
		strhdr2.cbSrcLength = dwDst1Bytes;
		strhdr2.pbDst = pDst2Data;
		strhdr2.cbDstLength = dwDst2Bytes;

		// prep the header
		mmr = acmStreamPrepareHeader(hstr, &strhdr2, 0); 

		// convert the data
		TRACE("Converting to final format...\n");
		mmr = acmStreamConvert(hstr, &strhdr2, 0);
		if (mmr) {
			AfxMessageBox("Failed to do PCM to driver format conversion\n");
			return 0;
		}
		TRACE("Converted OK\n");

		// close the stream and driver
		mmr = acmStreamClose(hstr, 0);
		mmr = acmDriverClose(had, 0);

		// show the conversion stats
		TRACE("Source wave had %lu bytes\n", m_dwSrcBytes);
		TRACE("Converted wave has %lu bytes\n", strhdr2.cbDstLengthUsed);
		TRACE("Compression ratio is %f\n", (double)m_dwSrcBytes / (double) strhdr2.cbDstLengthUsed); 
		length=strhdr2.cbDstLengthUsed;
		
		return length;
	}
	else{
		if(detLength<length){
			AfxMessageBox("Error using the function!");
			return 0;
		}
		memcpy(pDetData,pDst2Data,length);
		return length;
	}
}


BOOL CCompression::ConvertSend(SOCKET s, SOCKADDR_IN addr)
{
	MyConvert(TRUE,NULL,0);
	int iError=sendto(s,(char *)pDst2Data,length,0,(LPSOCKADDR)&addr,sizeof(addr));
	if(iError==SOCKET_ERROR)
		return FALSE;
	return TRUE;
}

void CCompression::SetDstSamples(long bytes, unsigned char *pDstData)
{
	dwDst2Bytes=bytes;
	pDst2Data=(BYTE*)malloc(dwDst2Bytes);
	memcpy(pDst2Data,pDstData,dwDst2Bytes);
}

BOOL CCompression::PrepareSpace(BOOL bCompression)
{
	if(bCompression){
		dwDst1Samples = m_dwSrcSamples * pwfPCM->nSamplesPerSec / m_wfSrc.nSamplesPerSec;
		dwDst1Bytes = dwDst1Samples * pwfPCM->wBitsPerSample / 8;
 		pDst1Data =(BYTE*)malloc(dwDst1Bytes);
	
#ifdef _DEBUG
		memset(pDst1Data, 0, dwDst1Bytes);
#endif
		dwDst2Bytes = pwfDrv->nAvgBytesPerSec * dwDst1Samples / pwfPCM->nSamplesPerSec;
		dwDst2Bytes = dwDst2Bytes * 3 / 2; // add a little room
		pDst2Data =(BYTE*)malloc(dwDst2Bytes);
#ifdef _DEBUG
		memset(pDst2Data, 0, dwDst2Bytes);
#endif
	}
	else{
		dwDst1Samples=pwfPCM->nSamplesPerSec*dwDst2Bytes/pwfDrv->nAvgBytesPerSec;
		dwDst1Bytes = dwDst1Samples* 3 / 2; // add a little room
		pDst1Data = (BYTE*)malloc(dwDst1Bytes);
#ifdef _DEBUG
		memset(pDst1Data, 0, dwDst1Bytes);
#endif
		m_dwSrcSamples=dwDst1Samples*m_wfSrc.nSamplesPerSec/pwfPCM->nSamplesPerSec;
		m_dwSrcBytes=m_dwSrcSamples*m_wfSrc.wBitsPerSample / 8;
		m_pSrcData = (BYTE*)malloc(m_dwSrcBytes);
	
#ifdef _DEBUG
		memset(m_pSrcData, 0, m_dwSrcBytes);
#endif
	}
	return TRUE;
}

long CCompression::UnConvert(BOOL bQuery, unsigned char *pSrcData, long bytes)
{
	if(bQuery){
		MMRESULT mmr;
		HACMSTREAM hstr = NULL;

		HACMDRIVER had = NULL;
		mmr = acmDriverOpen(&had, hadid, 0);
		if (mmr) {
			AfxMessageBox("Failed to open driver\n");
			return 0;
		}
		// open the conversion stream
		// Note the use of the ACM_STREAMOPENF_NONREALTIME flag. Without this
		// some software compressors will report error 512 - not possible
		mmr = acmStreamOpen(&hstr,
						had, // driver handle
						pwfDrv, // source format
						pwfPCM, // destination format
						NULL, // no filter
						NULL, // no callback
						0, // instance data (not used)
						ACM_STREAMOPENF_NONREALTIME ); // flags
		if (mmr) {
			AfxMessageBox("Failed to open a stream to do PCM to driver format conversion\n");
			return 0;
		}
		// fill in the conversion info
		ACMSTREAMHEADER strhdr2;
		memset(&strhdr2, 0, sizeof(strhdr2));
		strhdr2.cbStruct = sizeof(strhdr2);
		strhdr2.pbSrc = pDst2Data; // the source data to convert
		strhdr2.cbSrcLength = dwDst2Bytes;
		strhdr2.pbDst = pDst1Data;
		strhdr2.cbDstLength = dwDst1Bytes;

		// prep the header
		mmr = acmStreamPrepareHeader(hstr, &strhdr2, 0); 

		// convert the data
		TRACE("Converting to final format...\n");
		mmr = acmStreamConvert(hstr, &strhdr2, 0);
		if (mmr) {
			AfxMessageBox("Failed to do PCM to driver format conversion\n");
			return 0;
		}
		TRACE("Converted OK\n");
		// close the stream and driver
		mmr = acmStreamClose(hstr, 0);
		mmr = acmDriverClose(had, 0);
		
		DWORD tmpBytes=strhdr2.cbDstLengthUsed;
		// show the conversion stats
		TRACE("Source wave had %lu bytes\n", m_dwSrcBytes);
		TRACE("Converted wave has %lu bytes\n", strhdr2.cbDstLengthUsed);
		TRACE("Compression ratio is %f\n", (double)m_dwSrcBytes / (double) strhdr2.cbDstLengthUsed); 

		mmr = acmStreamOpen(&hstr,
						NULL, // any driver
						pwfPCM, // source format
						&m_wfSrc, // destination format
						NULL, // no filter
						NULL, // no callback
						0, // instance data (not used)
						ACM_STREAMOPENF_NONREALTIME ); // flags
		if (mmr) {
			AfxMessageBox("Failed to open a stream to do PCM to PCM conversion\n");
			return 0;
		}
		// fill in the conversion info
		ACMSTREAMHEADER strhdr;
		memset(&strhdr, 0, sizeof(strhdr));
		strhdr.cbStruct = sizeof(strhdr);
		strhdr.pbSrc = pDst1Data; // the source data to convert
		strhdr.cbSrcLength = tmpBytes;
		strhdr.pbDst = m_pSrcData;
		strhdr.cbDstLength = m_dwSrcBytes;
		// prep the header
		mmr = acmStreamPrepareHeader(hstr, &strhdr, 0); 
		// convert the data
		TRACE("Converting to intermediate PCM format...\n");
		mmr = acmStreamConvert(hstr, &strhdr, 0);
		if (mmr) {
			AfxMessageBox("Failed to do PCM to PCM conversion\n");
			return 0;
		}
		TRACE("Converted OK\n");
		// close the stream
		acmStreamClose(hstr, 0);

		///////////////////////////////////////////////////////////////////////////////////
		// convert the intermediate PCM format to the final format
		// open the driver
		unlength=strhdr.cbDstLengthUsed;
		
		return unlength;
	}
	else{
		if(bytes<unlength){
			memcpy(pSrcData,m_pSrcData,bytes);	
			return 0;
		}
		memcpy(pSrcData,m_pSrcData,unlength);
		return unlength;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲女爱视频在线| 中文字幕欧美一区| 91精品国模一区二区三区| 色呦呦国产精品| 欧美综合亚洲图片综合区| 99精品国产91久久久久久 | 久久成人精品无人区| 日本怡春院一区二区| 奇米影视一区二区三区小说| 日韩高清国产一区在线| 美女性感视频久久| 国产在线视视频有精品| 国产91色综合久久免费分享| 成人免费观看视频| 在线观看区一区二| 欧美一区二区在线播放| 久久久久九九视频| 亚洲欧美日韩国产另类专区| 亚洲成人7777| 韩国av一区二区三区在线观看| 国产精品资源站在线| 丁香婷婷综合五月| 欧美日韩一区二区三区在线 | 国产传媒一区在线| 色综合天天天天做夜夜夜夜做| 欧美性极品少妇| 久久夜色精品国产欧美乱极品| 中文字幕在线不卡视频| 午夜精品福利一区二区三区av | 欧美日韩在线免费视频| 日韩欧美国产成人一区二区| 国产亚洲精品精华液| 亚洲一区二区三区在线| 久久99精品久久久久久| 日本高清不卡aⅴ免费网站| 日韩一区二区三区视频在线| 中文av一区特黄| 天堂精品中文字幕在线| 成a人片亚洲日本久久| 欧美久久一二区| 亚洲国产成人在线| 日本亚洲天堂网| 91麻豆高清视频| 久久丝袜美腿综合| 亚洲成av人片一区二区三区| 高清免费成人av| 日韩精品在线一区二区| 亚洲五码中文字幕| av亚洲精华国产精华| 欧美一区二区视频在线观看| 亚洲欧美日韩中文字幕一区二区三区| 免费人成网站在线观看欧美高清| 91亚洲精品久久久蜜桃| 久久久精品人体av艺术| 美女网站一区二区| 91免费在线视频观看| 国产亚洲美州欧州综合国| 免费久久99精品国产| 欧美午夜精品久久久久久孕妇| 亚洲国产电影在线观看| 国内成人精品2018免费看| 777a∨成人精品桃花网| 夜夜精品视频一区二区| k8久久久一区二区三区| 中文字幕欧美区| 国产精品77777| 26uuu亚洲| 国产综合色视频| 精品欧美黑人一区二区三区| 青青草原综合久久大伊人精品优势| 在线看国产一区| 一区二区三区色| 色吧成人激情小说| 一区二区三区不卡视频| 日本高清视频一区二区| 亚洲影院免费观看| 在线观看日韩av先锋影音电影院| 一区二区三区久久久| 色综合久久综合网| 亚洲一区二区三区四区不卡| 欧美日韩国产成人在线91| 亚洲高清免费视频| 欧美一区二区在线视频| 久久超级碰视频| 国产日韩v精品一区二区| 成人福利视频网站| 亚洲另类色综合网站| 欧美亚洲国产一区二区三区 | 懂色av一区二区三区免费看| 国产精品无码永久免费888| aaa亚洲精品| 午夜亚洲国产au精品一区二区| 91精品国产美女浴室洗澡无遮挡| 精品一区二区影视| 国产日韩av一区| 在线精品视频一区二区三四 | 日韩精品一区二区三区蜜臀 | 一本色道久久加勒比精品| 亚洲第一搞黄网站| 欧美tickle裸体挠脚心vk| 国产成人精品影视| 亚洲黄色免费网站| 日韩欧美一区在线| 成人国产精品免费观看视频| 亚洲午夜三级在线| 久久久五月婷婷| 欧美色网一区二区| 免费av网站大全久久| 久久蜜桃香蕉精品一区二区三区| 91免费版在线看| 免费成人av在线播放| 亚洲图片欧美激情| 91精品国产高清一区二区三区蜜臀 | 国产亚洲一区二区在线观看| 99久久精品一区二区| 老司机免费视频一区二区| 国产精品久久久久久亚洲毛片| 欧美私模裸体表演在线观看| 国产成人免费9x9x人网站视频| 亚洲aⅴ怡春院| 国产精品区一区二区三区| 欧美一区二区三区色| 91小视频免费看| 国产成a人亚洲| 日本午夜一区二区| 一卡二卡欧美日韩| 国产精品免费视频一区| 日韩你懂的在线观看| 91美女在线视频| 高清av一区二区| 久久99精品国产| 日韩成人一级片| 亚洲成a人片在线观看中文| 中文字幕在线不卡国产视频| 久久一区二区三区四区| 欧美一区二区啪啪| 欧美丝袜丝交足nylons图片| 99视频在线精品| 成人精品小蝌蚪| 国产suv精品一区二区6| 久久国内精品视频| 麻豆91在线播放| 日本不卡123| 亚洲图片欧美一区| 午夜视频久久久久久| 婷婷开心久久网| 石原莉奈一区二区三区在线观看| 亚洲美女区一区| 亚洲一区免费观看| 亚洲制服丝袜av| 亚洲国产精品尤物yw在线观看| 一区二区三区四区不卡在线| 一区二区激情视频| 亚洲图片欧美视频| 亚洲成人在线网站| 日本女人一区二区三区| 日韩精品一区第一页| 日本一区中文字幕| 经典三级一区二区| 国产精品一区二区x88av| 国产精品99久久久| 99精品欧美一区二区蜜桃免费 | 欧美三级电影一区| 欧美日韩国产高清一区二区三区| 欧美色综合久久| 欧美一区日韩一区| 精品国产区一区| 国产精品蜜臀在线观看| 综合欧美亚洲日本| 香蕉成人伊视频在线观看| 裸体健美xxxx欧美裸体表演| 国产资源在线一区| 99视频精品在线| 欧美老人xxxx18| 国产日产欧美一区| 亚洲精品免费在线| 免费成人你懂的| 成人动漫一区二区| 欧美日韩一区二区三区免费看| 日韩视频一区二区三区 | 91免费在线看| 7777精品伊人久久久大香线蕉完整版| 欧美日韩色一区| 久久综合九色综合欧美98| 国产精品美女视频| 日本成人中文字幕在线视频| 国产精品综合一区二区三区| 91视频国产资源| 337p日本欧洲亚洲大胆色噜噜| 国产精品丝袜黑色高跟| 水蜜桃久久夜色精品一区的特点 | 亚洲成av人**亚洲成av**| 久久99国内精品| 91伊人久久大香线蕉| 日韩亚洲欧美综合| 亚洲理论在线观看| 国产乱码字幕精品高清av | 欧美一区二区三区思思人| 中文字幕日韩av资源站| 蜜乳av一区二区|