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

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

?? audiolibrary.c

?? samsung 最新芯片2450 的測試程序.
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*======================================================================

 Project Name : S3C2450

 Copyright 2006 by Samsung Electronics, Inc.
 All rights reserved.

 Project Description :
 This software is only for verifying functions of the S3C2443. 
 Anybody can use this code without our permission.

 File Name    : iisnew.c
 Description  : S3C2450 IIS ip driver
 Author       : Dongjin Kim
 Dept         : AP
 Created Date : 2007.10.19
 Version      : 0.0
 History
   R0.0 (2007.10.19): draft
   		- S3C2450 IIS codec code is derived from 2443 IIS test code & SA 2450 IIS test code		
=======================================================================*/

#include "System.h"
#include "audiolibrary.h"


//static function(private)
bool PCM_Resampling96to64(unsigned int destaddr, unsigned int* destsizeByte, 
						unsigned int orgaddr, int orgsizeByte);


const unsigned int cTestpattern8bit[SIZE_TESTPATTERN8]=
{
				//I2S link(FIFO)
				//Left(Low 8bit)	Right(High 8bit)
	0x810081,	//1000 0001			1000 0001
	0xC10083,	//1000 0011			1100 0001
	0xA10085,	//1000 0101			1010 0001
	0x910089,	//1000 1001			1001 0001

	0x890091,	//1001 0001			1000 1001
	0x8500A1,	//1010 0001			1000 0101
	0x8300C1,	//1100 0001			1000 0011
	0x810081,	//1000 0001			1000 0001

};


const unsigned int cTestpattern16bit[SIZE_TESTPATTERN16]=
{
				//I2S link(FIFO)
				//Left(Low 16bit)		Right(High 16bit)
	0x80018001,	//1000 0000 0000 0001	1000 0000 0000 0001
				//0111 1111 1111 1111
	0xC0018003,	//1000 0000 0000 0011	1100 0000 0000 0001
	0xA0018005,	//1000 0000 0000 0101	1010 0000 0000 0001
	0x90018009,	//1000 0000 0000 1001	1001 0000 0000 0001
	
	0x88018011,	//1000 0000 0001 0001	1000 1000 0000 0001
	0x84018021,	//1000 0000 0010 0001	1000 0100 0000 0001
	0x82018041,	//1000 0000 0100 0001	1000 0010 0000 0001
	0x81018081,	//1000 0000 1000 0001	1000 0001 0000 0001
	
	0x80818101,	//1000 0001 0000 0001	1000 0000 1000 0001
	0x80418201,	//1000 0010 0000 0001	1000 0000 0100 0001
	0x80218401,	//1000 0100 0000 0001	1000 0000 0010 0001
	0x80118801,	//1000 1000 0000 0001	1000 0000 0001 0001
				//0111 0111 1111 1111
	
	0x80099001,	//1001 0000 0000 0001	1000 0000 0000 1001
	0x8005A001,	//1010 0000 0000 0001	1000 0000 0000 0101
	0x8003C001,	//1100 0000 0000 0001	1000 0000 0000 0011
				//0011 1111 1111 1111
	0x80018001,	//1000 0000 0000 0001	1000 0000 0000 0001

};


