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

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

?? mp3.c

?? < VC++視頻音頻開發(fā)>> 這本書的源碼
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
{   MYINPUT *mi;
	DWORD dwFormat;
	if (!hInput) return 0;
	mi=(MYINPUT *)GlobalLock(hInput);
		
	dwFormat=(DWORD)mi->dwFormat;

    GlobalUnlock(hInput);
    return dwFormat;
}


__declspec(dllexport) DWORD FAR PASCAL FilterOptionsString(HANDLE hInput, LPSTR szString)
{   MYINPUT *mi;
	DWORD dwFormat;
	
	if (!hInput) return 0;
	mi=(MYINPUT *)GlobalLock(hInput);
    dwFormat=(DWORD)mi->dwFormat;

	wsprintf(szString,"%s Layer %d\r\n(%s)",mi->mpi.szVersion,mi->mpi.iLayer,mi->mpi.szBitrate);
	
    GlobalUnlock(hInput);
    return dwFormat;
}


__declspec(dllexport) DWORD FAR PASCAL FilterCanWriteSpecial(HANDLE hOutput, DWORD idType)
{
 return 0L;
}

__declspec(dllexport) DWORD FAR PASCAL FilterCanReadSpecial(HANDLE hInput, DWORD idType)
{
 return 0L;
}
					 
__declspec(dllexport) DWORD FAR PASCAL FilterWriteSpecial(HANDLE hOutput, DWORD idType, unsigned char far *buf, DWORD dwSize)
{
 return 0L;
}

__declspec(dllexport) DWORD FAR PASCAL FilterReadSpecial(HANDLE hOutput, DWORD idType, unsigned char far *buf, DWORD dwSize)
{
 return 0L;
}



__declspec(dllexport) HANDLE FAR PASCAL OpenFilterOutput(LPSTR lpstrFilename,long lSamprate,WORD wBitsPerSample,WORD wChannels,long lSize,long far *lpChunkSize,DWORD dwOptions)
{   HANDLE hOutput;
	short nFile;
	nFile=_lcreat(lpstrFilename,0);
    if (nFile==-1) return NULL;
    hOutput=GlobalAlloc(GMEM_MOVEABLE|GMEM_SHARE,sizeof(MYOUTPUT));
    if (hOutput)
    {   MYOUTPUT *mo;
		mo=(MYOUTPUT *)GlobalLock(hOutput);
		mo->nFile=nFile;
		mo->lSize=lSize;
		GlobalUnlock(hOutput);
    }
    *lpChunkSize=16384;
    return hOutput;
}

__declspec(dllexport) void FAR PASCAL CloseFilterOutput(HANDLE hOutput)
{   if (hOutput)
	{       MYOUTPUT *mo;
		mo=(MYOUTPUT *)GlobalLock(hOutput);
		if (mo->nFile!=-1)
		{       _lclose(mo->nFile);
			mo->nFile=-1;
		}

		GlobalUnlock(hOutput);
		GlobalFree(hOutput);
	}
}

__declspec(dllexport) DWORD FAR PASCAL WriteFilterOutput(HANDLE hOutput, unsigned char far *buf, long lBytes)
{       DWORD written=0L;
	if (hOutput)
	{       MYOUTPUT *mo;
		mo=(MYOUTPUT *)GlobalLock(hOutput);
		written=(DWORD)_lwrite(mo->nFile,buf,(UINT)lBytes);
		GlobalUnlock(hOutput);
	}
	return written; 
}

DWORD valJ=524309;			
DWORD valI=12345; // reset to time at startup

double fRandom(void) // 0 to 1
{	DWORDLONG dwl;	
	dwl=UInt32x32To64(valJ,valI);
	dwl++;
	valI=(DWORD)(dwl&0x1FFFFF);	
	return (double)valI/2097152.0;
}

// This is the 32-bit to 16-bit converter from Cool Edit, but with only the code
// for the straight triangular dithering.  For higher quality, read in the file
// as 32-bit, then use Cool Edit Pro's dithering options for going to 16-bit.

