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

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

?? movie_play.c

?? dm270 source code
?? C
?? 第 1 頁 / 共 3 頁
字號:
/*
    DM270 ARM Evaluation Software

    (c)Texas Instruments 2003
*/

#include <system/intc270.h>
#include <system/uart270.h>
#include <system/dspc270.h>

#include <user/armdsp.h>
#include <user/prev.h>
#include <user/ccdc.h>
#include <user/osd.h>
#include <user/intc.h>

#include <dsp/dspsource.h>

#include <appl/movie_main.h>
#include <appl/movie_play.h>

#include <util/mem_fs.h>
#include <util/file_name_gen.h>

#include <demo/mem_alloc.h>
#include <demo/menu.h>
#include <demo/ui.h>

#include <demo_gui/demo_gui.h>

#include <qtff/qt.h>
#include <qtff/qt_parse.h>

//MPEG4
MPEG4_PLAY_START_CMD		Mpeg4PlayStartCmd;
MPEG4_PLAY_CMD_REPLY		Mpeg4PlayStartCmdReply;

MPEG4_PLAY_DSP_REQ			Mpeg4PlayDspReq;
MPEG4_PLAY_DSP_REQ_REPLY	Mpeg4PlayDspReqReply;

//MJPEG
MJPEG_PLAY_START_CMD		MjpegPlayStartCmd;
MJPEG_PLAY_CMD_REPLY		MjpegPlayStartCmdReply;

MJPEG_PLAY_DSP_REQ			MjpegPlayDspReq;
MJPEG_PLAY_DSP_REQ_REPLY	MjpegPlayDspReqReply;