const unsigned int cTestpattern24bit[SIZE_TESTPATTERN24]=
{
				//I2S link(FIFO)
				//Left(Low 32bit(24bit valid)				Right(High-next 32bit(24bit valid) )
	0x00800001,	//1000 0000  0000 0000 0000 0001			1000 0000  0000 0000 0000 0001
															0x00800001,
	0x00800003,	//1000 0000  0000 0000 0000 0011			1100 0000  0000 0000 0000 0001															
															0x00C00001,
	0x00800005,	//1000 0000  0000 0000 0000 0101			1010 0000  0000 0000 0000 0001															
															0x00A00001,
	0x00800009,	//1000 0000  0000 0000 0000 1001			1001 0000  0000 0000 0000 0001															
															0x00900001,
	
	0x00800011,	//1000 0000  0000 0000 0001 0001			1000 1000  0000 0000 0000 0001															
															0x00880001,
	0x00800021,	//1000 0000  0000 0000 0010 0001			1000 0100  0000 0000 0000 0001															
															0x00840001,
	0x00800041,	//1000 0000  0000 0000 0100 0001			1000 0010  0000 0000 0000 0001															
															0x00820001,
	0x00800081,	//1000 0000  0000 0000 1000 0001			1000 0001  0000 0000 0000 0001															
															0x00810001,

	0x00800101,	//1000 0000  0000 0001 0000 0101			1000 0000  1000 0000 0000 0001															
															0x00808001,
	0x00800201,	//1000 0000  0000 0010 0000 0001			1000 0000  0100 0000 0000 0001															
															0x00804001,
	0x00800401,	//1000 0000  0000 0100 0000 0001			1000 0000  0010 0000 0000 0001															
															0x00802001,
	0x00800801,	//1000 0000  0000 1000 0000 0001			1000 0000  0001 0000 0000 0001															
															0x00801001,
														
	
	
	0x00801001,	//1000 0000  0001 0000 0000 0001			1000 0000  0000 1000 0000 0001
															0x00800801,
	0x00802001,	//1000 0000  0010 0000 0000 0001			1000 0000  0000 0100 0000 0001															
															0x00800401,
	0x00804001,	//1000 0000  0100 0000 0000 0001			1000 0000  0000 0010 0000 0001															
															0x00800201,
	0x00808001,	//1000 0000  1000 0000 0000 0001			1000 0000  0000 0001 0000 0001															
															0x00800101,
	
	0x00810001,	//1000 0001  0000 0000 0000 0001			1000 0000  0000 0000 1000 0001															
															0x00800081,
	0x00820001,	//1000 0010  0000 0000 0000 0001			1000 0000  0000 0000 0100 0001															
															0x00800041,
	0x00840001,	//1000 0100  0000 0000 0000 0001			1000 0000  0000 0000 0010 0001															
															0x00800021,
	0x00880001,	//1000 1000  0000 0000 0000 0001			1000 0000  0000 0000 0001 0001															
															0x00800011,

	0x00900001,	//1001 0000  0000 0000 0000 0101			1000 0000  0000 0000 0000 1001															
															0x00800009,
	0x00A00001,	//1010 0000  0000 0000 0000 0001			1000 0000  0000 0000 0000 0101															
															0x00800005,
	0x00C00001,	//1100 0000  0000 0000 0000 0001			1000 0000  0000 0000 0000 0011															
															0x00800003,
	0x00800001,	//1000 0000  0000 0000 0000 0001			1000 0000  0000 0000 0000 0001															

};


//uSize : byte
void PCM_Data_init(unsigned int uBufferAddr, unsigned int uSize)
{
	int iIndex;
	unsigned int wordSize = uSize/4;
	// Reg_Buf Memory init	
	for(iIndex=0;iIndex<wordSize;iIndex+=1)
	{
		*( (unsigned int*)(uBufferAddr)+iIndex)=0x0;
	}
	printf("\n Check 0x%x Memory Init and Press Ant Key! \n", uBufferAddr);
}

//uSize : byte
void PCM_Data_making(unsigned int uBufferAddr, unsigned int uSize)
{
	int i;
    unsigned int *rec_buf = (unsigned int *)uBufferAddr; 
    unsigned int wordSize = uSize/4;
	
	for(i=0;i<wordSize;i++)
	{
		*(rec_buf+i)=i;
	}
//or	
//		*(rec_buf+0)=0xa5a5a5a5;
//		*(rec_buf+1)=0x5a5a5a5a;
//		*(rec_buf+2)=0xffff0000;
//		*(rec_buf+3)=0xffffffff;
//		*(rec_buf+4)=0x0000ffff;
}



