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

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

?? wtaudioplay.c

?? MCF5249的音頻驅(qū)動程序,可以實(shí)現(xiàn)PCM的實(shí)時播放和采集
?? C
?? 第 1 頁 / 共 3 頁
字號:
//****************************************************************//***   For 5249 AudioPlay//****************************************************************#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/socket.h>#include <sys/stat.h>#include <sys/types.h>#include <netinet/in.h>#include <arpa/inet.h>#include <errno.h>#include <netdb.h>#include <sys/types.h>#include <sys/wait.h>#include <time.h>#include <sys/time.h>#include <signal.h>#include <unistd.h>#include <fcntl.h>#include <malloc.h>#include <sys/mman.h>#include <sys/ioctl.h>#include <signal.h>//***************************************************************#define WT_AUDIO#define _AUDIO_ADPCM_ //#define _AUDIO_PCM_ //#define _AUDIO_UPCM_ //#define _AUDIO_APCM_  //#define AUDIO_RECODE#define AUDIO_PLAYBACK//#define RX_IRQ#define DMA_TEST#define HAVE_MAP//**********************************************************//Data type define#define DWORD unsigned long#define BYTE  unsigned char#define WORD unsigned short#define INDATA_T unsigned short#define OUTDATA_T unsigned long//typedef INDATA_T * pInData;//typedef OUTDATA_T * pOutData;typedef void AU_SEND(void* indata, OUTDATA_T* outdata,int nSrcSize, BYTE *private);#define R4(indata, x) (indata>>((x-1)*4))//***************************************************************//***  for debug **#define DEBUG 1#ifdef DEBUG#define PDEBUG(fmt, args...) printf(fmt,##args)#define KDEBUG(fmt, args...) printk("KDEBUG: "fmt, ##args)#else#define PDEBUG(fmt, args...)#define KDEBUG(fmt, args...)#endif//***************************************************************#define VIDEOBLOCKNUM   (1024)  #define VIDEORAW         (512)#define VIDEOHEAD        (20) #define VIDEOPACKSIZE    (VIDEORAW+VIDEOHEAD)#define VIDEOBUFSIZE  	(sizeof(char)*VIDEOBLOCKNUM*VIDEOPACKSIZE)#define LEAFLET 			(8)         //READ LEAFLET PACKAGE FORM VIDEO DRIVER#define APACKCOUNT 		(512)   //(AUDIOBUFSIZE/ADSAMP_PER_PACK)#define ADSAMP_PER_PACK ((508-4)*2+1) // 1009#define USAMP_PER_PACK (508)#define APCMPACKSIZE    (508)//#define UPCMPACKSIZE 	((508-4)*2+1)#define AUDIOBUFSIZE	(APACKCOUNT*ADSAMP_PER_PACK)//#define AUDIOPACKSIZE (PACKSIZE*8)#define DELAY (2)#define RECODERSIZE (4*120)#define	AUDIO_ENCODING_ULAW	(1)	/* ISDN u-law */#define	AUDIO_ENCODING_ALAW	(2)	/* ISDN A-law */#define	AUDIO_ENCODING_LINEAR (3)	/* PCM 2's-complement (0-center) */#define AUDIO_ENCODING_ADPCM (4) /*IMA ADPCM */#define BUFFERINC(x,y,z)  ((x+y)%z)  //z: num of package  y: inc  x: indicate//**************************************************typedef struct WTAudioStream{	int coding;	AU_SEND *AudioSend;	BYTE * destBuffer;	int 	   destBufSize;	int       nDestTag;	int nOutPSize;  //send package size		char *private;	}WTAudioStream;typedef struct WTMediaStream{	BYTE * srcBuffer;	int srcBufSize;	int nSrcTag;	int nInPSize;  //send package size	int nInBSize;	WORD ChnNo;       WORD MediaType;       WORD FrameSize;}WTMediaStream;// audio devicetypedef struct WTAudio_dev{	int major;  	int tx_irq; 	int tx_nBufT; 	int tx_nBufB;  	int tx_nDmaStart;	int tx_nDmaCount;	//unsigned long SysDelay;	unsigned long mmstart; //buffer base addr	unsigned long mmsize;  //buffer size = packsize*packcount	unsigned long dmasize; //dma buffer size = packsize*dmasize	unsigned long packsize;	//adpcm:1009  upcm: 508	unsigned long mmcount;  // mmsize/packsize	unsigned long dmacount; // dmssize/packsize#ifdef AUDIO_RECODE	int rx_nBufT;	int rx_nBufB;	//int rx_nDmaCount;	unsigned long rxmmstart; //mmstart+mmsize	unsigned long rxmmsize;  //	unsigned long rxpacksize; //	unsigned long rxmmcount; //rxmmsize/rxpacksize#endif}WTAudio_dev;typedef struct WTDevBufStatus{	int tx_nBufT;	int tx_nBufB;	int tx_nDmaStart;}WTDevBufStatus;//**************************//unsigned char *VBuffer;  //video buffer map from kernel (wtmpeg)//unsigned char *ABuffer; //audio buffer map from kernel  (wtaudio)//int    nVRD = 0; //indicate the read offset from video buffer base//int    nAWR = 0;WTAudioStream AU_Stream = 					{AUDIO_ENCODING_ADPCM,NULL,NULL,AUDIOBUFSIZE,0, ADSAMP_PER_PACK,NULL};WTMediaStream VU_Stream = 					{NULL,VIDEOBUFSIZE,0,VIDEOPACKSIZE,LEAFLET,0,0,0};//**************************//*************************************//** audio ioctl ***#define IOC_MAGIC ('k')#define IOCASTOP _IO(IOC_MAGIC,0)#define IOCASTART _IO(IOC_MAGIC,1)#define IOCASPACKSIZE _IOW(IOC_MAGIC,2,int)#define IOCAGDEVBUFSTATUS _IOR(IOC_MAGIC,3,sizeof(WTDevBufStatus))#define IOCAGDEVSTATUS _IOR(IOC_MAGIC,4,sizeof(WTAudio_dev)) #define IOCASRXSTART _IO(IOC_MAGIC,5)//#define IOCASDELAYSIZE _IOW(IOC_MAGIC,5,int)//** video ioctl ***#define IOCVGSTATUE _IOR(IOC_MAGIC,0,int)//*************************************#ifdef _MCF5249_//Define base address#define IME_MBAR 0x30000000#define MCF_MBAR 0x10000000#define MCF_MBAR2 0x80000000//ime6400 Register define#define BaseAddress0 (0x12<<1)#define BaseAddress1 (0x14<<1)#define Status (0x1e<<1)#define Data (0x02<<1)#define Command 0x00#define User0 (0x04<<1)#define User4 (0x0c<<1)#define User3 (0x0a<<1)#define EncodedStream (0x10<<1)#else //Define base address#define IME_MBAR 0x01000000#define MCF_MBAR 0x10000000//ime6400 Register define#define BaseAddress0 0x12#define BaseAddress1 0x14#define Status 0x1e#define Data 0x02#define Command 0x00#define User0 0x04#define User4 0x0c#define User3 0x0a#define EncodedStream 0x10#endif//=======================Get config parameters =======================#define SERVER_IP 		0#define	SERVER_PORT		1#define	DEVICE_IP		2#define	DEVICE_NETMASK		3#define DEVICE_BROADCAST	4#define DEVICE_GW		5#define	STREAM_TYPE		6#define VIDEO_FORMAT		7#define	VIDEO_FRAME_RATE	8#define VIDEO_ENCODE_TYPE	9#define	I_FRAME_INTERVAL	10#define BITRATE_CONTROL		11#define	CBR_TARGET_BITRATE	12#define	VBR_INIT_QUALITY	13#define	HYBRID_BITRATE_MIN	14#define	HYBRID_BITRATE_MAX	15#define	MPEG1L2_AUDIO		16#define	ADPCM_AUDIO		17#define	CF_VALUE		18#define	COMMAND_TYPE		19#define BASE_SIGN		20 //98 #define AMOUNT_CHANNEL 21	//	99#define BRIGHT			22//24#define CONTRAST		23//25//============================================================char *MPEGConfig[]={"","","","","","","system","PAL 352*288","1","I/P",				"32","Vbr","320","10","400","400","","ADPCM","32","","270091000","128","128"};//global #ifdef AUDIO_RECODE//int AudioIN;#endifint VideoIN, AudioID;//******************************************//***      Function                                            ****//******************************************// Big-endian <==> Little-endian#ifdef _REVERSE_#define Reverse16(r)	(((WORD)r<<8)|((WORD)r>>8))#else#define Reverse16(r) (r)#endif//***   pointer for mem space#define	mcf32p(r)	((DWORD *) (r))#define	mcf16p(r)	((WORD *) (r))#define	mcf8p(r)	((BYTE *) (r))//***   pointer for mbar register#define	mcfReg32p(r)	(mcf32p(MCF_MBAR + (r)))#define	mcfReg16p(r)	(mcf16p(MCF_MBAR + (r)))#define	mcfReg8p(r) 	(mcf8p(MCF_MBAR + (r)))#ifdef _MCF5249_//***   pointer for 5249 mbar2 register#define	mcf2Reg32p(r)	(mcf32p(MCF_MBAR2 + (r)))#define	mcf2Reg16p(r)	(mcf16p(MCF_MBAR2 + (r)))#define	mcf2Reg8p(r) 	(mcf8p(MCF_MBAR2 + (r)))#endif//***   pointer for ime6400 register#define	I6400Reg32p(r)	(mcf32p(IME_MBAR + (r)))#define	I6400Reg16p(r)	(mcf16p(IME_MBAR + (r)))#define	I6400Reg8p(r) 	(mcf8p(IME_MBAR + (r)))//******** the  old  functions//===========================mcf Access =====================#define M5272ReadMem(r) (*mcf32p(r))#define M5272ReadReg(r) (*mcfReg32p(r))#define M5272WriteReg(x, y) (mcf32Write(x,y))inline void  mcf32Write(DWORD dIndex,DWORD dValue){	*(mcfReg32p(dIndex))=dValue;		return;}//===========================IME 6400 Access =====================#define	I6400ReadReg(r) (Reverse16(*I6400Reg16p(r)))inline void I6400WriteReg(DWORD dIndex,WORD wValue){	*(I6400Reg16p(dIndex))=Reverse16(wValue);	return;}WORD I6400ReadMem(DWORD dAddr){    WORD wRet;    WORD wUpper16,wLower16;    wUpper16=dAddr>>16;    wLower16=dAddr&0xFFFF;    I6400WriteReg(BaseAddress1,wUpper16);    I6400WriteReg(BaseAddress0,wLower16);    I6400WriteReg(Command,0x00);    while((I6400ReadReg(Status)&0x0001)==0);    wRet=I6400ReadReg(Data);    return wRet;}void I6400WriteMem(DWORD dAddr,WORD wValue){    WORD wUpper16,wLower16;    wUpper16=dAddr>>16;    wLower16=dAddr&0xFFFF;    I6400WriteReg(BaseAddress1,wUpper16);    I6400WriteReg(BaseAddress0,wLower16);    I6400WriteReg(Data,wValue);    I6400WriteReg(Command,0x01);    while((I6400ReadReg(Status)&0x0001)==0);    //printf("Write IME6400 Address %x successfully\n",dAddr);    return;}int ReadValue(char *value, int index,int nChannel){	sprintf(value,"%s",MPEGConfig[index*nChannel]);}//==============829===============//                     IIC  GROUPtypedef struct _UserIICTab  {   DWORD user_iic_ctrl;   //big endian   DWORD user_iic_data;  }UserIICTab;//==================BT829=====================//index is 0,1,2 for NTSC//	4,5,6,7 for PAL//for NTSCUserIICTab BT829_320x240[] = {  //index 0	{0x00880400, 0x00580011},	{0x04880400, 0x1ce04040},	//{0x04880400, 0x16e04040}, old	{0x08880400, 0x14d80020},	//{0x08880400, 0x14f00020}, old	{0x0c880400, 0xd8feb400},	{0x10880400, 0x00cf0640},	{0x14880400, 0x00010070},	{0x18880400, 0x685d8200},	{0x1c880300, 0x00007f00},	{0x00000000, 0x00000000}};UserIICTab BT829_640x480[] = {	//index 1	{0x00880400, 0x00580012},//	; 0x00~0x03	{0x04880400, 0x1ce0a083},      //{0x04880400, 0x1ce07e80},//	; 0x04~0x07 	//{0x04880400, 0x16e07880}, old	{0x08880400, 0x028c0020},//	; 0x08~0x0b	//{0x08880400, 0x02ac0020}, //old	{0x0c880400, 0xd8feb400},//	; 0x0c~0x0f	{0x10880400, 0x00cf0660},//	; 0x10~0x13	{0x14880400, 0x00010070},//	; 0x14~0x17	{0x18880400, 0x685d8200},//	; 0x18~0x1b	{0x1c880300, 0x00007f00},//	; 0x1c~0x1e	{0x00000000, 0x00000000}};//==============================================UserIICTab BT829_640x240[] = {	//index 1	{0x00880400, 0x00580012},//	; 0x00~0x03	{0x04880400, 0x1ce0a080},      	{0x08880400, 0x028c0020},//	; 0x08~0x0b	{0x0c880400, 0xd8feb400},//	; 0x0c~0x0f	{0x10880400, 0x00cf0640},//	; 0x10~0x13	{0x14880400, 0x00010070},//	; 0x14~0x17	{0x18880400, 0x685d8200},//	; 0x18~0x1b	{0x1c880300, 0x00007f00},//	; 0x1c~0x1e	{0x00000000, 0x00000000}};//==============================================UserIICTab BT829_720x480[] = {	//index 2	{0x00880400, 0x00580012},//	; 0x00~0x03	{0x04880400, 0x16e080d0},//	; 0x04~0x07	{0x08880400, 0x00f80020},//	; 0x08~0x0b	{0x0c880400, 0xd8feb400},//	; 0x0c~0x0f	{0x10880400, 0x00cf0660},//	; 0x10~0x13	{0x14880400, 0x00010070},//	; 0x14~0x17	{0x18880400, 0x685d8200},//	; 0x18~0x1b	{0x1c880300, 0x00007f00},//	; 0x1c~0x1e	{0x00000000, 0x00000000}};//for PALUserIICTab BT829_320x288[] = {	//index 4	{0x00880400, 0x00580021},//; 0x00~0x03	{0x04880400, 0x16404880},//; 0x04~0x07	{0x08880400, 0x1a090020},//; 0x08~0x0b	{0x0c880400, 0xd8feb400},//; 0x0c~0x0f	{0x10880400, 0x00cf0640},//; 0x10~0x13	{0x14880400, 0x00010070},//; 0x14~0x17	{0x18880400, 0x7f728200},//; 0x18~0x1b	{0x1c880300, 0x00007f00},//; 0x1c~0x1e	{0x00000000, 0x00000000}};UserIICTab BT829_352x288[] = {	//index 5	{0x00880400, 0x005b0021},//	; 0x00~0x03	{0x04880400, 0x1c404860 },//	; 0x04~0x07	//{0x04880400, 0x16404860 },	{0x08880400, 0x1a090020},//	; 0x08~0x0b	{0x0c880400, 0xd8feb400},//	; 0x0c~0x0f	{0x10880400, 0x00cf0540},//	; 0x10~0x13	{0x14880400, 0x00010070},//	; 0x14~0x17	{0x18880400, 0x7f728200},//	; 0x18~0x1b	{0x1c880300, 0x00007f00},//	; 0x1c~0x1e	{0x00000000, 0x00000000}};UserIICTab BT829_704x576[] = {	//index 6	{0x00880400, 0x18d30022},//; 0x00~0x03	{0x04880400, 0x20408dc0},//; 0x04~0x07	//{0x04880400, 0x204086c0}, old	//{0x08880400, 0x05040020},//; 0x08~0x0b	{0x08880400, 0x05040030},//; 0x08~0x0b	{0x0c880400, 0xd8feb400},//; 0x0c~0x0f	{0x10880400, 0x00cf0660},//; 0x10~0x13	{0x14880400, 0x00010070},//; 0x14~0x17	{0x18880400, 0x7f728200},//; 0x18~0x1b	{0x1c880300, 0x00007f00},//; 0x1c~0x1e	{0x00000000, 0x00000000}};//================================================UserIICTab BT829_704x288[] = {	//index 6	{0x00880400, 0x18d30022},//; 0x00~0x03	{0x04880400, 0x20408dc0},//; 0x04~0x07	{0x08880400, 0x05040030},//; 0x08~0x0b	{0x0c880400, 0xd8feb400},//; 0x0c~0x0f	{0x10880400, 0x00cf0640},//; 0x10~0x13	{0x14880400, 0x00010070},//; 0x14~0x17	{0x18880400, 0x7f728200},//; 0x18~0x1b	{0x1c880300, 0x00007f00},//; 0x1c~0x1e	{0x00000000, 0x00000000}};//================================================UserIICTab BT829_720x576[] = {	//index 7	{0x00880400, 0x18d30022},//; 0x00~0x03	{0x04880400, 0x204086d0},//; 0x04~0x07	{0x08880400, 0x05040020},//; 0x08~0x0b	{0x0c880400, 0xd8feb400},//; 0x0c~0x0f	{0x10880400, 0x00cf0660},//; 0x10~0x13	{0x14880400, 0x00010070},//; 0x14~0x17	{0x18880400, 0x7f728200},//; 0x18~0x1b	{0x1c880300, 0x00007f00},//; 0x1c~0x1e	{0x00000000, 0x00000000}};UserIICTab BT829p_640x480[] ={ //index 8	{0x00880400, 0x00580022},//0x00~0x03	{0x04880400, 0x1f388380},//0x04~0x07	{0x08880400, 0x070c0030},//0x08~0x0b	{0x0c880400, 0xd8feb400},//0x0c~0x0f	{0x10880400, 0x00cf067f},//0x10~0x13	{0x14880400, 0x9a010070},//0x14~0x17	{0x18880400, 0x7f728200},//0x18~0x1b	{0x1c880300, 0x00007f00},//0x1c~0x1e	{0x00000000, 0x00000000}}; void I6400WriteUserIIC(UserIICTab * pUserIIC,DWORD dev_id){ DWORD dwData; DWORD dwAddress; while(pUserIIC->user_iic_ctrl)     {      dwData=pUserIIC->user_iic_data;      I6400WriteMem(0x2026,dwData>>16);  //user_iic_data Upper 16bits write      I6400WriteMem(0x2024,dwData&0xFFFF); //user_iic_data Lower 16bits Write      //start,write bit starting      dwData=pUserIIC->user_iic_ctrl|0x00000003|(dev_id<<16);      I6400WriteMem(0x2022,dwData>>16);  //user_iic_ctrl Upper 16bits write      I6400WriteMem(0x2020,dwData&0xFFFF); //user_iic_ctrl Lower 16bits write      dwAddress=0x2020;      while(1)           {            WORD wLower16=I6400ReadMem(0x2020);            if((wLower16&0x0002)==0)                break;           }      pUserIIC++;     } I6400WriteMem(0x2020,0); return;}// Initial IIC void SetBright(char bt)//default 0{ DWORD dwData; DWORD dwAddress; //while(pUserIIC->user_iic_ctrl) //    {      //dwData=pUserIIC->user_iic_data;      dwData = bt<<24;      //printf("Write date:%x\n",dwData);      I6400WriteMem(0x2026,dwData>>16);  //user_iic_data Upper 16bits write      I6400WriteMem(0x2024,dwData&0xFFFF); //user_iic_data Lower 16bits Write      //start,write bit starting      dwData=0x0a880103;      I6400WriteMem(0x2022,dwData>>16);  //user_iic_ctrl Upper 16bits write      I6400WriteMem(0x2020,dwData&0xFFFF); //user_iic_ctrl Lower 16bits write      dwAddress=0x2020;      while(1)           {            WORD wLower16=I6400ReadMem(0x2020);            if((wLower16&0x0002)==0)                break;           }  //    pUserIIC++; //    } I6400WriteMem(0x2020,0); return;}void SetContrast(BYTE bt)//default 126{ DWORD dwData; DWORD dwAddress; //while(pUserIIC->user_iic_ctrl) //    {      //dwData=pUserIIC->user_iic_data;      dwData = bt<<24;      //printf("Write date:%x\n",dwData);      I6400WriteMem(0x2026,dwData>>16);  //user_iic_data Upper 16bits write      I6400WriteMem(0x2024,dwData&0xFFFF); //user_iic_data Lower 16bits Write      //start,write bit starting      dwData=0x0C880103;      I6400WriteMem(0x2022,dwData>>16);  //user_iic_ctrl Upper 16bits write

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩手机在线导航| 色综合久久中文字幕综合网| 91精品视频网| 日韩高清不卡在线| 欧美一区午夜精品| 精品一区二区免费| 国产精品视频在线看| 99久久精品国产一区| 一区二区三区加勒比av| 欧美精品少妇一区二区三区| 免费成人美女在线观看.| 久久综合九色综合97婷婷| 国产夫妻精品视频| 亚洲人成人一区二区在线观看 | 国产精品欧美久久久久无广告| 国产河南妇女毛片精品久久久 | 蜜桃在线一区二区三区| 日韩精品一区二区三区四区视频 | 91.com视频| 狠狠网亚洲精品| 亚洲欧美中日韩| 欧美色大人视频| 国产在线不卡一区| 一区二区三区产品免费精品久久75| 欧美精品99久久久**| 国产精品99久久久久久似苏梦涵 | 欧洲av在线精品| 麻豆视频观看网址久久| 国产精品国产馆在线真实露脸| 在线观看www91| 国产精品一区二区三区乱码| 亚洲女子a中天字幕| 日韩午夜中文字幕| 91麻豆高清视频| 久久精品国产一区二区三| 一区二区中文字幕在线| 欧美一级一区二区| 97久久精品人人澡人人爽| 男男视频亚洲欧美| 亚洲欧美激情视频在线观看一区二区三区 | 亚洲成人一区二区在线观看| 国产亚洲一区二区三区在线观看| 欧美这里有精品| 成人污视频在线观看| 日韩激情一区二区| 亚洲乱码一区二区三区在线观看| 日韩美女视频一区二区在线观看| 91久久线看在观草草青青| 国产精品99久久久久久久vr | 9i看片成人免费高清| 蜜臀av国产精品久久久久| 一区二区三区高清在线| 欧美国产欧美亚州国产日韩mv天天看完整| 欧美日精品一区视频| 成人黄色国产精品网站大全在线免费观看| 三级在线观看一区二区| 亚洲啪啪综合av一区二区三区| 久久久91精品国产一区二区三区| 91精品国产手机| 日本韩国一区二区三区| 成人黄色片在线观看| 国产成人在线视频网站| 国产在线精品一区二区不卡了| 日本伊人色综合网| 亚洲成人免费看| 亚洲午夜久久久久久久久电影院 | 亚洲精品视频一区二区| 国产精品久久久久影院老司| 国产亚洲精品超碰| 欧美mv日韩mv亚洲| 欧美一级精品大片| 91精品国产综合久久久蜜臀粉嫩 | zzijzzij亚洲日本少妇熟睡| 国产91丝袜在线播放0| 激情五月婷婷综合网| 极品少妇xxxx偷拍精品少妇| 美日韩黄色大片| 麻豆精品久久久| 麻豆成人综合网| 久久av中文字幕片| 国产中文一区二区三区| 国产精品一区二区果冻传媒| 国产精品综合在线视频| 国产成人免费视频网站| 成人免费观看av| 91免费在线播放| 欧美天堂一区二区三区| 欧美一区二区三区电影| 日韩一二三四区| 久久久久久久久久久久久女国产乱| 精品久久国产老人久久综合| 久久久国产综合精品女国产盗摄| 国产偷国产偷精品高清尤物 | 91在线国内视频| 91黄色免费看| 在线不卡欧美精品一区二区三区| 日韩精品专区在线| 26uuu久久天堂性欧美| 国产精品免费人成网站| 亚洲综合在线第一页| 日产国产欧美视频一区精品| 国产最新精品免费| 99久久综合国产精品| 欧美撒尿777hd撒尿| 精品奇米国产一区二区三区| 国产精品久线观看视频| 亚洲国产精品一区二区久久恐怖片 | 97国产一区二区| 欧美性高清videossexo| 日韩精品一区二区三区在线观看| 中文久久乱码一区二区| 亚洲va韩国va欧美va精品| 国产在线乱码一区二区三区| 91视频一区二区| 日韩一卡二卡三卡国产欧美| 中文字幕一区二区5566日韩| 天天综合网 天天综合色| 国产福利91精品| 欧美精品色综合| 国产精品国产精品国产专区不片 | 91精品国产综合久久久蜜臀粉嫩| 久久久久九九视频| 亚洲图片欧美视频| 国产高清久久久| 欧美日韩成人一区| 国产精品毛片无遮挡高清| 丝袜美腿亚洲综合| 99久久99久久精品国产片果冻| 欧美一区二区人人喊爽| 亚洲免费在线视频一区 二区| 九九国产精品视频| 欧美影院一区二区三区| 中文字幕免费不卡| 久久国内精品视频| 欧美日韩精品一区二区三区四区 | 亚洲欧洲美洲综合色网| 热久久久久久久| 91久久精品一区二区三| 中文字幕+乱码+中文字幕一区| 日本不卡1234视频| 欧日韩精品视频| 中文字幕一区二区三区在线不卡 | 国产精品亚洲视频| 欧美一区二区三区四区久久| 亚洲夂夂婷婷色拍ww47| 成人福利视频在线看| 久久午夜电影网| 免费在线观看一区| 欧美剧情片在线观看| 一区二区三区中文字幕电影| 成人精品电影在线观看| 久久久精品影视| 久久99精品久久久| 欧美一区二区三区喷汁尤物| 舔着乳尖日韩一区| 欧美日韩国产高清一区| 成人黄色国产精品网站大全在线免费观看 | 99久久综合国产精品| 久久你懂得1024| 日韩高清不卡一区二区三区| 欧美美女黄视频| 午夜电影网一区| 欧美嫩在线观看| 图片区小说区区亚洲影院| 欧美性猛片xxxx免费看久爱| 一区二区三区四区蜜桃| 91香蕉视频污在线| 日韩伦理av电影| 91视频com| 亚洲一级二级三级在线免费观看| 日本精品裸体写真集在线观看| 一区二区三区四区在线播放 | 国产99久久久精品| 国产日韩精品一区二区三区在线| 国产精品888| 国产精品久久久久一区二区三区共| 成人aaaa免费全部观看| 日韩理论片中文av| 欧洲av在线精品| 日本视频在线一区| 日韩欧美国产小视频| 国产伦精品一区二区三区免费 | 免费观看91视频大全| 欧美一级二级在线观看| 激情亚洲综合在线| 中文字幕不卡的av| 91老司机福利 在线| 亚洲国产成人av网| 精品奇米国产一区二区三区| 国产成人午夜99999| 亚洲欧美一区二区三区孕妇| 精品视频一区 二区 三区| 美女尤物国产一区| 国产精品天美传媒| 欧美视频一区在线| 国产乱子轮精品视频| 最新日韩av在线| 91精品国产色综合久久| 国产91高潮流白浆在线麻豆| 一区二区三区精品久久久|