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

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

?? vopseenc.cpp

?? 此源碼是在VC平臺下,實現MPEG4編解碼的源碼
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
	m_statsVOP.dSNRY = m_rgdSNR [0];
	m_statsVOP.dSNRU = m_rgdSNR [1];
	m_statsVOP.dSNRV = m_rgdSNR [2];
	if (m_volmd.fAUsage == EIGHT_BIT)
		m_statsVOP.dSNRA = m_rgdSNR [3];
	m_statsVOP.print (TRUE);
	m_statsVOL += m_statsVOP;
#endif // __TRACE_AND_STATS_
	
	// rate control
	if (m_uiRateControl==RC_MPEG4) {
		assert (m_volmd.volType == BASE_LAYER);	//don't no know to do RC for scalability yet
#ifndef __TRACE_AND_STATS_
		cerr << "Compile flag __TRACE_AND_STATS_ required for stats for rate control." << endl;
		exit(1);
#endif // __TRACE_AND_STATS_
		if (m_vopmd.vopPredType == IVOP) { // !!!! check whether CRct has been expanded
			Double dMad = 
				(m_pvopcOrig->getPlane (Y_PLANE)->sumAbs (m_rctCurrVOPY)) / 
				(Double) (m_rctCurrVOPY.area ());
			m_statRC.reset (
				m_nFirstFrame, 
				m_nLastFrame, 
				m_volmd.iTemporalRate, 
				m_iBufferSize, 
				dMad, 
				m_statsVOL.nBitsTotal,
				m_volmd.dFrameHz
			);
		}
		else if (m_vopmd.vopPredType == PVOP)
			m_statRC.updateRCModel (m_statsVOP.total (), m_statsVOP.head ());
	}

	// store the direct mode data (by swaping pointers)
	if (m_vopmd.vopPredType != BVOP) {
		if(m_volmd.fAUsage != RECTANGLE && bPrevRefVopWasCoded)
			saveShapeMode();
		CMBMode* pmbmdTmp = m_rgmbmd;
		m_rgmbmd = m_rgmbmdRef;
		m_rgmbmdRef = pmbmdTmp;
		CMotionVector* pmvTmp = m_rgmv;
		m_rgmv = m_rgmvRef;
		m_rgmvRef = pmvTmp;
		//wchen: should not only for pvop
		//if (m_vopmd.vopPredType == PVOP) 
		m_rgmvBackward = m_rgmv + BVOP_MV_PER_REF_PER_MB * m_iSessNumMB;
		
#if 0 // Debugging .. use the same anchor VOPs as reference implementation
		static FILE *pfRefPicInputFile = NULL;
		if (pfRefPicInputFile == NULL) {
			pfRefPicInputFile = fopen("ref.yuv", "rb");
			assert(pfRefPicInputFile != NULL);
		}
		Int iLeadingPixels = m_t * m_rctPrevNoExpandY.area ();
		fseek (pfRefPicInputFile, iLeadingPixels + iLeadingPixels / 2, SEEK_SET);	//4:2:0
		static Int iYDataHeight = m_rctPrevNoExpandY.height ();
		static Int iUVDataHeight = m_rctPrevNoExpandY.height () / 2;
		static Int iYFrmWidth = m_pvopcRefQ1->whereY ().width;
		static Int iUvFrmWidth = m_pvopcRefQ1->whereUV ().width;
		static Int nSkipYPixel = iYFrmWidth * EXPANDY_REF_FRAME + EXPANDY_REF_FRAME;
		static Int nSkipUvPixel = iUvFrmWidth * EXPANDUV_REF_FRAME + EXPANDUV_REF_FRAME;
		PixelC* ppxlcY = (PixelC*) m_pvopcRefQ1->pixelsY () + nSkipYPixel;
		PixelC* ppxlcU = (PixelC*) m_pvopcRefQ1->pixelsU () + nSkipUvPixel;
		PixelC* ppxlcV = (PixelC*) m_pvopcRefQ1->pixelsV () + nSkipUvPixel;
		for (CoordI y = 0; y < iYDataHeight; y++) {
			Int size = (Int) fread (ppxlcY, sizeof (U8), m_rctPrevNoExpandY.width, pfRefPicInputFile);
			if (size == 0)
				fprintf (stderr, "Unexpected end of file\n");
			ppxlcY += iYFrmWidth;
		}
		for (y = 0; y < iUVDataHeight; y++) {
			Int size = (Int) fread (ppxlcU, sizeof (U8), m_rctPrevNoExpandY.width / 2, pfRefPicInputFile);
			if (size == 0)
				fprintf (stderr, "Unexpected end of file\n");
			ppxlcU += iUvFrmWidth;
		}

		for (y = 0; y < iUVDataHeight; y++) {
			Int size = (Int) fread (ppxlcV, sizeof (U8), m_rctPrevNoExpandY.width / 2, pfRefPicInputFile);
			if (size == 0)
				fprintf (stderr, "Unexpected end of file\n");
			ppxlcV += iUvFrmWidth;
		}
#endif
	}
	
	if (m_volmd.fAUsage != RECTANGLE) {
		if (m_vopmd.vopPredType != BVOP) {
			m_iNumMBRef = m_iNumMB;
			m_iNumMBXRef = m_iNumMBX;
			m_iNumMBYRef = m_iNumMBY;
			m_iOffsetForPadY = m_rctRefFrameY.offset (m_rctCurrVOPY.left, m_rctCurrVOPY.top);
			m_iOffsetForPadUV = m_rctRefFrameUV.offset (m_rctCurrVOPUV.left, m_rctCurrVOPUV.top);
			m_rctPrevNoExpandY = m_rctCurrVOPY;
			m_rctPrevNoExpandUV = m_rctCurrVOPUV;
			
			m_rctRefVOPY1 = m_rctCurrVOPY;
			m_rctRefVOPY1.expand (EXPANDY_REFVOP);
			m_rctRefVOPUV1 = m_rctCurrVOPUV;
			m_rctRefVOPUV1.expand (EXPANDUV_REFVOP);
			m_pvopcRefQ1->setBoundRct (m_rctRefVOPY1);
		}

// begin:  added by by Sharp (98/2/10)
		if ( bTemporalScalability && m_vopmd.vopPredType == BVOP ) {
			m_iBVOPOffsetForPadY = m_rctRefFrameY.offset (m_rctCurrVOPY.left, m_rctCurrVOPY.top);
			m_iBVOPOffsetForPadUV = m_rctRefFrameUV.offset (m_rctCurrVOPUV.left, m_rctCurrVOPUV.top);
			m_rctBVOPPrevNoExpandY = m_rctCurrVOPY;
			m_rctBVOPPrevNoExpandUV = m_rctCurrVOPUV;

			m_rctBVOPRefVOPY1 = m_rctCurrVOPY;
			m_rctBVOPRefVOPY1.expand (EXPANDY_REFVOP);
			m_rctBVOPRefVOPUV1 = m_rctCurrVOPUV;
			m_rctBVOPRefVOPUV1.expand (EXPANDUV_REFVOP);
		}
// end: added by Sharp (98/2/10)

		//this is ac/dc pred stuff; clean the memory
		Int nBlk = (m_volmd.fAUsage == EIGHT_BIT) ? 10 : 6;
		delete [] m_rgblkmCurrMB;
		for (Int iMB = 0; iMB < m_iNumMBX; iMB++)	{
			for (Int iBlk = 0; iBlk < nBlk; iBlk++)	{
				delete [] (m_rgpmbmAbove [iMB]->rgblkm) [iBlk];
				delete [] (m_rgpmbmCurr  [iMB]->rgblkm) [iBlk];
			}
			delete [] m_rgpmbmAbove [iMB]->rgblkm;
			delete m_rgpmbmAbove [iMB];
			delete [] m_rgpmbmCurr [iMB]->rgblkm;
			delete m_rgpmbmCurr [iMB];
		}
		delete [] m_rgpmbmAbove;
		delete [] m_rgpmbmCurr;
	}