void HfCvt32To16InMem(short *piDest, float *pfSource, long dwSourceSamples, BOOL bStereo, double fDitherAmount)
{	long t;
	double fFilteredError=0;
	double fSourceBeforeNoise;
	double qq=1.0;
	double fMultiplier=0.5;
	double fNoise;
	double fSource;
	double fSqrtDitherAmount;
	long quant;
	static double fError=0;
	static double fError1=0;
	static double fError2=0;
	static double fError3=0;
	static double fError4=0;
	static double fError5=0;
	static double fErrorR=0;
	static double fErrorR1=0;
	static double fErrorR2=0;
	static double fErrorR3=0;
	static double fErrorR4=0;
	static double fErrorR5=0;
		  		 
	{   
		if (fDitherAmount>0)
			fSqrtDitherAmount=sqrt(fDitherAmount);
		else
			fSqrtDitherAmount=0;
		
		if (bStereo)
	 	{	
			for (t=0;t<dwSourceSamples;t+=2)			
			{	
				fFilteredError=0;
				
				fError4=fError3;
				fError3=fError2;
				fError2=fError1;
				fError1=fFilteredError;
				
				fSource=*pfSource;
				pfSource++;
				
				// Don't Shift out 8 bits
				fSource=fSource-fFilteredError; //*fDitherMultiplier;					
				
				fNoise=fDitherAmount*(fRandom()+fRandom()-1.0);				
				
				fSourceBeforeNoise=fSource;

				// Add Noise (v)
				fSource+=fNoise; //*fDitherMultiplier; //*2.0;
				
				// Quantization
				quant=(long)(fSource+500000+0.5)-500000; // floor function, values -1000 to +1000 OK

				// Error for input to H(z)
				fError=(double)quant-fSourceBeforeNoise;

				if (quant>=-32768)
				{	if (quant<=32767)
						*piDest=(short)quant;
					else
						*piDest=32767;
				}
				else
					*piDest=-32768;
				piDest++;

				fFilteredError=0;
				
				fErrorR4=fErrorR3;
				fErrorR3=fErrorR2;
				fErrorR2=fErrorR1;
				fErrorR1=fFilteredError;
				
				fSource=*pfSource;
				pfSource++;

				// Don't Shift out 8 bits
				fSource=fSource-fFilteredError; //*fDitherMultiplier;					
				
				fNoise=fDitherAmount*(fRandom()+fRandom()-1.0);
				
				fSourceBeforeNoise=fSource;

				// Add Noise (v)
				fSource+=fNoise; //*fDitherMultiplier; //*2.0;
				
				// Quantization
				quant=(long)(fSource+500000+0.5)-500000; // floor function, values -1000 to +1000 OK

				// Error for input to H(z)
				fErrorR=(double)quant-fSourceBeforeNoise;

				if (quant>=-32768)
				{	if (quant<=32767)
						*piDest=(short)quant;
					else
						*piDest=32767;
				}
				else
					*piDest=-32768;
				piDest++;
			}		
	 	}       
	 	else
	 	{   
			for (t=0;t<dwSourceSamples;t++)
			{	fFilteredError=0;
							
				fError5=fError4;
				fError4=fError3;
				fError3=fError2;
				fError2=fError1;
				fError1=fFilteredError;

				fSource=*pfSource;
				pfSource++;
				
				// Don't Shift out 8 bits
				fSource=fSource-fFilteredError; //*fDitherMultiplier;					
				// Triangular Dither Noise
				
				fNoise=fDitherAmount*(fRandom()+fRandom()-1.0);					
				
				fSourceBeforeNoise=fSource;

				// Add Noise (v)
				fSource+=fNoise; //*fDitherMultiplier; //*2.0;
				
				// Quantization
				quant=(long)(fSource+500000+0.5)-500000; // floor function, values -1000 to +1000 OK

				// Error for input to H(z)
				fError=(double)quant-fSourceBeforeNoise;

				if (quant>=-32768)
				{	if (quant<=32767)
						*piDest=(short)quant;
					else
						*piDest=32767;
				}
				else
					*piDest=-32768;
				piDest++;

			}	
		} 
	}
}