//output : return success/fail
//         pcmdata address
bool PCM_waveparser(unsigned int uWaveStartAddr,
					unsigned short* uTotch,
					unsigned int*	uSampleRate,
					unsigned short* uBitperch,
					unsigned int*	uSize,
					
					unsigned int *uWaveDataAddr
					)
{
	unsigned char* pch=(unsigned char *)(uWaveStartAddr+8);//8 is wave loc offset
	unsigned short* u16data=(unsigned short *)(uWaveStartAddr+0x16);
	unsigned int* 	u32data=(unsigned int *)(uWaveStartAddr+0x18);
	
	if(pch[0] == 'W' && pch[1] == 'A' && pch[2] == 'V' && pch[3] == 'E')
	{
		*uTotch = *u16data;
		*uSampleRate = *u32data;
		
		*uBitperch=*(unsigned short *)(uWaveStartAddr+0x22);
		
		
		pch=(unsigned char *)(uWaveStartAddr+0x28-4);
		if(pch[0] == 'd' && pch[1] == 'a' && pch[2] == 't' && pch[3] == 'a')
		{
			*uSize = *(unsigned int *)(uWaveStartAddr+0x28);
			*uWaveDataAddr = (uWaveStartAddr+0x28+4);			
		}
		else
		{
			pch=(unsigned char *)(uWaveStartAddr+0x40-4);
			if(pch[0] == 'd' && pch[1] == 'a' && pch[2] == 't' && pch[3] == 'a')		
			{
				*uSize = *(unsigned int *)(uWaveStartAddr+0x40);
				*uWaveDataAddr = (uWaveStartAddr+0x40+4);				
			}
			else
			{
			
				pch=(unsigned char *)(uWaveStartAddr+0x4c-4);
				if(pch[0] == 'd' && pch[1] == 'a' && pch[2] == 't' && pch[3] == 'a')		
				{
					*uSize = *(unsigned int *)(uWaveStartAddr+0x4c);
					*uWaveDataAddr = (uWaveStartAddr+0x4c+4);				
				}
				else
				{			
					pch=(unsigned char *)(uWaveStartAddr+0x7c-4);
					if(pch[0] == 'd' && pch[1] == 'a' && pch[2] == 't' && pch[3] == 'a')		
					{
						*uSize = *(unsigned int *)(uWaveStartAddr+0x7c);
						*uWaveDataAddr = (uWaveStartAddr+0x7c+4);					
					}
					else
						*uSize = 0;
				}
			}
			
		}		
		
		printf("wave parsed result : totch-%d, samplerate-%d, bitperch-%d, size-%d byte",
				*uTotch, *uSampleRate, *uBitperch, *uSize);
		
		return 1;
	}
	else return 0;
}

/////////////////////////////////////////////////////////////////////////
// For test scenario
// First download 32bit wave file to base(0x32000000)
// if, "WAVE" is presented at 0xC exit
// else redownload put size(u32) to base
//
// string to show when the file is not present.
//
// return size at base address
unsigned int PCM_TestSourceDownload(unsigned int destaddr, char* string)
{
	unsigned int* paddr=(unsigned int *)(destaddr);
	unsigned char* pch=(unsigned char *)(destaddr+4+8);//4 is uart download offset, 8 is wave loc offset
	unsigned int filesize;
	
	//check
	if(pch[0] == 'W' && pch[1] == 'A' && pch[2] == 'V' && pch[3] == 'E')
	   return *paddr;//ok
	else
	{
		//redownload
		printf(string);//"please download 44000Hz 32bit 2ch stereo Wave pcm file\n"
		filesize=AUTO_DownloadData( (int)paddr);
		//and save filesize
		*paddr = filesize;
		return filesize;
	}	
}


