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

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

?? fileplayer.cpp.svn-base

?? sigmadesign smp8623 gui source code ,bingo
?? SVN-BASE
?? 第 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一区二区三区免费野_久草精品视频
日韩和欧美的一区| 在线亚洲精品福利网址导航| 粉嫩嫩av羞羞动漫久久久| 色久优优欧美色久优优| 久久精品亚洲乱码伦伦中文 | 亚洲精品第1页| 国产麻豆视频一区二区| 5566中文字幕一区二区电影| 亚洲天天做日日做天天谢日日欢| 国产一区二区在线观看免费| 欧美日本韩国一区二区三区视频 | 盗摄精品av一区二区三区| 欧美乱熟臀69xxxxxx| 日韩久久一区二区| 成人午夜免费视频| 久久精品人人做人人爽人人| 麻豆91在线播放免费| 欧美高清视频在线高清观看mv色露露十八| 国产农村妇女精品| 国产美女一区二区三区| 精品盗摄一区二区三区| 蜜芽一区二区三区| 欧美精品18+| 日韩电影在线观看一区| 91精品国产综合久久精品麻豆| 亚洲免费电影在线| 在线一区二区视频| 亚洲免费看黄网站| 色呦呦一区二区三区| 亚洲蜜桃精久久久久久久| 偷窥少妇高潮呻吟av久久免费| 欧美在线观看视频一区二区| 又紧又大又爽精品一区二区| 日本乱人伦aⅴ精品| 一区二区三区四区中文字幕| 在线视频国内自拍亚洲视频| 亚洲国产精品久久不卡毛片| 欧美色男人天堂| 日韩高清一区在线| 欧美v国产在线一区二区三区| 美女视频黄频大全不卡视频在线播放| 717成人午夜免费福利电影| 琪琪一区二区三区| 国产肉丝袜一区二区| 成人福利在线看| 一区二区三区视频在线看| 欧美日韩一区精品| 极品少妇xxxx偷拍精品少妇| 久久久99精品久久| 99re成人精品视频| 日韩精品视频网| 久久婷婷国产综合精品青草| 成人小视频在线观看| 亚洲激情网站免费观看| 精品视频一区二区不卡| 蜜桃视频在线观看一区| 日本一区二区三级电影在线观看 | 亚洲视频图片小说| 欧美日韩和欧美的一区二区| 奇米色777欧美一区二区| 国产日韩av一区二区| 日本韩国精品一区二区在线观看| 图片区小说区国产精品视频| 国产色产综合色产在线视频| 色视频欧美一区二区三区| 日本不卡高清视频| 最新不卡av在线| 日韩一区二区免费在线观看| av电影天堂一区二区在线观看| 亚洲成人资源网| 国产午夜亚洲精品午夜鲁丝片 | 欧美一二区视频| 高清免费成人av| 一区二区三区在线播放| 久久欧美中文字幕| 欧美精品在线一区二区| 国产iv一区二区三区| 日韩二区在线观看| 一区二区在线免费观看| 久久精品视频在线看| 7799精品视频| 在线观看视频一区二区欧美日韩| 极品少妇xxxx精品少妇偷拍| 亚洲国产日韩一级| 国产精品国产三级国产普通话99| 日韩欧美精品三级| 欧美色精品天天在线观看视频| 国产高清视频一区| 黄色精品一二区| 天天操天天色综合| 亚洲制服丝袜在线| 中文字幕中文在线不卡住| 日韩精品专区在线影院重磅| 欧美日韩一区 二区 三区 久久精品| 成人免费高清视频在线观看| 精东粉嫩av免费一区二区三区| 午夜日韩在线电影| 洋洋成人永久网站入口| 国产精品乱码人人做人人爱 | 欧美精品色一区二区三区| 成人av免费网站| 国产精品18久久久久久久久久久久| 婷婷六月综合亚洲| 天天影视色香欲综合网老头| 亚洲第一激情av| 一区二区三区国产| 亚洲欧美另类综合偷拍| 自拍偷拍国产精品| 国产精品久久久久婷婷二区次| 久久午夜羞羞影院免费观看| 久久嫩草精品久久久久| 久久中文字幕电影| 久久综合久久99| 26uuu国产一区二区三区 | 欧美午夜精品电影| 欧美日韩一区二区三区在线看| 欧美亚洲国产一区在线观看网站| 91色乱码一区二区三区| 91性感美女视频| 日本精品一级二级| 精品视频免费看| 91精品国产综合久久婷婷香蕉 | 91成人在线精品| 欧美色图免费看| 91精品国产综合久久小美女| 欧美一区二区三区免费观看视频 | 亚洲欧美国产高清| 亚洲一区精品在线| 美日韩黄色大片| 国产精品综合久久| www.日韩在线| 欧美亚洲国产怡红院影院| 7777精品伊人久久久大香线蕉 | 国产精品99久久久久久宅男| 成人网在线免费视频| 91网站最新地址| 欧美男生操女生| 久久先锋影音av鲁色资源| 中文字幕日韩av资源站| 亚洲小说欧美激情另类| 久久99日本精品| 99久久免费国产| 欧美日本一道本在线视频| 久久综合五月天婷婷伊人| 中文字幕免费不卡| 五月天网站亚洲| 成人黄色免费短视频| 欧美日本国产视频| 中文字幕av在线一区二区三区| 亚洲国产精品久久艾草纯爱| 韩国女主播一区二区三区| 91蜜桃在线观看| 精品日韩99亚洲| 亚洲九九爱视频| 国产美女一区二区| 欧美日韩一级视频| 国产精品网站在线观看| 首页国产欧美日韩丝袜| 99久久精品一区| 欧美r级电影在线观看| 1000精品久久久久久久久| 青娱乐精品视频| 欧洲视频一区二区| 国产喂奶挤奶一区二区三区| 视频在线观看一区| 99亚偷拍自图区亚洲| 精品乱码亚洲一区二区不卡| 亚洲精品国产a| 成人av网站在线| 精品国产成人在线影院 | 国产精品九色蝌蚪自拍| 日本成人在线网站| 色先锋资源久久综合| 久久久久久久久久久久久女国产乱 | 精品国产一二三区| 午夜成人免费电影| 色天天综合色天天久久| 国产精品福利在线播放| 国产乱人伦偷精品视频不卡| 欧美一区二区免费视频| 亚洲一区二区三区激情| 91在线视频播放| 亚洲欧洲韩国日本视频| 国产69精品久久久久毛片 | 欧美三级视频在线观看| 亚洲欧洲日韩女同| 懂色av一区二区夜夜嗨| 久久久国产一区二区三区四区小说| 午夜成人免费电影| 欧美视频一二三区| 亚洲国产另类精品专区| 色8久久人人97超碰香蕉987| 综合久久综合久久| 91麻豆.com| 亚洲黄色免费网站| 欧美亚洲动漫另类| 亚洲香蕉伊在人在线观| 欧美在线视频你懂得| 亚洲国产美国国产综合一区二区| 欧美日韩精品一区视频|