__declspec(dllexport) void FAR PASCAL GetSuggestedSampleType(long far *lSugSamprate,WORD far *wSugBitsPerSample, WORD far *wSugChannels)
{   // return 0 for don't care
 	*lSugSamprate=0;
	{	int n=GetPrivateProfileInt("MPEG Filter","InputFormat",0,"coolrw.ini");
		*wSugBitsPerSample=HIWORD(n)&0x00FF;
		if ((*wSugBitsPerSample!=16) && (*wSugBitsPerSample!=32))
			*wSugBitsPerSample=16;
	}
 	*wSugChannels=0;
}


// return handle that will be passed in to close, and write routines
__declspec(dllexport) HANDLE FAR PASCAL OpenFilterInput( LPSTR lpstrFilename,
											long *lSamprate,
											WORD *wBitsPerSample,
											WORD *wChannels,
											HWND hWnd,
											long *lChunkSize)
{	HANDLE hInput;
	short source; 
	long fullsize;
	DWORD dwOptions;
	
	dwOptions=0;
	valI=GetTickCount()%50000;

	source=_lopen(lpstrFilename,OF_READ);
    if (source==-1) return NULL;     
    
    fullsize=_llseek(source,0L,2);
	_lclose(source);
	
    hInput=GlobalAlloc(GMEM_MOVEABLE|GMEM_SHARE|GMEM_ZEROINIT,sizeof(MYINPUT));
    if (hInput)
    {   MYINPUT *mi;
		
		mi=(MYINPUT *)GlobalLock(hInput);

		mi->wBitsPerSample=32; 
		mi->fAttenuation=0; 
		mi->dwFormat=0;			// Force asking of format, and default to 32-bit No attenuation
		mi->fScaleBy=32768.0f;
		mi->bDither=FALSE;
	
		// return 0 for cool to inquire user for sample rates (we aren't doing that though)
		*lSamprate=44100;
		*wBitsPerSample=32;
		*wChannels=2;
		*lChunkSize=16384;

		mi->bOpenedMPEG=MPEG_Open(lpstrFilename);
		if (!mi->bOpenedMPEG)
		{	GlobalUnlock(hInput);
     		GlobalFree(hInput);
     		return NULL;
		}
		
		MPEG_GetInfo(&mi->mpi);

		*lSamprate=mi->mpi.iSamplerate;
		*wChannels=mi->mpi.iChannels;

		{	int n=GetPrivateProfileInt("MPEG Filter","InputFormat",0,"coolrw.ini");
			*wBitsPerSample=HIWORD(n)&0x00FF;
			if ((*wBitsPerSample!=16) && (*wBitsPerSample!=32))
				*wBitsPerSample=16;
		}

		mi->wBitsPerSample=*wBitsPerSample;
		
		mi->lSize=(int)(mi->mpi.fLengthInMilliseconds*(*lSamprate)/1000.0)*(*wChannels)*(*wBitsPerSample/8);

		GlobalUnlock(hInput);
    }
    
    return hInput;
}

__declspec(dllexport) void FAR PASCAL CloseFilterInput(HANDLE hInput)
{   if (hInput)  
	{       MYINPUT *mi;
		mi=(MYINPUT *)GlobalLock(hInput);
		
		if (mi->bOpenedMPEG)
			MPEG_Close();
    	
		if (mi->h32bit)
		{	GlobalUnlock(mi->h32bit);
			GlobalFree(mi->h32bit);
		}

		GlobalUnlock(hInput);
		GlobalFree(hInput);
	}
}