// begin: added by Sharp (98/2/10)
	if ( bTemporalScalability && m_volmd.fAUsage == RECTANGLE ) {
		m_iBVOPOffsetForPadY = m_iOffsetForPadY;
		m_iBVOPOffsetForPadUV = m_iOffsetForPadUV;
		m_rctBVOPPrevNoExpandY = m_rctPrevNoExpandY;
		m_rctBVOPPrevNoExpandUV = m_rctPrevNoExpandUV;

		m_rctBVOPRefVOPY1 = m_rctRefVOPY1;
		m_rctBVOPRefVOPUV1 = m_rctRefVOPUV1;
	}
// end: added by Sharp (98/2/10)
	
	// __LOW_LATENCY_SPRITE_
	if (m_uiSprite == 1 && m_sptMode != BASIC_SPRITE && m_vopmd.SpriteXmitMode != STOP)
		return;

    if (m_vopmd.vopPredType != BVOP || m_volmd.volType == ENHN_LAYER)	{
		repeatPadYOrA ((PixelC*) m_pvopcRefQ1->pixelsY () + m_iOffsetForPadY, m_pvopcRefQ1);
		repeatPadUV (m_pvopcRefQ1);
		if (m_volmd.fAUsage != RECTANGLE)       {
			if (m_volmd.fAUsage == EIGHT_BIT)
				repeatPadYOrA ((PixelC*) m_pvopcRefQ1->pixelsA () + m_iOffsetForPadY, m_pvopcRefQ1);
		}
	}

	if( m_volmd.volType == ENHN_LAYER && 
		m_vopmd.vopPredType == BVOP &&
		m_vopmd.iRefSelectCode == 0){
		repeatPadYOrA ((PixelC*) m_pvopcCurrQ->pixelsY () + m_iOffsetForPadY, m_pvopcCurrQ);
		repeatPadUV (m_pvopcCurrQ);
	}

	if (m_volmd.bOriginalForME) {
		if (m_vopmd.vopPredType == IVOP || m_vopmd.vopPredType == PVOP || 
		    (m_volmd.volType == ENHN_LAYER && m_vopmd.vopPredType == BVOP && m_vopmd.iRefSelectCode == 0))
			updateAllOrigRefVOPs (); // update all original reference (MotionEsti) VOP's
	}
}