STATUS MOVIE_PLAY_init() {

	//MPEG4
	Mpeg4PlayStartCmd.RingBuffAddrHigh      = HIGH_WORD(MOVIE_BUFFER_OFFSET);   
	Mpeg4PlayStartCmd.RingBuffAddrLow       = LOW_WORD (MOVIE_BUFFER_OFFSET);   
	Mpeg4PlayStartCmd.RingBuffSizeHigh      = HIGH_WORD(MOVIE_BUFFER_SIZE);     
	Mpeg4PlayStartCmd.RingBuffSizeLow       = LOW_WORD (MOVIE_BUFFER_SIZE);     
	Mpeg4PlayStartCmd.VideoSizeHigh         = 0;
	Mpeg4PlayStartCmd.VideoSizeLow          = 0;
	Mpeg4PlayStartCmd.WorkAreaAddrHigh      = HIGH_WORD(WORK_AREA_OFFSET); 
	Mpeg4PlayStartCmd.WorkAreaAddrLow       = LOW_WORD (WORK_AREA_OFFSET); 
	Mpeg4PlayStartCmd.WorkAreaSizeHigh      = HIGH_WORD(352*288);
	Mpeg4PlayStartCmd.WorkAreaSizeLow       = LOW_WORD (352*288);
	Mpeg4PlayStartCmd.VideoAddrHigh         = HIGH_WORD(OSD_VIDEO_WIN0_OFFSET);
	Mpeg4PlayStartCmd.VideoAddrLow          = LOW_WORD (OSD_VIDEO_WIN0_OFFSET);
	Mpeg4PlayStartCmd.FrameWidth            = 352;
	Mpeg4PlayStartCmd.FrameHeight           = 288;
	Mpeg4PlayStartCmd.StartX                = 0;
	Mpeg4PlayStartCmd.StartY                = 0;
	Mpeg4PlayStartCmd.DeblockFilter         = 1;
	Mpeg4PlayStartCmd.Reserved              = 0;
	Mpeg4PlayStartCmd.AudioRingBuffAddrHigh = HIGH_WORD(AUDIO_BUFFER_OFFSET);   
	Mpeg4PlayStartCmd.AudioRingBuffAddrLow  = LOW_WORD (AUDIO_BUFFER_OFFSET);  
	Mpeg4PlayStartCmd.AudioRingBuffSizeHigh = HIGH_WORD(AUDIO_BUFFER_SIZE);    
	Mpeg4PlayStartCmd.AudioRingBuffSizeLow  = LOW_WORD (AUDIO_BUFFER_SIZE);    
	Mpeg4PlayStartCmd.AudioSizeHigh         = 0;
	Mpeg4PlayStartCmd.AudioSizeLow          = 0;
	Mpeg4PlayStartCmd.AudioBitRate          = MPEG_G726_32KBPS; 
	Mpeg4PlayStartCmd.AudioFormat           = MOVIE_AUDIO_FORMAT_G711; 

	Mpeg4PlayDspReqReply.VideoAddrHigh  = 0;
	Mpeg4PlayDspReqReply.VideoAddrLow   = 0;
	Mpeg4PlayDspReqReply.StartX			= 0;
	Mpeg4PlayDspReqReply.StartY			= 0;
	Mpeg4PlayDspReqReply.DecodeMode     = MPEG4_PLAY_NORMAL;
	Mpeg4PlayDspReqReply.SkipSec        = 0;

	//MJPEG
	MjpegPlayStartCmd.RingBuffAddrHigh      = HIGH_WORD(MOVIE_BUFFER_OFFSET);   
	MjpegPlayStartCmd.RingBuffAddrLow       = LOW_WORD (MOVIE_BUFFER_OFFSET);   
	MjpegPlayStartCmd.RingBuffSizeHigh      = HIGH_WORD(MOVIE_BUFFER_SIZE);     
	MjpegPlayStartCmd.RingBuffSizeLow       = LOW_WORD (MOVIE_BUFFER_SIZE);     
	MjpegPlayStartCmd.VideoSizeHigh         = 0;
	MjpegPlayStartCmd.VideoSizeLow          = 0;
	MjpegPlayStartCmd.VideoAddrHigh         = HIGH_WORD(OSD_VIDEO_WIN0_OFFSET);
	MjpegPlayStartCmd.VideoAddrLow          = LOW_WORD (OSD_VIDEO_WIN0_OFFSET);
	MjpegPlayStartCmd.FrameWidth            = 720;
	MjpegPlayStartCmd.FrameHeight           = 480;
	MjpegPlayStartCmd.StartX                = 0;
	MjpegPlayStartCmd.StartY                = 0;
	MjpegPlayStartCmd.Reserved              = 0;
	MjpegPlayStartCmd.AudioRingBuffAddrHigh = HIGH_WORD(AUDIO_BUFFER_OFFSET);   
	MjpegPlayStartCmd.AudioRingBuffAddrLow  = LOW_WORD (AUDIO_BUFFER_OFFSET);  
	MjpegPlayStartCmd.AudioRingBuffSizeHigh = HIGH_WORD(AUDIO_BUFFER_SIZE);    
	MjpegPlayStartCmd.AudioRingBuffSizeLow  = LOW_WORD (AUDIO_BUFFER_SIZE);    
	MjpegPlayStartCmd.AudioSizeHigh         = 0;
	MjpegPlayStartCmd.AudioSizeLow          = 0;
	MjpegPlayStartCmd.AudioBitRate          = MJPEG_G711_64KBPS; 
	MjpegPlayStartCmd.FrameRate             = MJPEG_FRAME_RATE; 

	MjpegPlayDspReqReply.VideoAddrHigh  = 0;
	MjpegPlayDspReqReply.VideoAddrLow   = 0;
	MjpegPlayDspReqReply.StartX			= 0;
	MjpegPlayDspReqReply.StartY			= 0;
	MjpegPlayDspReqReply.DecodeMode     = MJPEG_PLAY_NORMAL;
	MjpegPlayDspReqReply.SkipSec        = 0;

	MovieCtrl.FrameRate=MJPEG_FRAME_RATE; 

	return E_PASS;
}