__declspec(dllexport) DWORD FAR PASCAL ReadFilterInput(HANDLE hInput, unsigned char far *bufout, long lBytes)
{       DWORD read=0L;
	if (hInput)
	{   MYINPUT *mi;
		float fScaleBy;

		mi=(MYINPUT *)GlobalLock(hInput);
		fScaleBy=mi->fScaleBy;

		if (mi->wBitsPerSample==32)
		{	// just scale
			read=(DWORD)MPEG_Read(bufout);
		
			{	int iNum=read/4;
				float * pBuf=(float *)bufout;
				while (iNum--)
				{	*pBuf++*=fScaleBy;					
				}
			}
			
		}
		else if (mi->wBitsPerSample==16)
		{	// Convert to 16-bit with scaling and dithering
			int iNum;
			float * pfBuf;
			short * piBuf;

			pfBuf=(float *)mi->pi32bit;
			piBuf=(short *)bufout;

			read=(DWORD)MPEG_Read((BYTE *)mi->pi32bit);						
			iNum=read/4;
			// Dither it to 16-bit

			if (mi->bDither)
			{	// Scale it first
				{	int iNum=read/4;
					float * pBuf=pfBuf;
					while (iNum--)
					{	*pBuf++*=fScaleBy;					
					}
				}

				// Dither and Clip
				HfCvt32To16InMem(piBuf, pfBuf, iNum,
					(mi->mpi.iChannels==2)?TRUE:FALSE, 1.0);
			}
			else 
			{	// Scale, Truncate, and Clip
				float f;
				while (iNum--)
				{	f=*pfBuf++*fScaleBy;
					if (f>=(float)(-32767.0))
					{	if (f<=(float)32767.0)
							*piBuf++=(short)f;
						else
							*piBuf++=32767;
					}
					else
						*piBuf++=-32767;
				}
			}
			read/=2;
		}
		GlobalUnlock(hInput);
	}
	return read;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品中文字幕一区二区三区| 久久久久国产成人精品亚洲午夜| 色88888久久久久久影院野外| 成人综合在线视频| 成人亚洲精品久久久久软件| 懂色av一区二区在线播放| 成人免费的视频| 99久久免费视频.com| 91香蕉视频在线| 欧美午夜电影在线播放| 欧美视频完全免费看| 欧美人与禽zozo性伦| 日韩一区二区麻豆国产| 精品免费国产一区二区三区四区| 亚洲精品在线观看网站| 国产日韩欧美精品电影三级在线| 国产欧美精品在线观看| 成人欧美一区二区三区在线播放| 亚洲综合在线免费观看| 天堂在线亚洲视频| 国内久久精品视频| 国产激情一区二区三区四区 | 狠狠久久亚洲欧美| 狠狠狠色丁香婷婷综合久久五月| 懂色一区二区三区免费观看| 91啪亚洲精品| 91精品国产综合久久久蜜臀粉嫩| 久久综合久色欧美综合狠狠| 中文字幕一区日韩精品欧美| 午夜欧美大尺度福利影院在线看| 麻豆精品在线视频| 国产一区二区三区黄视频 | 亚洲欧美日韩一区二区三区在线观看| 亚洲一区二区精品3399| 免费在线视频一区| 成人性色生活片免费看爆迷你毛片| 91久久香蕉国产日韩欧美9色| 欧美日韩成人一区| 久久中文字幕电影| 亚洲色图19p| 男人操女人的视频在线观看欧美| 国产精品亚洲午夜一区二区三区 | 国产精品网站在线观看| 樱桃国产成人精品视频| 九九视频精品免费| 色婷婷av一区二区三区软件| 欧美一区二区日韩一区二区| 日本一区二区在线不卡| 性做久久久久久久免费看| 国产成人自拍网| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 日本国产一区二区| 精品国产免费久久 | jiyouzz国产精品久久| 91麻豆精品国产91久久久久| 国产日产欧美一区| 日韩国产一区二| 一本大道av伊人久久综合| 精品理论电影在线| 亚洲国产aⅴ天堂久久| 国产91丝袜在线18| 欧美一区二区免费观在线| 亚洲人成网站色在线观看| 国产剧情一区在线| 欧美一二三区在线| 亚洲自拍偷拍欧美| eeuss鲁片一区二区三区在线观看| 4438成人网| 尤物在线观看一区| eeuss鲁片一区二区三区在线看| 日韩欧美国产精品一区| 亚洲影院免费观看| 99国产精品一区| 日本一区二区三区免费乱视频| 亚洲国产三级在线| 99麻豆久久久国产精品免费| 精品国产免费久久| 久久精品国产一区二区三| 欧美日韩成人一区二区| 一卡二卡欧美日韩| 99热这里都是精品| 国产精品二区一区二区aⅴ污介绍| 久久电影国产免费久久电影| 7777精品伊人久久久大香线蕉完整版 | 捆绑紧缚一区二区三区视频| 在线精品视频免费观看| 亚洲欧美日韩久久精品| 成人免费毛片片v| 久久青草欧美一区二区三区| 免费高清在线视频一区·| 欧美日韩亚洲综合一区| 一区二区三区在线免费观看| av一区二区三区在线| 中国色在线观看另类| 国产91露脸合集magnet| 久久久精品一品道一区| 国产一区二区三区四区五区入口| 精品少妇一区二区三区日产乱码| 国产日韩欧美精品一区| 91精品久久久久久久91蜜桃| 亚洲一区二区四区蜜桃| 一本一道久久a久久精品综合蜜臀| 国产三级精品在线| 国产精品996| 国产天堂亚洲国产碰碰| 国产麻豆精品在线观看| 精品福利在线导航| 国产自产高清不卡| 久久午夜免费电影| 国产激情偷乱视频一区二区三区| 久久美女艺术照精彩视频福利播放| 久久精品久久精品| 精品国产91乱码一区二区三区 | 日本v片在线高清不卡在线观看| 欧美美女喷水视频| 免费在线观看日韩欧美| 精品1区2区在线观看| 国产传媒久久文化传媒| 亚洲欧美影音先锋| 欧美三级电影在线看| 日本成人在线视频网站| 精品国产成人系列| 成人手机电影网| 亚洲日本成人在线观看| 欧美日韩激情一区二区三区| 青青草国产精品97视觉盛宴| 亚洲精品一区二区三区福利 | 日韩精品在线一区| 国产激情精品久久久第一区二区| 国产精品日韩成人| 欧美午夜一区二区| 久久国产精品99精品国产 | 日韩高清一区二区| 久久久无码精品亚洲日韩按摩| www.在线成人| 日韩国产欧美在线播放| 国产亚洲自拍一区| 色综合久久综合中文综合网| 午夜欧美一区二区三区在线播放| 亚洲精品一区二区三区蜜桃下载 | 久久久蜜臀国产一区二区| 99久久久免费精品国产一区二区| 亚洲v日本v欧美v久久精品| 精品国产乱码久久| 日本道免费精品一区二区三区| 裸体歌舞表演一区二区| 国产精品美女www爽爽爽| 欧美日韩三级视频| 粉嫩av一区二区三区粉嫩| 一个色在线综合| 国产午夜精品理论片a级大结局 | 日韩精品在线一区| 91香蕉视频mp4| 久久精品国产久精国产| 一区在线中文字幕| 欧美一区二区三区思思人| 9i在线看片成人免费| 麻豆精品蜜桃视频网站| 亚洲欧美综合另类在线卡通| 欧美一区二区三区啪啪| 99热精品一区二区| 极品销魂美女一区二区三区| 伊人夜夜躁av伊人久久| 久久久av毛片精品| 在线观看91精品国产麻豆| av在线不卡网| 国产九九视频一区二区三区| 午夜久久久久久久久久一区二区| 亚洲欧洲av在线| 久久精品一区二区| 欧美一区二区三区男人的天堂| 91久久国产综合久久| 福利电影一区二区三区| 免费久久99精品国产| 亚洲一区二区三区四区五区中文| 国产情人综合久久777777| 制服丝袜成人动漫| 91久久线看在观草草青青| 成人动漫一区二区| 国产成人av福利| 久久国产综合精品| 日韩激情在线观看| 亚洲综合激情网| 日韩毛片一二三区| 国产精品欧美一级免费| 精品国内片67194| 日韩欧美高清dvd碟片| 欧美精品在欧美一区二区少妇| av中文字幕不卡| www.日韩精品| 成人在线视频一区二区| 韩国精品免费视频| 久久超碰97中文字幕| 另类小说一区二区三区| 日韩av一区二区在线影视| 午夜精品免费在线| 午夜精品爽啪视频| 日日夜夜精品视频免费| 午夜亚洲福利老司机| 五月婷婷综合激情|