Void CVideoObjectEncoder::codeVOHead ()
{
	m_pbitstrmOut -> putBits (START_CODE_PREFIX, NUMBITS_START_CODE_PREFIX, "VO_Start_Code");
	m_pbitstrmOut -> putBits (VO_START_CODE, NUMBITS_VO_START_CODE, "VO_Start_Code");		//plus 3 bits
	m_pbitstrmOut -> putBits (m_uiVOId, NUMBITS_VO_ID, "VO_Id");
	UInt uiNumBits = NUMBITS_START_CODE_PREFIX + NUMBITS_VO_START_CODE + NUMBITS_VO_ID;;
	m_statsVOL.nBitsHead += uiNumBits;
	cout << "VO Overhead" << "\t\t" << uiNumBits << "\n\n";
	cout.flush ();
}

Void CVideoObjectEncoder::codeVOLHead (Int iSessionWidth, Int iSessionHeight)
{
	m_pbitstrmOut -> putBits (START_CODE_PREFIX, NUMBITS_START_CODE_PREFIX, "VOL_Start_Code");
	m_pbitstrmOut -> putBits (VOL_START_CODE, NUMBITS_VOL_START_CODE, "VOL_Start_Code");		//plus 4 bits
	m_pbitstrmOut -> putBits ((Int) (m_volmd.volType == ENHN_LAYER), NUMBITS_VOL_ID, "VOL_Id"); // by katata
	m_statsVOL.nBitsHead+=NUMBITS_START_CODE_PREFIX+NUMBITS_VOL_START_CODE+NUMBITS_VOL_ID;

// Begin: modified by Hughes	  4/9/98	  per clause 2.1.7. in N2171 document
	m_pbitstrmOut -> putBits ((Int) 0, 1, "VOL_Random_Access");		//isn't this a system level flg?
	m_statsVOL.nBitsHead++;
// End: modified by Hughes	  4/9/98

	m_pbitstrmOut -> putBits ((Int) 4, 8, "VOL_Type_Indicator"); // Set to indicate MAIN profile.
	m_statsVOL.nBitsHead+=8;
	m_pbitstrmOut -> putBits ((Int) 0, 1, "VOL_Is_Object_Layer_Identifier"); //useless flag for now
	m_statsVOL.nBitsHead++;
	m_pbitstrmOut -> putBits ((Int) 1, 4, "aspect_ratio_info"); // square pix
	m_statsVOL.nBitsHead+=4;
	
	m_pbitstrmOut -> putBits (m_volmd.uiVolControlParameters, 1, "VOL_Control_Parameters"); //useless flag for now
	m_statsVOL.nBitsHead++;
	
	if(m_volmd.uiVolControlParameters)
	{
		m_pbitstrmOut -> putBits (m_volmd.uiChromaFormat, 2, "Chroma_Format");
		m_pbitstrmOut -> putBits (m_volmd.uiLowDelay, 1, "Low_Delay");
		m_pbitstrmOut -> putBits (m_volmd.uiVBVParams, 1, "VBV_Params");
		m_statsVOL.nBitsHead += 2 + 1 + 1;

		if(m_volmd.uiVBVParams)
		{
			UInt uiFirstHalfBitRate = (m_volmd.uiBitRate >> 15);
			UInt uiLatterHalfBitRate = (m_volmd.uiBitRate & 0x7fff);
			m_pbitstrmOut -> putBits (uiFirstHalfBitRate, 15, "FirstHalf_BitRate");
			m_pbitstrmOut -> putBits (1, 1, "Marker");
			m_pbitstrmOut -> putBits (uiLatterHalfBitRate, 15, "LatterHalf_BitRate");
			m_pbitstrmOut -> putBits (1, 1, "Marker");

			UInt uiFirstHalfVbvBufferSize = (m_volmd.uiVbvBufferSize >> 3);
			UInt uiLatterHalfVbvBufferSize = (m_volmd.uiVbvBufferSize & 7);
			m_pbitstrmOut -> putBits (uiFirstHalfVbvBufferSize, 15, "FirstHalf_VbvBufferSize");
			m_pbitstrmOut -> putBits (1, 1, "Marker");
			m_pbitstrmOut -> putBits (uiLatterHalfVbvBufferSize, 3, "LatterHalf_VbvBufferSize");
			
			UInt uiFirstHalfVbvBufferOccupany = (m_volmd.uiVbvBufferOccupany >> 15);
			UInt uiLatterHalfVbvBufferOccupany = (m_volmd.uiVbvBufferOccupany & 0x7fff);
			m_pbitstrmOut -> putBits (uiFirstHalfVbvBufferOccupany, 11, "FirstHalf_VbvBufferOccupany");
			m_pbitstrmOut -> putBits (1, 1, "Marker");
			m_pbitstrmOut -> putBits (uiLatterHalfVbvBufferOccupany, 15, "LatterHalf_VbvBufferOccupany");
			m_pbitstrmOut -> putBits (1, 1, "Marker");

			m_statsVOL.nBitsHead += 15 + 15 + 15 + 3 + 11 + 15;
			m_statsVOL.nBitsStuffing += 5;
		}

	}

	if(m_volmd.bShapeOnly==TRUE)
	{
		m_pbitstrmOut -> putBits ((Int) 2, NUMBITS_VOL_SHAPE, "VOL_Shape_Type");
		m_pbitstrmOut -> putBits (1, 1, "Marker");
		m_pbitstrmOut -> putBits (m_volmd.iClockRate, NUMBITS_TIME_RESOLUTION, "VOL_Time_Increment_Resolution"); 
		m_pbitstrmOut -> putBits (1, 1, "Marker");
		m_pbitstrmOut -> putBits (0, 1, "VOL_Fixed_Vop_Rate");
		m_pbitstrmOut -> putBits (0, 1, "VOL_resync_marker_disable");
		m_statsVOL.nBitsHead += NUMBITS_VOL_SHAPE + NUMBITS_TIME_RESOLUTION + 2;
		m_statsVOL.nBitsStuffing +=2;
		cout << "VOL Overhead" << "\t\t" << m_statsVOL.nBitsHead << "\n\n";
		cout.flush ();
		return;
	}
	else
	{
		Int iAUsage = (Int)m_volmd.fAUsage;
		if(iAUsage==2) // CD: 0 = rect, 1 = binary, 2 = shape only, 3 = grey alpha
			iAUsage = 3;
		m_pbitstrmOut -> putBits (iAUsage, NUMBITS_VOL_SHAPE, "VOL_Shape_Type");
		m_pbitstrmOut -> putBits (1, 1, "Marker");
		m_pbitstrmOut -> putBits (m_volmd.iClockRate, NUMBITS_TIME_RESOLUTION, "VOL_Time_Increment_Resolution"); 
		m_pbitstrmOut -> putBits (1, 1, "Marker");
		m_pbitstrmOut -> putBits (0, 1, "VOL_Fixed_Vop_Rate");
		m_statsVOL.nBitsHead += NUMBITS_VOL_SHAPE + NUMBITS_TIME_RESOLUTION + 1;
		if (m_volmd.fAUsage == RECTANGLE) {
			m_pbitstrmOut -> putBits (MARKER_BIT, 1, "Marker_Bit");
			m_statsVOL.nBitsStuffing ++;
			m_pbitstrmOut -> putBits (iSessionWidth, NUMBITS_VOP_WIDTH, "VOL_Width"); 
			m_pbitstrmOut -> putBits (MARKER_BIT, 1, "Marker_Bit");
			m_statsVOL.nBitsStuffing ++;
			m_pbitstrmOut -> putBits (iSessionHeight, NUMBITS_VOP_HEIGHT, "VOL_Height"); 
			m_pbitstrmOut -> putBits (MARKER_BIT, 1, "Marker_Bit");
			m_statsVOL.nBitsStuffing ++;
			m_statsVOL.nBitsHead += NUMBITS_VOP_WIDTH + NUMBITS_VOP_HEIGHT;
		}
	}
	m_pbitstrmOut -> putBits (m_vopmd.bInterlace, (UInt) 1, "VOL_interlace");
	m_statsVOL.nBitsHead++;
	m_pbitstrmOut -> putBits (m_volmd.bAdvPredDisable, (UInt) 1, "VOL_OBMC_Disable");
	m_statsVOL.nBitsHead++;

	// code sprite info
	m_pbitstrmOut -> putBits (m_uiSprite, NUMBITS_SPRITE_USAGE, "VOL_Sprite_Usage");		
	m_statsVOL.nBitsHead += NUMBITS_SPRITE_USAGE;
	if (m_uiSprite == 1) {
		m_pbitstrmOut -> putBits (m_rctSpt.width, NUMBITS_SPRITE_HDIM, "SPRT_hdim");
		m_statsVOL.nBitsHead += NUMBITS_SPRITE_HDIM; 
		m_pbitstrmOut -> putBits (MARKER_BIT, 1, "Marker_Bit");
		m_statsVOL.nBitsStuffing ++;
		m_pbitstrmOut -> putBits (m_rctSpt.height (), NUMBITS_SPRITE_VDIM, "SPRT_vdim");
		m_statsVOL.nBitsHead += NUMBITS_SPRITE_VDIM;
		m_pbitstrmOut -> putBits (MARKER_BIT, 1, "Marker_Bit");
		m_statsVOL.nBitsStuffing ++;
		if (m_rctSpt.left >= 0) {
			m_pbitstrmOut -> putBits (m_rctSpt.left, NUMBITS_SPRITE_LEFT_EDGE, "SPRT_Left_Edge");
		} else {
			m_pbitstrmOut -> putBits (m_rctSpt.left & 0x00001FFFF, NUMBITS_SPRITE_LEFT_EDGE, "SPRT_Left_Edge");
		}
		m_statsVOL.nBitsHead += NUMBITS_SPRITE_LEFT_EDGE;
		m_pbitstrmOut -> putBits (MARKER_BIT, 1, "Marker_Bit");
		m_statsVOL.nBitsStuffing += 1;
		if (m_rctSpt.top >= 0) {
			m_pbitstrmOut -> putBits (m_rctSpt.top, NUMBITS_SPRITE_TOP_EDGE, "SPRT_Top_Edge");
		} else {
			m_pbitstrmOut -> putBits (m_rctSpt.top & 0x00001FFFF, NUMBITS_SPRITE_TOP_EDGE, "SPRT_Top_Edge");
		}
		m_statsVOL.nBitsHead += NUMBITS_SPRITE_TOP_EDGE; 
		m_pbitstrmOut -> putBits (MARKER_BIT, 1, "Marker_Bit");
		m_statsVOL.nBitsStuffing += 1;
		m_pbitstrmOut -> putBits (m_iNumOfPnts, NUMBITS_NUM_SPRITE_POINTS, "SPRT_Num_Pnt");
		m_statsVOL.nBitsHead += NUMBITS_NUM_SPRITE_POINTS;
		m_pbitstrmOut -> putBits (m_uiWarpingAccuracy, NUMBITS_WARPING_ACCURACY, "SPRT_Warping_Accuracy");
		m_statsVOL.nBitsHead += NUMBITS_WARPING_ACCURACY;
		Bool bLightChange = 0;
		m_pbitstrmOut -> putBits (bLightChange, 1, "SPRT_Brightness_Change");
		m_statsVOL.nBitsHead++;

// Begin: modified by Hughes	  4/9/98
		if (m_sptMode == BASIC_SPRITE)
			m_pbitstrmOut -> putBits (FALSE, 1, "Low_latency_sprite_enable");
		else
			m_pbitstrmOut -> putBits (TRUE, 1, "Low_latency_sprite_enable");
		m_statsVOL.nBitsHead++;
// End: modified by Hughes	  4/9/98
	}

	// NBIT
	m_pbitstrmOut -> putBits ((Int) m_volmd.bNot8Bit, 1, "VOL_NOT_8_BIT_VIDEO");
	m_statsVOL.nBitsHead++;
	if (m_volmd.bNot8Bit) {
		m_pbitstrmOut->putBits ((Int) m_volmd.uiQuantPrecision, 4, "QUANT_PRECISION");
		m_pbitstrmOut->putBits ((Int) m_volmd.nBits, 4, "BITS_PER_PIXEL");
		m_statsVOL.nBitsHead+=8;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲不卡一区二区三区| 久久伊99综合婷婷久久伊| 国产成人综合亚洲91猫咪| 日精品一区二区| 亚洲综合图片区| 一区二区三区蜜桃| 一区二区三区在线视频播放| 亚洲天堂免费在线观看视频| 中文字幕亚洲区| 亚洲精品高清在线| 一区二区三区精品| 天堂成人免费av电影一区| 午夜精品福利在线| 日韩1区2区日韩1区2区| 久久机这里只有精品| 经典一区二区三区| 成人影视亚洲图片在线| 成人av免费在线播放| 99精品久久99久久久久| 欧洲视频一区二区| 在线成人av影院| 精品国产第一区二区三区观看体验 | 欧美男同性恋视频网站| 欧美日韩一区二区不卡| 日韩视频一区二区| 国产午夜精品久久久久久免费视 | 96av麻豆蜜桃一区二区| 欧美人妇做爰xxxⅹ性高电影 | 国产精品乱人伦一区二区| 成人免费在线观看入口| 亚洲成av人片在线观看无码| 奇米色777欧美一区二区| 国产一区视频在线看| 91麻豆免费观看| 日韩欧美成人激情| 国产精品久久久久久久久图文区 | 国产精品国产三级国产aⅴ原创| 亚洲视频香蕉人妖| 麻豆精品视频在线| 欧美性生活影院| 精品91自产拍在线观看一区| 亚洲丝袜精品丝袜在线| 免费不卡在线观看| 99精品久久久久久| 2020日本不卡一区二区视频| 一区二区三区加勒比av| 国产成人综合视频| 欧美丰满少妇xxxxx高潮对白 | 日本福利一区二区| 久久久精品天堂| 午夜欧美一区二区三区在线播放 | 国产精品久久久久影视| 日本美女一区二区三区视频| 99久久综合色| 久久精品水蜜桃av综合天堂| 亚洲成人av在线电影| 99久久久精品| 精品99久久久久久| 视频在线在亚洲| 欧美亚洲综合色| 亚洲欧美怡红院| 国产91精品一区二区麻豆亚洲| 欧美一区二区三区四区高清| 亚洲一区免费视频| 一本久久a久久精品亚洲| 久久精品免费在线观看| 麻豆一区二区三| 精品国产乱码久久久久久1区2区 | 精品国精品自拍自在线| 五月婷婷久久丁香| 欧美色涩在线第一页| 亚洲免费在线视频| 91丨九色丨国产丨porny| 国产精品久久免费看| 成人丝袜高跟foot| 国产精品水嫩水嫩| 成人激情黄色小说| 国产精品三级电影| 99久久婷婷国产综合精品电影| 国产亚洲一本大道中文在线| 久久精品国产精品青草| 欧美tickling挠脚心丨vk| 免费欧美高清视频| 欧美大片拔萝卜| 久久电影网站中文字幕| 欧美电视剧在线观看完整版| 久久精品久久精品| 日本一区二区视频在线| 国产 欧美在线| 亚洲丝袜制服诱惑| 欧美三级日韩三级| 日本sm残虐另类| 2022国产精品视频| 99视频精品全部免费在线| 综合久久久久久| 欧美视频第二页| 奇米一区二区三区| 国产欧美一区视频| 色狠狠综合天天综合综合| 水野朝阳av一区二区三区| 欧美一区二区在线播放| 丁香六月综合激情| 亚洲一区二区三区四区五区黄 | 日韩avvvv在线播放| 久久久91精品国产一区二区精品| 成人开心网精品视频| 亚洲自拍都市欧美小说| 日韩欧美国产高清| 菠萝蜜视频在线观看一区| 一区二区不卡在线播放| 日韩欧美视频一区| 色综合久久中文综合久久97 | 国产综合一区二区| 亚洲国产精品ⅴa在线观看| 欧洲一区二区av| 国产精品66部| 亚洲高清中文字幕| 国产清纯在线一区二区www| 在线一区二区三区做爰视频网站| 国产在线精品一区二区三区不卡| 亚洲色图视频网站| 精品久久久久香蕉网| 久久精品免费看| 色婷婷激情综合| 日韩av一区二区三区四区| 国产乱对白刺激视频不卡| 久久综合久久99| 色偷偷88欧美精品久久久 | 欧美嫩在线观看| 国产精品18久久久久久vr| 国产精品久久久久久久久久免费看| 欧美日韩一区二区电影| 国产成人啪午夜精品网站男同| 亚洲精品视频在线| 国产欧美日韩在线视频| 制服丝袜激情欧洲亚洲| jlzzjlzz欧美大全| 激情综合色播五月| 国产精品久久久久精k8| 欧美成人aa大片| 欧美日韩综合在线| 91丝袜美腿高跟国产极品老师 | 久久影视一区二区| 色狠狠一区二区三区香蕉| 成人精品高清在线| 国产黄色精品视频| 亚洲国产精品99久久久久久久久| 日韩欧美一级在线播放| 欧美老女人第四色| 99re视频这里只有精品| 成人精品在线视频观看| 国产精品亚洲第一| 国产一区二区在线免费观看| 亚洲午夜国产一区99re久久| 国产精品久线在线观看| 欧美国产1区2区| 久久久久久日产精品| 91精品国产综合久久精品性色| 欧美亚洲国产一区二区三区va| 91麻豆蜜桃一区二区三区| 色婷婷一区二区| 欧美日韩中字一区| 欧美日韩国产区一| 欧美久久久影院| 51精品秘密在线观看| 日韩欧美一区二区在线视频| 欧美日韩亚洲丝袜制服| 欧美一区二区三区在线| 日韩欧美激情四射| 欧美激情综合五月色丁香| 国产精品久久福利| 亚洲精品国产a久久久久久| 一区二区三区日韩欧美精品 | 午夜视黄欧洲亚洲| 免费成人美女在线观看.| 精品在线播放午夜| 成人午夜又粗又硬又大| 色偷偷成人一区二区三区91| 欧美揉bbbbb揉bbbbb| 精品久久久久久久久久久久包黑料 | 久久精品二区亚洲w码| 国产老妇另类xxxxx| 99免费精品视频| 欧美色爱综合网| 日韩欧美一级精品久久| 国产欧美日韩在线| 一区二区三区国产精品| 国内精品久久久久影院薰衣草 | 国产精品国产三级国产三级人妇| 一区二区三区不卡视频在线观看 | 久久97超碰色| 不卡av免费在线观看| 欧美一区二区网站| 国产精品护士白丝一区av| 亚洲va天堂va国产va久| 精品一区二区国语对白| 一本大道久久a久久综合| 日韩欧美电影一二三| 国产精品网友自拍| 亚洲色欲色欲www|