void MOVIE_PLAY_run(MOVIE_MODE mode) {
	BOOL stopped;
	char ch;

	switch(mode) {
		case MOVIE_MPEG4_MODE:
			UART_sendString( UART0, mpeg4_playback_in_progress_menu);
			break;
		case MOVIE_MJPEG_MODE:
			UART_sendString( UART0, mjpeg_playback_in_progress_menu);
			break;			
		default:
			return;
	}

	if( MOVIE_PLAY_START_run(mode, FALSE) != E_PASS ) {
		MOVIE_PLAY_STOP_run(mode, FALSE);
		return;
	}

	stopped=FALSE;
	while(!stopped) {
		ch = UI_checkInput();

		switch(ch) {
			case '1':
				MOVIE_PLAY_PAUSE_run(mode);
				break;
			case '2':
				UART_sendString( UART0, "\r\n\n Stopping playback. Please wait ...");
				if(MovieCtrl.MoviePaused) // if movie is paused, resume it and then stop it
					MOVIE_PLAY_PAUSE_run(mode);
				MovieCtrl.MovieStopped = TRUE;
				break;
			case '3':
				MOVIE_PLAY_FULLSCREEN_run(mode);
				break;
			default :
				GUI_controlPanelSeekBarUpdate(MovieCtrl.VideoSize);
				//GUI_controlPanelTimerUpdate(MovieCtrl.FrameCount/MovieCtrl.FrameRate);

				stopped = MovieCtrl.DspStopped;
				MOVIE_PLAY_IN_PROGRESS_run(mode);
				if(stopped)
					MOVIE_PLAY_STOP_run(mode, FALSE);
				break;
		}
	}
}



