亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
欧美成人精品二区三区99精品| 成人综合婷婷国产精品久久| 91福利在线导航| 亚洲在线视频一区| 欧美欧美午夜aⅴ在线观看| 日日骚欧美日韩| 精品久久久久香蕉网| 成人一区在线观看| 亚洲国产一二三| 91精品国产综合久久久久| 蜜桃精品视频在线观看| 久久毛片高清国产| 99久久精品国产网站| 亚洲国产精品久久艾草纯爱| 日韩欧美在线观看一区二区三区| 国产一区二区三区四区五区入口 | 日韩国产高清影视| 日韩一区二区在线观看视频播放| 韩国精品主播一区二区在线观看| 欧美激情一区二区三区四区| 91首页免费视频| 日日夜夜精品免费视频| 欧美高清一级片在线观看| 欧美伊人久久久久久久久影院| 日本一不卡视频| 国产精品高潮呻吟| 欧美老女人在线| 国产成+人+日韩+欧美+亚洲| 夜夜精品视频一区二区| 91精品国产麻豆国产自产在线 | 欧美日韩高清一区二区不卡| 国产在线不卡一卡二卡三卡四卡| 中文字幕一区二区三中文字幕| 717成人午夜免费福利电影| 国产精品1区2区3区在线观看| 亚洲综合色噜噜狠狠| 欧美精品一区二区久久久| 91色乱码一区二区三区| 美女www一区二区| 亚洲精品国产一区二区精华液| 欧美一区二区久久| 色婷婷精品久久二区二区蜜臂av| 韩国女主播成人在线| 亚洲午夜激情网站| 国产精品护士白丝一区av| 日韩一区二区三区视频在线观看| 99re这里只有精品6| 国产中文字幕一区| 美女在线视频一区| 一区二区免费视频| 国产精品久久久久久久久久久免费看 | 欧美体内she精高潮| 久久91精品国产91久久小草| 一区二区三区在线视频观看| 久久这里只有精品视频网| 欧美日韩国产免费| 91蝌蚪porny| 国产成人av自拍| 卡一卡二国产精品 | 久久精品欧美一区二区三区不卡| 欧美日韩精品是欧美日韩精品| 成人av午夜电影| 国产精品888| 国产乱码精品一区二区三区忘忧草| 午夜精品久久久久久久久久久| 亚洲欧美色综合| 国产精品二三区| 国产精品免费看片| 日本一区二区三区电影| 久久精品综合网| 久久精品网站免费观看| 精品国产乱码久久久久久夜甘婷婷| 欧美美女网站色| 欧美区一区二区三区| 欧美日韩美少妇| 在线播放欧美女士性生活| 欧美伊人精品成人久久综合97 | 日韩精品一区二区三区视频在线观看| 欧美日韩高清在线播放| 91官网在线观看| 一本久道久久综合中文字幕| 91麻豆自制传媒国产之光| 91麻豆文化传媒在线观看| 日本精品裸体写真集在线观看| 91亚洲国产成人精品一区二区三 | 国产亚洲欧美在线| 久久精品男人天堂av| 久久精品人人做人人综合 | 亚洲美女在线国产| 一区二区三国产精华液| 亚洲成人av在线电影| 天堂成人免费av电影一区| 亚洲6080在线| 麻豆精品一二三| 国产在线不卡一区| www.成人在线| 欧美视频一区二区三区| 555夜色666亚洲国产免| 欧美电影免费观看高清完整版在线观看| 精品sm捆绑视频| 国产精品午夜在线观看| 亚洲靠逼com| 日韩黄色小视频| 国产精品乡下勾搭老头1| 从欧美一区二区三区| 欧美日韩午夜精品| 日韩欧美另类在线| 国产精品无圣光一区二区| 亚洲一区二区三区四区五区黄 | 欧洲一区二区三区在线| 欧美精品日韩精品| 久久免费看少妇高潮| 国产精品久久久久久福利一牛影视 | 久久国产精品99久久人人澡| 久久精品国产999大香线蕉| 国产精品小仙女| 欧美亚洲日本一区| 久久久三级国产网站| 亚洲欧洲综合另类| 捆绑调教美女网站视频一区| 成人午夜电影网站| 欧美日韩大陆一区二区| 国产校园另类小说区| 1区2区3区国产精品| 日本中文字幕一区二区视频| 国产成人啪午夜精品网站男同| 色综合天天综合在线视频| 精品剧情v国产在线观看在线| 亚洲欧美日韩中文字幕一区二区三区| 日本中文字幕一区二区视频| aaa亚洲精品| ww亚洲ww在线观看国产| 一区二区三区精品| 国产成人精品亚洲日本在线桃色 | 欧美日韩大陆在线| 国产精品久久久久久久裸模| 日本va欧美va欧美va精品| 91啪亚洲精品| 国产午夜精品一区二区三区嫩草| 日韩国产一区二| 91久久精品网| 国产精品乱码妇女bbbb| 麻豆成人久久精品二区三区小说| 色天天综合色天天久久| 久久久蜜桃精品| 九一九一国产精品| 精品视频色一区| 亚洲精品成人少妇| 成人涩涩免费视频| 久久精品一区八戒影视| 久久精品国产精品亚洲综合| 在线播放中文一区| 亚洲成a人片在线观看中文| 99精品1区2区| 中文字幕一区二区三区在线播放 | av在线这里只有精品| 精品1区2区在线观看| 日韩影院精彩在线| 欧美日韩免费高清一区色橹橹 | 99久久免费国产| 欧美激情中文字幕| 成人在线视频一区二区| 中文字幕欧美区| 高清久久久久久| 国产人妖乱国产精品人妖| 国产一区二区不卡在线| 精品美女被调教视频大全网站| 免费成人结看片| 精品理论电影在线观看| 精品一区二区免费| 2024国产精品| 国产精品影音先锋| 国产欧美一二三区| 成人高清视频在线观看| 国产精品大尺度| 91蜜桃免费观看视频| 亚洲福利一区二区| 欧美一区二区日韩一区二区| 免费欧美日韩国产三级电影| 日韩一级二级三级精品视频| 久久国产精品区| 中文子幕无线码一区tr| 972aa.com艺术欧美| 一区二区三区在线视频观看58| 欧美色区777第一页| 轻轻草成人在线| 国产日韩精品视频一区| av电影在线观看不卡| 亚洲一区二区三区精品在线| 欧美一区二区三区免费大片| 久久精品国产精品亚洲精品| 中文字幕欧美日韩一区| 在线欧美日韩精品| 欧美aⅴ一区二区三区视频| 久久九九久久九九| 在线观看免费亚洲| 捆绑紧缚一区二区三区视频| 中文字幕免费不卡| 欧美三级视频在线观看| 精东粉嫩av免费一区二区三区|