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

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

?? fileplayer.cpp

?? sigmadesign smp8623 gui source code ,bingo
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
/***************************************** Copyright (c) 2001-2003 Sigma Designs, Inc. All Rights Reserved Proprietary and Confidential *****************************************/#ifndef ALLOW_OS_CODE#define ALLOW_OS_CODE 1#endif //ALLOW_OS_CODE#include "common.h"#include "fileplayer.h"#include "em86xx.h"#include "gui/gui.h"#include "rmasfdemux/include/wmdrmopl.h"#include "rmlibcw/include/rmlibcw.h"#ifdef WITH_MONO//#define USE_SAME_THREAD#define MONODBG ENABLEextern RMbool g_useKeyboard;extern typeCuracaoContext context;#include "rmdef/rmdef.h"#include "rmlibcw/include/rmfile.h"#include "rmvdemux/include/rmvdemuxapi.h"#define ERROR_CLEANUP(i)	do { error = (i); goto cleanup; }  while(0)#ifndef USE_SAME_THREADstatic RMthread g_thread = NULL;static RMthread g_subthread = NULL;#endifstatic struct playback_cmdline play_opt;static struct video_cmdline video_opt;static struct audio_cmdline audio_opt;static struct demux_cmdline demux_opt;// osd for mp4 subtitlesstruct osd_subtitles_context{	struct DCCVideoSource *pSPU_double_buffer_source;	struct OSDdoubleBuffer doubleBuffer;};static struct osd_subtitles_context osd_subt;// callback for the application to receive dcc contextvoid RMDCCInfo(struct dcc_context *dcc_info){	context.decoder->SetDCCInfo(dcc_info);	context.player->SetState(STATE_PLAY, 0);	context.player->SetSampleType();	// notify gui of initialization	context.gui->Notify(CURACAO_MESSAGE_DECODER_INITIALIZED, NULL);}// callback for the application to act upon receiving EOSvoid RMEOSCallback(){	// notify gui of EOS	printf("received EOS\n");	context.gui->Notify(CURACAO_MESSAGE_EOS, NULL);}// callback to pass stream information to the application, DRM protected, number of chapters, etcvoid RMFileStreamInfoCallback(struct RMFileStreamInfo *streamInfo){	RMDBGLOG((ENABLE, "got stream info!\n"));	context.player->SetStreamInfo(streamInfo);}// these functions need implementations (see mono/mono.c as a sample)RMstatus RMInitSPU(RMuint32 width, RMuint32 height){	struct DCCOSDProfile osdProfile;	RMstatus status = RM_OK;	osdProfile.ColorSpace = EMhwlibColorSpace_YUV_601;	osdProfile.SamplingMode = EMhwlibSamplingMode_444;	osdProfile.ColorMode = EMhwlibColorMode_TrueColor;	osdProfile.ColorFormat = EMhwlibColorFormat_32BPP; // unused	osdProfile.PixelAspectRatio.X = 1;	osdProfile.PixelAspectRatio.Y = 1;	osdProfile.Width = width; // should be the dimensions from the track, but they are wrong, so we hard code	osdProfile.Height = height;	RMDBGLOG((ENABLE, "RMinitSPU(%lu x %lu)\n", width, height));	// make sure we don't already have a buffer	if (osd_subt.pSPU_double_buffer_source) {		RMDBGLOG((ENABLE, "doubleBuffer already exists\n"));		status = RMCloseSPU();		if (status != RM_OK)			return status;	}	// Init SPU DoubleBuffer OSD	status = RMInitDoubleBufferOSD(NULL, osdProfile, &(osd_subt.doubleBuffer));	if (status != RM_OK) {		RMDBGLOG((ENABLE, "cant init doubleBufferOSD\n"));		// allow playing even if SPU cannot be shown		return RMCloseSPU();	}	return RM_OK;}RMstatus RMInitDoubleBufferOSD(RMuint32 *moduleID, struct DCCOSDProfile osdProfile, struct OSDdoubleBuffer *doubleBuffer){	enum EMhwlibMixerSourceState state;	RMuint32 mixer, scaler, src_index, mixer_src;	struct EMhwlibDisplayWindow window;	RMuint32 pic_luma_addr[2], pic_addr[2], pic_luma_size[2], surface_addr;	RMuint8 *buf_map;	RMuint32 buf_addr, buf_size;	RMstatus err;	struct RUA *pRUA = (RUA *) context.decoder->GetRUAInstance();	struct DCC *pDCC = (DCC *) context.decoder->GetDCCInstance();	RMDBGLOG((ENABLE, "init doubleBuffer OSD, size %lu x %lu\n", osdProfile.Width, osdProfile.Height));	mixer = EMHWLIB_MODULE(DispMainMixer, 0);	scaler = EMHWLIB_MODULE(DispGFXMultiScaler,0);	// set a NULL surface, this will force a full register update when next surface is set	err = DCCSetSurfaceSource(pDCC, scaler, NULL);	if (RMFAILED(err)) {		RMDBGLOG((ENABLE, "Cannot unset gfx scaler's surface\n"));		return err;	}	err = RUAExchangeProperty(pRUA, mixer, RMGenericPropertyID_MixerSourceIndex, &scaler, sizeof(scaler), &src_index, sizeof(src_index));	if (RMFAILED(err)) {		RMDBGLOG((ENABLE, "Cannot get scaler index\n"));		return err;	}	mixer_src = EMHWLIB_TARGET_MODULE((enum RMcategoryID)mixer, 0 , src_index);	state = EMhwlibMixerSourceState_Master;	window.X = 0;	window.Y = 0;	window.Width = 4096;	window.Height = 4096;	window.XPositionMode = EMhwlibDisplayWindowPositionMode_FrontEdgeToBorder;	window.YPositionMode = EMhwlibDisplayWindowPositionMode_FrontEdgeToBorder;	window.XMode = EMhwlibDisplayWindowValueMode_Relative;	window.YMode = EMhwlibDisplayWindowValueMode_Relative;	window.WidthMode = EMhwlibDisplayWindowValueMode_Relative;	window.HeightMode = EMhwlibDisplayWindowValueMode_Relative;	RUASetProperty(pRUA, mixer_src, RMGenericPropertyID_MixerSourceWindow, &window, sizeof(window), 0);	window.X = 0;	window.Y = 0;	window.Width = 4096;	window.Height = 4096;	window.XPositionMode = EMhwlibDisplayWindowPositionMode_FrontEdgeToBorder;	window.YPositionMode = EMhwlibDisplayWindowPositionMode_FrontEdgeToBorder;	window.XMode = EMhwlibDisplayWindowValueMode_Relative;	window.YMode = EMhwlibDisplayWindowValueMode_Relative;	window.WidthMode = EMhwlibDisplayWindowValueMode_Relative;	window.HeightMode = EMhwlibDisplayWindowValueMode_Relative;	RUASetProperty(pRUA, scaler, RMGenericPropertyID_ScalerInputWindow, &window, sizeof(window), 0);	while((err =  RUASetProperty(pRUA, mixer_src, RMGenericPropertyID_MixerSourceState, &state, sizeof(state), 0))==RM_PENDING);	if (RMFAILED(err)) {		RMDBGLOG((ENABLE, "Cannot set scaler's state on mixer\n"));		return err;	}	while ((err = RUASetProperty(pRUA, mixer, RMGenericPropertyID_Validate, NULL, 0, 0)) == RM_PENDING);	if (RMFAILED(err)) {		RMDBGLOG((ENABLE, "Cannot validate mixer\n"));		return err;	}	while ((err = RUASetProperty(pRUA, scaler, RMGenericPropertyID_Validate, NULL, 0, 0)) == RM_PENDING);	if (RMFAILED(err)) {		RMDBGLOG((ENABLE, "Cannot validate mixer\n"));		return err;	}	err = DCCOpenMultiplePictureOSDVideoSource(pDCC, &osdProfile, 2, &(osd_subt.pSPU_double_buffer_source));	if (RMFAILED(err)) {		RMDBGLOG((ENABLE, "Cannot open OSD decoder %d\n", err));		return err;	}	err = DCCGetOSDSurfaceInfo(pDCC, osd_subt.pSPU_double_buffer_source, NULL, &surface_addr, NULL);	if (RMFAILED(err)) {		RMDBGLOG((ENABLE, "Cannot get surface address %d\n", err));		return err;	}	err = DCCGetOSDPictureInfo(osd_subt.pSPU_double_buffer_source, 0, &(pic_addr[0]),  &(pic_luma_addr[0]), &(pic_luma_size[0]), NULL, NULL);	if (RMFAILED(err)) {		RMDBGLOG((ENABLE, "Cannot get osd buffer info %d\n", err));		return err;	}	err = DCCGetOSDPictureInfo(osd_subt.pSPU_double_buffer_source, 1, &(pic_addr[1]), &(pic_luma_addr[1]), &(pic_luma_size[1]), NULL, NULL);	if (RMFAILED(err)) {		RMDBGLOG((ENABLE, "Cannot get osd buffer info %d\n", err));		return err;	}	// first pic (for double buffering)	buf_size = pic_luma_size[0];	buf_addr = pic_luma_addr[0];	err = RUALock(pRUA, buf_addr, buf_size);	if (RMFAILED(err)) {		RMDBGLOG((ENABLE, "Error locking OSD buffer at 0x%08lX (0x%08lX bytes)\n", buf_addr, buf_size));		return err;	}	buf_map = RUAMap(pRUA, buf_addr, buf_size);	if (buf_map == NULL) {		RMDBGLOG((ENABLE, "Error mapping OSD buffer at 0x%08lX (0x%08lX bytes)\n", buf_addr, buf_size));		return RM_ERROR;	}	memset(buf_map, 0x80, buf_size);	doubleBuffer->buf0 = buf_map;	doubleBuffer->buf0Size = buf_size;	doubleBuffer->buf0Addr = buf_addr;	doubleBuffer->isBuf0inUse = FALSE;	doubleBuffer->buf0Cleared = FALSE;	doubleBuffer->width = osdProfile.Width;	doubleBuffer->height = osdProfile.Height;	RUAUnMap(pRUA, buf_map, buf_size);	err = RUAUnLock(pRUA, buf_addr, buf_size);	if (RMFAILED(err)) {		RMDBGLOG((ENABLE, "Error unlocking OSD buffer at 0x%08lX (0x%08lX bytes)\n", buf_addr, buf_size));		return err;	}	// second pic	buf_size = pic_luma_size[1];	buf_addr = pic_luma_addr[1];	err = RUALock(pRUA, buf_addr, buf_size);	if (RMFAILED(err)) {		RMDBGLOG((ENABLE, "Error locking OSD buffer at 0x%08lX (0x%08lX bytes)\n", buf_addr, buf_size));		return err;	}	buf_map = RUAMap(pRUA, buf_addr, buf_size);	if (buf_map == NULL) {		RMDBGLOG((ENABLE, "Error mapping OSD buffer at 0x%08lX (0x%08lX bytes)\n", buf_addr, buf_size));		return RM_ERROR;	}	memset(buf_map, 0x90, buf_size);	doubleBuffer->buf1 = buf_map;	doubleBuffer->buf1Size = buf_size;	doubleBuffer->buf1Addr = buf_addr;	doubleBuffer->isBuf1inUse = FALSE;	doubleBuffer->buf1Cleared = FALSE;	RUAUnMap(pRUA, buf_map, buf_size);	err = RUAUnLock(pRUA, buf_addr, buf_size);	if (RMFAILED(err)) {		RMDBGLOG((ENABLE, "Error unlocking OSD buffer at 0x%08lX (0x%08lX bytes)\n", buf_addr, buf_size));		return err;	}	RMDBGLOG((ENABLE, "bitmap size %lu, buf0 @0x%lx, buf1 @0x%lx\n", buf_size, doubleBuffer->buf0, doubleBuffer->buf1));	// possibly clean it before this with a fill	err = DCCSetSurfaceSource(pDCC, scaler, osd_subt.pSPU_double_buffer_source);	if (RMFAILED(err)) {		RMDBGLOG((ENABLE, "Cannot set the surface source %d\n", err));		return RM_ERROR;	}	err = DCCEnableVideoSource(osd_subt.pSPU_double_buffer_source, TRUE);	if (RMFAILED(err)){		RMDBGLOG((ENABLE,"Error enabling OSD buffer : %d\n",err));		return err;	}	while ((err = RUASetProperty(pRUA, scaler, RMGenericPropertyID_Validate, NULL, 0, 0)) == RM_PENDING);	if (RMFAILED(err)) {		RMDBGLOG((ENABLE, "Cannot validate scaler input window %d\n", err));		return err;	}	//err = DCCInsertPictureInMultiplePictureOSDVideoSource(osd_subt.pSPU_double_buffer_source, 0);	if (RMFAILED(err)) {		RMDBGLOG((ENABLE, "Cannot insert picture inside surface %d\n", err));		return err;	}	return RM_OK;}RMstatus RMCloseSPU(void){	if (osd_subt.pSPU_double_buffer_source) {		RMstatus status;		RMDBGLOG((ENABLE, "closing doubleBufferOSD\n"));		RMuint8 to_try = 0;		while((status = DCCCloseVideoSource(osd_subt.pSPU_double_buffer_source)) == RM_PENDING && ++to_try < 10 /*arbitrary*/) {			RMDBGLOG((ENABLE, "oh that sucks\n"));		}		if (RMFAILED(status)) {			RMDBGLOG((ENABLE, "Cannot close SPU doubleBuffer source %d\n", status));			return status;		}		osd_subt.pSPU_double_buffer_source = NULL;	}	return RM_OK;}RMstatus RMBlendSPU(RMuint8 *buffer){	RMstatus err;	RMuint8 *buf_map;	RMuint32 buf_size, buf_addr;	RMuint32 blendPic = 0;	struct RUA *pRUA = (RUA *) context.decoder->GetRUAInstance();	if (!osd_subt.pSPU_double_buffer_source) {		RMDBGLOG((ENABLE, "there's no double buffer for spu!\n"));		return RM_ERROR;	}	if (!osd_subt.doubleBuffer.isBuf0inUse) {		//blend buf0: copy *buffer into doublebufffer and activate it		RMDBGLOG((ENABLE, "blending buf0\n"));		buf_size = osd_subt.doubleBuffer.buf0Size;		buf_addr = osd_subt.doubleBuffer.buf0Addr;		osd_subt.doubleBuffer.isBuf0inUse = TRUE;		osd_subt.doubleBuffer.buf0Cleared = FALSE;		blendPic = 0;		osd_subt.doubleBuffer.isBuf1inUse = FALSE;	} else if (!osd_subt.doubleBuffer.isBuf1inUse) {		RMDBGLOG((ENABLE, "blending buf1\n"));		buf_size = osd_subt.doubleBuffer.buf1Size;		buf_addr = osd_subt.doubleBuffer.buf1Addr;		osd_subt.doubleBuffer.isBuf1inUse = TRUE;		osd_subt.doubleBuffer.buf1Cleared = FALSE;		blendPic = 1;		osd_subt.doubleBuffer.isBuf0inUse = FALSE;	}	else {		RMDBGLOG((ENABLE, "no buffer available for double buffer rendering\n"));		return RM_ERROR;	}	err = RUALock(pRUA, buf_addr, buf_size);	if (RMFAILED(err)) {		RMDBGLOG((ENABLE, "Error locking OSD buffer at 0x%08lX (0x%08lX bytes)\n", buf_addr, buf_size));		return err;	}	buf_map = RUAMap(pRUA, buf_addr, buf_size);	if (buf_map == NULL) {		RMDBGLOG((ENABLE, "Error mapping OSD buffer at 0x%08lX (0x%08lX bytes)\n", buf_addr, buf_size));		return RM_ERROR;	}	// reorder Y,V,U,A planes into UYVA,UYVA,... pixels	{		RMuint32 bitmap_size = osd_subt.doubleBuffer.width * osd_subt.doubleBuffer.height;		RMuint8 *buf_Y = buffer;		RMuint8 *buf_V = buf_Y + (bitmap_size);		RMuint8 *buf_U = buf_V + (bitmap_size);		RMuint8 *buf_A = buf_U + (bitmap_size);		RMuint32 i = 0;		while (i < (bitmap_size*4)) {			*(buf_map+i) = *buf_U++;    // bleu			*(buf_map+i+1) = *buf_Y++;			*(buf_map+i+2) = *buf_V++;  // rouge?			// alpha values are in the [0,16] range, convert them to [0,255]			if (*buf_A)				*(buf_map+i+3) = RMmin(*buf_A * 16, 255);			else				*(buf_map+i+3) = 0;			buf_A++;			i+=4;		}	}	RUAUnMap(pRUA, buf_map, buf_size);	err = RUAUnLock(pRUA, buf_addr, buf_size);	if (RMFAILED(err)) {		RMDBGLOG((ENABLE, "Error unlocking OSD buffer at 0x%08lX (0x%08lX bytes)\n", buf_addr, buf_size));		return err;	}	err = DCCInsertPictureInMultiplePictureOSDVideoSource(osd_subt.pSPU_double_buffer_source, blendPic);	if (RMFAILED(err)) {		RMDBGLOG((ENABLE, "Cannot insert picture inside surface %d\n", err));		return err;	}	return RM_OK;}RMstatus RMClearSPU(){	RMstatus err;	RMuint8 *buf_map;	RMuint32 buf_size, buf_addr;	RMuint32 blendPic = 0;	struct RUA *pRUA = (RUA *) context.decoder->GetRUAInstance();	if (!osd_subt.pSPU_double_buffer_source)		return RM_ERROR;	if (osd_subt.doubleBuffer.buf0Cleared)		return RM_OK;	RMDBGLOG((ENABLE, "clearSPU\n"));	buf_size = osd_subt.doubleBuffer.buf0Size;	buf_addr = osd_subt.doubleBuffer.buf0Addr;	osd_subt.doubleBuffer.isBuf0inUse = FALSE;	osd_subt.doubleBuffer.buf0Cleared = TRUE;	blendPic = 0;	osd_subt.doubleBuffer.isBuf1inUse = FALSE;	err = RUALock(pRUA, buf_addr, buf_size);	if (RMFAILED(err)) {		RMDBGLOG((ENABLE, "Error locking OSD buffer at 0x%08lX (0x%08lX bytes)\n", buf_addr, buf_size));		return err;	}	buf_map = RUAMap(pRUA, buf_addr, buf_size);	if (buf_map == NULL) {		RMDBGLOG((ENABLE, "Error mapping OSD buffer at 0x%08lX (0x%08lX bytes)\n", buf_addr, buf_size));		return RM_ERROR;	}	// clear buffer	memset(buf_map, 0, buf_size);	RUAUnMap(pRUA, buf_map, buf_size);	err = RUAUnLock(pRUA, buf_addr, buf_size);	if (RMFAILED(err)) {		RMDBGLOG((ENABLE, "Error unlocking OSD buffer at 0x%08lX (0x%08lX bytes)\n", buf_addr, buf_size));		return err;	}	err = DCCInsertPictureInMultiplePictureOSDVideoSource(osd_subt.pSPU_double_buffer_source, blendPic);	if (RMFAILED(err)) {		RMDBGLOG((ENABLE, "Cannot insert picture inside surface %d\n", err));		return err;	}	return RM_OK;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国内精品国产成人国产三级粉色 | 五月天久久比比资源色| 免费人成精品欧美精品| 成人黄动漫网站免费app| 欧美日韩国产首页在线观看| 久久久精品tv| 麻豆视频一区二区| 欧美私人免费视频| 综合婷婷亚洲小说| 国产精品影视在线观看| 91精品久久久久久久91蜜桃| 亚洲人成电影网站色mp4| 久久99精品国产麻豆不卡| 欧美三区在线视频| 亚洲欧美日韩国产综合在线| 国产美女一区二区三区| 精品乱人伦一区二区三区| 亚洲成人免费看| 91福利国产成人精品照片| 国产精品丝袜一区| 国产盗摄精品一区二区三区在线| 日韩一二三区视频| 毛片基地黄久久久久久天堂| 欧美男生操女生| 亚洲高清不卡在线| 欧美精三区欧美精三区| 亚洲国产精品一区二区久久恐怖片| 一本大道久久a久久综合婷婷| 国产精品国模大尺度视频| 国产高清在线精品| 久久久99精品久久| 国产精品亚洲专一区二区三区| 欧美本精品男人aⅴ天堂| 久久精品国产精品亚洲红杏| 日韩一卡二卡三卡四卡| 精品一区二区三区在线播放 | 91蜜桃网址入口| 中文字幕成人网| www.欧美.com| 日韩伦理av电影| 色噜噜狠狠色综合中国| 亚洲国产一区二区视频| 欧美丰满嫩嫩电影| 久久99日本精品| 国产欧美一区二区精品忘忧草 | 日韩电影免费在线| 91精品一区二区三区久久久久久 | 精品女同一区二区| 国产综合色产在线精品| 亚洲国产精品成人久久综合一区| 成人av资源在线观看| 一区二区免费在线| 欧美一级在线视频| 国产老妇另类xxxxx| 亚洲日本一区二区三区| 欧美精品免费视频| 国产综合久久久久久久久久久久| 欧美国产视频在线| 欧美视频一区二区三区在线观看| 日本不卡免费在线视频| 亚洲国产精品国自产拍av| 在线一区二区三区做爰视频网站| 日韩avvvv在线播放| 国产日韩视频一区二区三区| 色婷婷激情久久| 麻豆精品精品国产自在97香蕉| 国产网红主播福利一区二区| 欧美优质美女网站| 久久福利资源站| 亚洲欧美乱综合| 精品国产区一区| 欧美无人高清视频在线观看| 韩国欧美国产1区| 亚洲综合自拍偷拍| 久久久综合精品| 欧美视频精品在线观看| 成人综合在线网站| 日韩二区三区在线观看| 亚洲女人的天堂| 久久久综合激的五月天| 欧美男男青年gay1069videost| 国产99精品国产| 男男视频亚洲欧美| 亚洲一区二区在线免费观看视频| 亚洲精品一区二区三区在线观看| 91国产福利在线| 国产成人综合在线观看| 蜜臀久久久99精品久久久久久| 国产精品电影一区二区| 亚洲精品在线免费播放| 欧美二区三区的天堂| 91亚洲精品久久久蜜桃网站| 狠狠网亚洲精品| 久久国产日韩欧美精品| 亚洲成人免费在线| 亚洲综合在线第一页| 国产日韩欧美亚洲| 欧美sm美女调教| 欧美一区在线视频| 欧美日韩亚洲综合在线 | 国产精品不卡在线| 久久久影院官网| 2014亚洲片线观看视频免费| 日韩三级视频中文字幕| 欧美剧情电影在线观看完整版免费励志电影 | 成人免费视频视频在线观看免费 | 精品国产91洋老外米糕| 欧美一卡2卡3卡4卡| 欧美精品v日韩精品v韩国精品v| 91蜜桃在线免费视频| 91丨porny丨蝌蚪视频| 成人av网站在线观看免费| 丁香六月久久综合狠狠色| 高清av一区二区| www.成人在线| 91在线观看地址| 91丝袜高跟美女视频| 色久综合一二码| 欧美亚洲动漫精品| 欧美乱妇一区二区三区不卡视频| 欧美日韩高清不卡| 日韩一区二区免费在线观看| 欧美不卡一区二区| 久久综合999| 国产精品青草久久| 伊人性伊人情综合网| 亚洲第一会所有码转帖| 免费在线看成人av| 狠狠色狠狠色综合日日91app| 国产精品一区二区三区乱码| 成人精品视频.| 欧美亚洲国产bt| 日韩精品最新网址| 中文字幕欧美日本乱码一线二线| 亚洲欧洲精品成人久久奇米网| 丁香六月综合激情| 日韩美女在线视频 | 欧美性猛交xxxxxxxx| 制服丝袜亚洲精品中文字幕| 日韩欧美成人激情| 国产欧美日韩一区二区三区在线观看| 国产精品久久夜| 亚洲一区二区精品久久av| 麻豆精品久久精品色综合| 粉嫩aⅴ一区二区三区四区五区| 91啪亚洲精品| 91精品国产欧美一区二区18| 久久精品水蜜桃av综合天堂| 精品国产乱码久久久久久久久| 久久在线观看免费| 亚洲精品国产一区二区三区四区在线| 亚洲成av人影院| 大尺度一区二区| 欧美日韩一区二区三区高清| 久久久久高清精品| 亚洲综合一区在线| 国产精品99久| 欧美日韩国产不卡| 18涩涩午夜精品.www| 麻豆国产精品777777在线| 91美女视频网站| 久久精品在线观看| 亚洲午夜电影网| 国产成人av电影在线播放| 欧美日韩国产一区| 国产精品女主播在线观看| 美女国产一区二区| 欧美无砖砖区免费| 中文字幕亚洲成人| 国产一区二区精品久久99| 在线电影一区二区三区| 国产精品久久久久久久第一福利| 免费观看在线色综合| 欧美在线视频日韩| 国产精品久久久久久久久动漫| 久久超碰97人人做人人爱| 欧美日韩国产精品自在自线| 亚洲欧洲国产日韩| 欧美日韩一级片在线观看| 国产亚洲女人久久久久毛片| 日韩和欧美一区二区三区| 不卡的电影网站| 国产欧美日韩综合精品一区二区| 六月丁香婷婷久久| 88在线观看91蜜桃国自产| 亚洲欧美激情在线| 成人app软件下载大全免费| 精品国产免费一区二区三区香蕉| 日韩国产在线一| 欧美日韩一区高清| 亚洲亚洲人成综合网络| 色狠狠桃花综合| 亚洲欧美另类小说| 91一区二区在线| 亚洲色图在线播放| 91浏览器打开| 亚洲欧美激情插| 91福利视频网站| 亚洲成人综合网站| 欧美日韩国产色站一区二区三区|