STATUS MOVIE_PLAY_START_run(MOVIE_MODE mode, BOOL thumbnail) {
	STATUS status;
	Uint16 cmd;

	// stop OSD, PREV, CCDC
	OSD_winEnable( OSD_VID_WIN0, FALSE);
	CCDC_enable(FALSE, FALSE);
	PREV_enable(FALSE);
	
	while(PREV_isEnabled())
		;
	

	INTC_clearIRQ(INT_DSP);
	INTC_enable( INT_DSP, FALSE);

	// download DSP code
	switch(mode) {
		case MOVIE_MPEG4_MODE:
			status = DSPLoadCode(mpeg4_decode);
			break;
		case MOVIE_MJPEG_MODE:
			status = DSPLoadCode(mjpeg_decode);
			break;			
		default:
			return E_INVALID_INPUT;
	}

	if(status!=E_PASS) {
		UART_sendString( UART0, "\r\n ERROR : DSPLoadCode(). ");
		return status;
	}

	MOVIE_AIC23_init(FALSE);

	// wait for DSP to be ready
	do {
		ARMDSP_getArmCmd(&cmd, NULL, 0);
	} while( cmd != 0x777 ) ;

	// init MovieCtrl data structure
	status = MOVIE_PLAY_initMovieCtrl(mode);
	if(status != E_PASS ) 
		return status;

	// init PREV, CCDC, OSD
	MOVIE_PLAY_initOSD(mode);

	// fill input buffers with video data

	MOVIE_PLAY_readBuff(FALSE);
	MOVIE_PLAY_readBuff(FALSE);

	// no need to read audio in thumbnail decode mode
	if(thumbnail==FALSE) {
		MOVIE_PLAY_readBuff(TRUE);
		MOVIE_PLAY_readBuff(TRUE);
	}


	switch(mode) {
		case MOVIE_MPEG4_MODE:
			
			Mpeg4PlayStartCmd.VideoSizeHigh = HIGH_WORD(MovieCtrl.VideoSize);
			Mpeg4PlayStartCmd.VideoSizeLow  = LOW_WORD (MovieCtrl.VideoSize);
			Mpeg4PlayStartCmd.AudioSizeHigh = HIGH_WORD(MovieCtrl.AudioSize);
			Mpeg4PlayStartCmd.AudioSizeLow  = LOW_WORD (MovieCtrl.AudioSize);
			Mpeg4PlayStartCmd.AudioFormat	= MovieCtrl.AudioFormat;
			
			MovieCtrl.VideoSize = 0;
			MovieCtrl.AudioSize = 0;

			INTC_clearIRQ(INT_DSP);
			if(thumbnail==TRUE) {
				ARMDSP_sendDspCmd( MPEG4_PLAY_THUMBNAIL, (Uint16*)&Mpeg4PlayStartCmd, sizeof(Mpeg4PlayStartCmd)/2);
			} else {
				ARMDSP_sendDspCmd( MPEG4_PLAY_START, (Uint16*)&Mpeg4PlayStartCmd, sizeof(Mpeg4PlayStartCmd)/2);
			}

			break;
		case MOVIE_MJPEG_MODE:
			
			MjpegPlayStartCmd.VideoSizeHigh = HIGH_WORD(MovieCtrl.VideoSize);
			MjpegPlayStartCmd.VideoSizeLow  = LOW_WORD (MovieCtrl.VideoSize);
			MjpegPlayStartCmd.AudioSizeHigh = HIGH_WORD(MovieCtrl.AudioSize);
			MjpegPlayStartCmd.AudioSizeLow  = LOW_WORD (MovieCtrl.AudioSize);
			MjpegPlayStartCmd.FrameRate     = MovieCtrl.FrameRate;

			MovieCtrl.VideoSize = 0;
			MovieCtrl.AudioSize = 0;

			INTC_clearIRQ(INT_DSP);
			if(thumbnail==TRUE) {
				ARMDSP_sendDspCmd( MJPEG_PLAY_THUMBNAIL, (Uint16*)&MjpegPlayStartCmd, sizeof(MjpegPlayStartCmd)/2);
			} else {
				ARMDSP_sendDspCmd( MJPEG_PLAY_START, (Uint16*)&MjpegPlayStartCmd, sizeof(MjpegPlayStartCmd)/2);
			}

			break;			
		default:
			return E_INVALID_INPUT;
	}

	INTC_waitForInt( INT_DSP, 0);

	switch(mode) {
		case MOVIE_MPEG4_MODE:
	ARMDSP_getDspReply( &cmd, (Uint16*)&Mpeg4PlayStartCmdReply, sizeof(Mpeg4PlayStartCmdReply)/2 );

	OSD_setWinStartPosition( OSD_VID_WIN0, (720-Mpeg4PlayStartCmdReply.FrameWidth)/2, (240-Mpeg4PlayStartCmdReply.FrameHeight/2)/2);
	OSD_setWinSize( OSD_VID_WIN0, Mpeg4PlayStartCmdReply.FrameWidth, Mpeg4PlayStartCmdReply.FrameHeight/2);

	// check reply
	if(thumbnail) {
		if( (cmd & DSP_CMD_MASK) != MPEG4_PLAY_THUMBNAIL) {
			UART_sendString( UART0, "\r\n ERROR : MPEG4 thumbnail decode DSP command, failed.");
			return E_DEVICE;
		}
	} else {
		if( (cmd & DSP_CMD_MASK) != MPEG4_PLAY_START) {
			UART_sendString( UART0, "\r\n ERROR : MPEG4 playback start DSP command, failed.");
			return E_DEVICE;
		}
	}

	if( (cmd & DSP_CMD_COMPLETE) != DSP_CMD_COMPLETE) {
		UART_sendString( UART0, "\r\n ERROR : MPEG4 playback DSP command, failed.");
		return E_DEVICE;
	}

	if( (cmd & DSP_CMD_INVALID_CMD ) || (cmd & DSP_CMD_INVALID_PARAM ) ) {
		UART_sendString( UART0, "\r\n ERROR : MPEG4 playback DSP command, invalid DSP command/paramters.");
		return E_DEVICE;
	}

			break;
		case MOVIE_MJPEG_MODE:
			ARMDSP_getDspReply( &cmd, (Uint16*)&MjpegPlayStartCmdReply, sizeof(MjpegPlayStartCmdReply)/2 );
			OSD_setWinStartPosition( OSD_VID_WIN0, (720-MjpegPlayStartCmdReply.FrameWidth)/2, (240-MjpegPlayStartCmdReply.FrameHeight/2)/2);
			OSD_setWinSize( OSD_VID_WIN0, MjpegPlayStartCmdReply.FrameWidth, MjpegPlayStartCmdReply.FrameHeight/2);

			// check reply
			if(thumbnail) {
				if( (cmd & DSP_CMD_MASK) != MJPEG_PLAY_THUMBNAIL) {
					UART_sendString( UART0, "\r\n ERROR : MJPEG thumbnail decode DSP command, failed.");
					return E_DEVICE;
				}
			} else {
				if( (cmd & DSP_CMD_MASK) != MJPEG_PLAY_START) {
					UART_sendString( UART0, "\r\n ERROR : MJPEG playback start DSP command, failed.");
					return E_DEVICE;
				}
			}

			if( (cmd & DSP_CMD_COMPLETE) != DSP_CMD_COMPLETE) {
				UART_sendString( UART0, "\r\n ERROR : MJPEG playback DSP command, failed.");
				return E_DEVICE;
			}

			if( (cmd & DSP_CMD_INVALID_CMD ) || (cmd & DSP_CMD_INVALID_PARAM ) ) {
				UART_sendString( UART0, "\r\n ERROR : MJPEG playback DSP command, invalid DSP command/paramters.");
				return E_DEVICE;
			}
			break;
		default:
			return E_INVALID_INPUT;
		}
		
	if(thumbnail) {
		switch(mode)
		{
		 case MOVIE_MPEG4_MODE:
				INTC_waitForInt(INT_DSP, 0);
				ARMDSP_getArmCmd( &cmd, (Uint16*)&Mpeg4PlayDspReq, sizeof(Mpeg4PlayDspReq)/2);
				MovieCtrl.VideoSize = MAKE_WORD32(Mpeg4PlayDspReq.VideoSizeHigh, Mpeg4PlayDspReq.VideoSizeLow);
				MovieCtrl.AudioSize = MAKE_WORD32(Mpeg4PlayDspReq.AudioSizeHigh, Mpeg4PlayDspReq.AudioSizeLow);
				MovieCtrl.FrameCount= MAKE_WORD32(Mpeg4PlayDspReq.FrameCountHigh,Mpeg4PlayDspReq.FrameCountLow);
				OSD_winEnable( OSD_VID_WIN0, TRUE );
				MOVIE_PLAY_STOP_run(mode, TRUE);
		 		break;
		 case MOVIE_MJPEG_MODE:	
				INTC_waitForInt(INT_DSP, 0);
				ARMDSP_getArmCmd( &cmd, (Uint16*)&MjpegPlayDspReq, sizeof(MjpegPlayDspReq)/2);
				MovieCtrl.VideoSize = MAKE_WORD32(MjpegPlayDspReq.VideoSizeHigh, MjpegPlayDspReq.VideoSizeLow);
				MovieCtrl.AudioSize = MAKE_WORD32(MjpegPlayDspReq.AudioSizeHigh, MjpegPlayDspReq.AudioSizeLow);
				MovieCtrl.FrameCount= MAKE_WORD32(MjpegPlayDspReq.FrameCountHigh,MjpegPlayDspReq.FrameCountLow);
				OSD_winEnable( OSD_VID_WIN0, TRUE );
				MOVIE_PLAY_STOP_run(mode, TRUE);
				break;	
			default:
				return E_INVALID_INPUT;
		}		
	} else {
		// attach DSP HINT ISR
		switch(mode) {
			case MOVIE_MPEG4_MODE:          
				INTC_clearIRQ(INT_DSP);
				INTC_enable( INT_DSP, FALSE);
				INTCAttachISR( INT_DSP, MPEG4_PLAY_isr );
				INTC_enable( INT_DSP, TRUE);

				INTC_clearIRQ(INT_OSD);
				INTC_enable( INT_OSD, FALSE );
				INTCAttachISR( INT_OSD, MOVIE_PLAY_switchBuffer );
				INTC_enable( INT_OSD, TRUE );

				GUI_controlPanelButtonStateSet(&BUTTON_PLAY_START);
				break;
			case MOVIE_MJPEG_MODE:          
				INTC_clearIRQ(INT_DSP);
				INTC_enable( INT_DSP, FALSE);
				INTCAttachISR( INT_DSP, MJPEG_PLAY_isr );
				INTC_enable( INT_DSP, TRUE);

				INTC_clearIRQ(INT_OSD);
				INTC_enable( INT_OSD, FALSE );
				INTCAttachISR( INT_OSD, MOVIE_PLAY_switchBuffer );
				INTC_enable( INT_OSD, TRUE );

				GUI_controlPanelButtonStateSet(&BUTTON_PLAY_START);
				break;				
			default:
				return E_INVALID_INPUT;
		}
	}
	return E_PASS;
}