//makes pcm pattern data to observe link.
//
//output 
//		- bool : success or fail
//		- destsizeByte : size(byte) of pattern made
//
//Input  
//		- destaddr : starting address of destination
//		- totrepeat : repeat count of test patterns
//		- eachrepeat : repeat count of one element of test pattern
//		- BitperCh : bit per channel of test pattern to make
bool PCM_DATA_2chpattern_making( unsigned int* destsizeByte,
							  unsigned int destaddr, unsigned int totrepeat, int eachrepeat, int BitperCh)
{
	unsigned char* 	pstartaddr=(unsigned char *)destaddr;
	unsigned int* 	paddr=(unsigned int *)destaddr;
	unsigned int 	wsize;
	int 			patternsize;
	unsigned int 	allowedunitsize;
	unsigned int 	estimatedsizeByte; 
	int i,j;
	bool 			bprint=0;
	
	//assert
	if(destsizeByte==0 || destaddr == 0 || totrepeat ==0 || eachrepeat == 0) return 0 ;
	
	patternsize = (BitperCh==8)?  SIZE_TESTPATTERN8:
				  (BitperCh==16)? SIZE_TESTPATTERN16:
				  (BitperCh==24)? SIZE_TESTPATTERN24: -1;
	if(patternsize<0) return 0;							  

	wsize = (BitperCh == 8)? totrepeat*SIZE_TESTPATTERN8 :
			(BitperCh==16)? totrepeat*SIZE_TESTPATTERN16:
		  					totrepeat*SIZE_TESTPATTERN24;

	//1, 
	estimatedsizeByte = patternsize*eachrepeat*totrepeat*4;	
	if(estimatedsizeByte>MAX_PCMDATASIZE)
	{
		printf("data overflow the limit of 0x%x(%d byte)\n", MAX_PCMDATASIZE, MAX_PCMDATASIZE);
		printf("current pattern size is 0x%x(%d byte)\n", estimatedsizeByte, estimatedsizeByte);
		return 0;
	}
	
	//2
	allowedunitsize = 0xffffffff/(patternsize *4* 6);
	if( (totrepeat*eachrepeat) > allowedunitsize) 
	{
		printf("data overflow the limit of totrepeat*eachrepeat count %d\n", allowedunitsize);
		printf("current count is %d\n", totrepeat*eachrepeat);
		return 0;
	}	
	
	
	if(BitperCh == 8)
	{
		for(i=0; i<wsize; i++)
		{		
			for(j=0; j<eachrepeat; j++)
			{
				*paddr = cTestpattern8bit[i%patternsize];
				if(bprint)printf("%d %x : %x\n", i, paddr, *paddr);
				paddr++;
				
			}					
		}		
	}
	else	
	if(BitperCh == 16)
	{
		for(i=0; i<wsize; i++)
		{		
			for(j=0; j<eachrepeat; j++)
			{
				*paddr = cTestpattern16bit[i%patternsize];
				if(bprint)printf("%d %x : %x\n", i, paddr, *paddr);
				paddr++;
				
			}					
		}		
	}
	else
	if(BitperCh == 24)
	{
		for(i=0; i<wsize; i=i+2)
		{		
			for(j=0; j<eachrepeat; j++)
			{				
				*paddr = cTestpattern24bit[i%patternsize];//left
				if(bprint)printf("%d %x : %x\n", i, paddr, *paddr);
				paddr++;
				*paddr = cTestpattern24bit[(i%patternsize)+1];//right
				if(bprint)printf("%d %x : %x\n", i, paddr, *paddr);
				paddr++;				

			}			
		}		
	}
	
	*destsizeByte = (unsigned int)((unsigned char* )paddr - (unsigned char* )pstartaddr);

	printf("pcm pattern making : %d bit 2ch\n", BitperCh);	
	printf("data pattern made starting from 0x%x to 0x%x, Byte size : %d(0x%x)\n", pstartaddr, paddr, *destsizeByte, *destsizeByte);
	printf("testpattern:%d, eachrepeat:%d, totrepeat:%d, calculated totsize:0x%x(%d byte) , real totsize:0x%x(%d byte)\n",
			patternsize, eachrepeat, totrepeat, patternsize*eachrepeat*totrepeat*4, patternsize*eachrepeat*totrepeat*4,
			 									*destsizeByte, *destsizeByte);
	if(estimatedsizeByte == *destsizeByte)
		return 1;
	else 
		return 0;
}



//expand 2ch pcm fifo format data to designated channels
//
//output
//		- bool : success or fail
//		- destsizeByte : expanded data size(byte)
//
//input
//		- destaddr : starting address of destination to make a data
//		- destTotch : total channels number to expand
//		- orgaddr : starting address of original pcm(fifo format) data is located.
//		- orgTotch : 2ch is supported
//		- orgsizeByte : data size(byte) of original pcm data
//		- orgBit : Bit per channel of pcmdata
bool PCM_DATA_2chexpanding(unsigned int destaddr, int destTotch, unsigned int* destsizeByte, 
						   unsigned int orgaddr , int orgTotch,  unsigned int orgsizeByte, int orgBit)
{
	unsigned char* 	pstartaddr=(unsigned char *)destaddr;
	unsigned int* paddr=(unsigned int*)destaddr;
	unsigned int* paddrorg=(unsigned int*)orgaddr;	
	unsigned int wsize;
	unsigned int twochnum;
	unsigned int i, j;
	
	//assert
	if(orgsizeByte==0 || destaddr == 0 || destsizeByte == NULL || destTotch==0) return 0;
	if(orgTotch !=2 ) 
	{
		printf("only 2ch original data is supported!!!\n");
		return 0;
	}
	if(destTotch%2!=0)
	{
		printf("only even tot channels are supported!!!\n");
		return 0;
	}
	
	wsize  = orgsizeByte/4;
	twochnum=destTotch/2;
	
	if(orgBit == 8 || orgBit == 16)
	{
		for(i=0; i<wsize; i++)
		{
			for(j=0; j<twochnum; j++)
			{
				*paddr = *paddrorg;
				paddr++;					
			}
			paddrorg++;
		}

	}
	else
	if(orgBit == 24)
	{
		for(i=0; i<wsize; i+=2)//2ch org
		{
			for(j=0; j<twochnum; j++)
			{			
				*paddr = *paddrorg & 0x00ffffff;
				paddr++;			
				*paddr = *(paddrorg+1) & 0x00ffffff;//be careful 1 unit is word size
				paddr++;
			}
				//printf("%d paddrorg:0x%x  *paddrorg:0x%x ,  paddrorg+4:0x%x ,  *paddrorg+4:0x%x, paddrorg+1:0x%x ,  *paddrorg+1:0x%x\n",
				//			i, paddrorg, *paddrorg, paddrorg+4, *(paddrorg+4), paddrorg+1, *(paddrorg+1));				
				
			//2ch org

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费视频一区二区| 国产欧美一区二区三区鸳鸯浴| 日韩精品一区二区三区中文精品| 欧美极品xxx| 日本不卡中文字幕| 91丨porny丨蝌蚪视频| 日韩视频中午一区| 亚洲一级电影视频| 丰满少妇久久久久久久| 日韩午夜中文字幕| 亚洲一区二三区| 成人97人人超碰人人99| 欧美成人r级一区二区三区| 亚洲精品视频一区| 成人黄色在线网站| 欧美激情一区三区| 国产精品一级黄| 欧美videos中文字幕| 日韩1区2区3区| 91精品国产乱| 亚洲va国产天堂va久久en| 91丨porny丨中文| 亚洲视频一区在线观看| 成人av资源网站| 国产亚洲精久久久久久| 狠狠色丁香婷婷综合| 日韩欧美自拍偷拍| 麻豆成人久久精品二区三区红| 欧美日韩免费观看一区二区三区| 一区二区三区欧美日韩| 在线免费一区三区| 亚洲最新在线观看| 欧美午夜理伦三级在线观看| 日韩av一区二| 欧美日韩1区2区| 日韩综合一区二区| 9191成人精品久久| 六月婷婷色综合| 精品99999| 国产福利一区二区三区在线视频| 久久综合久色欧美综合狠狠| 国产suv一区二区三区88区| 久久久99久久精品欧美| 成熟亚洲日本毛茸茸凸凹| 亚洲国产精品成人久久综合一区| 国产成人精品免费网站| 国产精品久久久久久久久图文区| 成人免费观看视频| 亚洲精品中文在线| 91精品国产免费| 国产一区二区三区四区五区美女 | 国产精品久久久久婷婷| 成人蜜臀av电影| 一区二区三区国产精华| 在线电影院国产精品| 韩国午夜理伦三级不卡影院| 国产精品女主播在线观看| 色婷婷综合久久久久中文一区二区| 亚洲精品第一国产综合野| 欧美一区二区视频网站| 国产一区二区0| 亚洲天堂av一区| 日韩一区二区在线看片| 国产成人免费视频一区| 亚洲在线中文字幕| 欧美mv和日韩mv国产网站| 成人激情动漫在线观看| 天天综合天天做天天综合| 久久蜜桃香蕉精品一区二区三区| www.亚洲在线| 日本va欧美va瓶| 国产精品免费aⅴ片在线观看| 欧美日韩精品欧美日韩精品一 | 亚洲三级理论片| 欧美精品1区2区| 成人自拍视频在线| 日本欧美肥老太交大片| 亚洲欧美另类小说| 久久久噜噜噜久久人人看| 在线视频一区二区三| 国产精品99久久久久久似苏梦涵 | 欧美日韩国产首页在线观看| 高清shemale亚洲人妖| 日韩中文字幕av电影| 国产精品九色蝌蚪自拍| 精品国产乱码久久久久久蜜臀 | 91丝袜美腿高跟国产极品老师 | 在线亚洲人成电影网站色www| 精品一区二区免费看| 亚洲一区二区三区精品在线| 久久久精品人体av艺术| 欧美一区二区三区四区久久| 91美女蜜桃在线| 成人手机电影网| 国产一区啦啦啦在线观看| 午夜精品久久久久久久99水蜜桃| 国产精品青草综合久久久久99| 日韩一区二区免费电影| 欧美精品自拍偷拍动漫精品| 久久―日本道色综合久久| 欧美日韩国产天堂| 欧美性感一区二区三区| 97国产一区二区| 成人一级片网址| 国产mv日韩mv欧美| 国产a视频精品免费观看| 国产乱色国产精品免费视频| 麻豆专区一区二区三区四区五区| 亚洲第一福利视频在线| 亚洲高清视频中文字幕| 亚洲风情在线资源站| 亚洲综合清纯丝袜自拍| 亚洲一区二区视频在线| 亚洲最新视频在线播放| 亚洲成人先锋电影| 日日骚欧美日韩| 蜜桃av一区二区三区| 美日韩一区二区| 国产资源精品在线观看| 国产麻豆视频一区| 国产成人午夜视频| 高清在线不卡av| 99久久国产免费看| 一本一本久久a久久精品综合麻豆| 99精品欧美一区二区蜜桃免费 | 国产一区二区免费在线| 精品一区二区久久久| 国产伦精品一区二区三区免费| 精品一区中文字幕| 福利一区二区在线| 波多野结衣在线一区| 91天堂素人约啪| 欧美日本国产一区| 日韩欧美色综合网站| 国产亚洲欧美一级| 国产精品进线69影院| 亚洲成av人片在线观看| 久久国产尿小便嘘嘘尿| 国产69精品久久久久777| 色综合咪咪久久| 51午夜精品国产| 久久久久亚洲综合| 亚洲免费av网站| 日韩电影在线一区二区| 国产+成+人+亚洲欧洲自线| 色综合天天综合给合国产| 欧美另类高清zo欧美| 国产午夜一区二区三区| 亚洲综合小说图片| 黄色小说综合网站| 在线视频你懂得一区二区三区| 日韩三级高清在线| 综合激情成人伊人| 欧美aaa在线| www.日韩在线| 日韩一区二区三区视频在线观看 | 亚洲国产精品久久人人爱| 精品制服美女丁香| a美女胸又www黄视频久久| 欧美日韩国产一级片| 中文字幕av一区二区三区| 日日夜夜精品免费视频| 成人黄色电影在线| 日韩一区二区影院| 一区二区三区在线观看网站| 久久成人综合网| 精品婷婷伊人一区三区三| 国产精品嫩草99a| 久久99精品久久久久久久久久久久| 91网站在线播放| 国产视频一区不卡| 久久精品国产久精国产爱| 日本高清不卡视频| 亚洲国产高清不卡| 麻豆成人在线观看| 91精品欧美久久久久久动漫 | 在线免费观看日韩欧美| 亚洲国产精品成人综合色在线婷婷| 视频一区中文字幕| 91久久精品国产91性色tv| 国产亚洲精品aa午夜观看| 久久99久久精品欧美| 欧美嫩在线观看| 夜夜夜精品看看| 91久久线看在观草草青青| 中文在线资源观看网站视频免费不卡| 美腿丝袜亚洲一区| 欧美一卡在线观看| 天堂成人免费av电影一区| 91福利视频网站| 亚洲欧美一区二区三区国产精品 | 亚洲国产精品视频| 色美美综合视频| 亚洲色图制服丝袜| av午夜精品一区二区三区| 国产精品电影院| 91精品国产91久久久久久最新毛片 | 欧美色中文字幕| 亚洲精品乱码久久久久久日本蜜臀| www.性欧美|