void MOVIE_PLAY_switchBuffer() {
	if( MovieCtrl.CurVideoWinBuffer != MovieCtrl.CurDspWinBuffer) {
		switch(MovieCtrl.CurVideoWinBuffer) {
			case 0:
				OSD_setWinAddr( OSD_VID_WIN0, (char*)MovieCtrl.VideoWinBuffer[0]);
				MovieCtrl.CurVideoWinBuffer=1;
				break;
			case 1:
				OSD_setWinAddr( OSD_VID_WIN0, (char*)MovieCtrl.VideoWinBuffer[1]);
				MovieCtrl.CurVideoWinBuffer=2;
				break;
			case 2:
				OSD_setWinAddr( OSD_VID_WIN0, (char*)MovieCtrl.VideoWinBuffer[2]);
				MovieCtrl.CurVideoWinBuffer=0;
				break;
		}
	}
	GUI_controlPanelTimerUpdate(MovieCtrl.FrameCount/MovieCtrl.FrameRate);
}

static Uint16 intType, cmd;

void MPEG4_PLAY_isr() {
	

	DSPC_readData((char*)&intType, 1, 0xFF);
	if(intType == 1) { // Request

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美午夜寂寞影院| 色诱亚洲精品久久久久久| 欧美国产乱子伦| 欧美午夜精品久久久久久超碰| 精品一区二区免费在线观看| 亚洲精品中文字幕在线观看| 欧美va亚洲va| 欧美日韩国产免费| 99久久777色| 国产精品资源网| 日韩福利电影在线观看| 亚洲欧洲日产国产综合网| 精品国产乱码久久久久久浪潮| 91久久一区二区| 国产成人av电影| 韩国在线一区二区| 免费高清在线视频一区·| 一区二区三区影院| 国产精品传媒视频| 国产亚洲欧美一区在线观看| 欧美一区午夜精品| 欧美视频在线观看一区| 99久久伊人精品| 成人av动漫在线| 国产精品一级黄| 国产资源在线一区| 青青青伊人色综合久久| 亚洲成人高清在线| 一区二区三区视频在线看| 中文字幕一区av| 国产精品伦理一区二区| 久久久久久久久蜜桃| www国产成人| 日韩精品一区二区在线| 欧美一级高清片在线观看| 欧美疯狂性受xxxxx喷水图片| 在线免费观看成人短视频| 日本道精品一区二区三区| 日本精品一区二区三区高清| 91激情在线视频| 色婷婷综合久久久久中文一区二区| 97se狠狠狠综合亚洲狠狠| 97久久人人超碰| 色综合久久久久综合| 99亚偷拍自图区亚洲| 91免费精品国自产拍在线不卡| 成人aaaa免费全部观看| 波多野结衣欧美| 91香蕉视频mp4| 在线视频国内一区二区| 欧美专区亚洲专区| 3d成人动漫网站| 日韩一区二区免费电影| 精品国产青草久久久久福利| 欧美精品一区在线观看| 国产精品久久久久久亚洲伦| 亚洲色图第一区| 亚洲不卡在线观看| 麻豆精品在线播放| 国产69精品久久99不卡| 91一区在线观看| 在线观看网站黄不卡| 欧美日韩成人一区| 欧美精品一区男女天堂| 国产精品欧美经典| 亚洲一区在线视频观看| 青青青伊人色综合久久| 国产精品乡下勾搭老头1| 91亚洲精品久久久蜜桃| 欧美日本一道本在线视频| 欧美一区二区三区影视| 国产无人区一区二区三区| 国产精品午夜免费| 亚洲国产欧美在线人成| 午夜精品久久久久久久99水蜜桃| 激情久久五月天| 97精品国产露脸对白| 5566中文字幕一区二区电影| 久久综合精品国产一区二区三区 | 成人免费高清在线| 色成年激情久久综合| 欧美一级久久久久久久大片| 欧美国产日韩在线观看| 亚洲国产一区在线观看| 国产毛片精品国产一区二区三区| 91影视在线播放| 精品成a人在线观看| 亚洲色图制服诱惑 | 7777精品伊人久久久大香线蕉经典版下载 | 韩国欧美一区二区| 99re这里只有精品视频首页| 日韩美女视频在线| 亚洲精品国产一区二区精华液 | 秋霞午夜av一区二区三区| www.亚洲国产| 日韩欧美一区在线观看| 亚洲乱码中文字幕| 国产老肥熟一区二区三区| 欧美在线影院一区二区| 久久久精品国产免费观看同学| 夜夜精品视频一区二区 | 中文字幕日韩一区| 日本成人中文字幕| 91视频在线观看| 欧美国产亚洲另类动漫| 免费成人美女在线观看.| 欧美自拍丝袜亚洲| 亚洲欧洲精品天堂一级| 国产精品99久久久久久宅男| 欧美精品亚洲二区| 一区二区三区在线播放| 成人黄色大片在线观看| 久久久午夜精品| 视频一区二区国产| 91色在线porny| 国产精品伦一区二区三级视频| 精品一区精品二区高清| 欧美精品一级二级三级| 一区二区三区在线免费播放| 91亚洲大成网污www| 国产日本一区二区| 激情欧美一区二区| 日韩欧美一级精品久久| 日韩av午夜在线观看| 欧美日韩日日骚| 亚洲精品国产a| 色综合久久天天综合网| 中文字幕日韩av资源站| eeuss影院一区二区三区| 中文字幕va一区二区三区| 国产成人aaa| 日本一区二区成人在线| 福利一区二区在线观看| 欧美激情在线看| 高清在线不卡av| 欧美激情一区二区三区全黄| 国产成人在线观看免费网站| 国产丝袜欧美中文另类| 国产91在线看| 亚洲欧美中日韩| 91蝌蚪porny成人天涯| 亚洲免费在线电影| 色婷婷综合中文久久一本| 亚洲最大色网站| 欧美日韩高清一区二区| 美日韩一区二区三区| 欧美一区二区三区免费| 国内成人精品2018免费看| 久久亚洲精精品中文字幕早川悠里| 国产一区高清在线| 国产精品区一区二区三| 91网站在线观看视频| 亚洲精品成人悠悠色影视| 欧美在线观看一二区| 天堂成人免费av电影一区| 日韩欧美一级二级三级| 高清shemale亚洲人妖| 亚洲激情成人在线| 亚洲欧洲成人自拍| 在线观看日韩毛片| 婷婷中文字幕综合| 久久网站热最新地址| hitomi一区二区三区精品| 亚洲主播在线播放| 日韩一级黄色大片| 国产成人av自拍| 亚洲夂夂婷婷色拍ww47| 欧美精品日韩一本| 国产一区二区三区香蕉 | 毛片av一区二区| 国产区在线观看成人精品| 99精品桃花视频在线观看| 亚洲一本大道在线| 精品国产91久久久久久久妲己 | 免费人成黄页网站在线一区二区| 久久午夜国产精品| 91麻豆国产福利在线观看| 午夜精品福利久久久| 国产婷婷色一区二区三区| 一本大道av一区二区在线播放| 日本欧美久久久久免费播放网| 国产视频视频一区| 欧美日韩精品欧美日韩精品一综合| 蜜乳av一区二区| 亚洲人快播电影网| 日韩亚洲欧美在线观看| 99久久99久久综合| 老司机午夜精品99久久| 中文字幕日韩一区二区| 日韩精品中文字幕一区二区三区 | 91蝌蚪porny九色| 精品一区二区国语对白| 亚洲精品视频在线观看免费| 3d成人动漫网站| 日韩欧美亚洲一区二区| 日本不卡一二三| 久久这里只精品最新地址| 国产精品你懂的在线| 喷水一区二区三区| 成人动漫在线一区|