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

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

?? errdec.cpp

?? 完整的RTP RTSP代碼庫
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
	m_iVPMBnum = 0;	Bool bLeftBndry;	Bool bRightBndry;	Bool bTopBndry;	m_piMCBPC = new Int[m_iNumMBX*m_iNumMBY+1];	Int*	piMCBPC = m_piMCBPC;	m_piIntraDC = new Int[m_iNumMBX*m_iNumMBY*V_BLOCK];	Int*	piIntraDC = m_piIntraDC;	Int	i;	Int	mbn = 0, mbnFirst = 0;	CoordI x = 0;	CoordI y = 0;	PixelC* ppxlcCurrQMBY = NULL;	PixelC* ppxlcCurrQMBU = NULL;	PixelC* ppxlcCurrQMBV = NULL;	Bool bMBBackup = FALSE;	CMBMode* pmbmdBackup = NULL;	Int iMBXBackup  = 0, iMBYBackup = 0;	CMotionVector* pmvBackup = NULL;	PixelC* ppxlcCurrQMBYBackup = NULL;	PixelC* ppxlcCurrQMBUBackup = NULL;	PixelC* ppxlcCurrQMBVBackup = NULL;	Bool bRestartDelayedQP = TRUE;	Bool bRet;	const PixelC* RefbufY = m_pvopcRefQ0-> pixelsY ();	const PixelC* RefbufU = m_pvopcRefQ0-> pixelsU ();	const PixelC* RefbufV = m_pvopcRefQ0-> pixelsV ();	PixelC *RefpointY, *RefpointU, *RefpointV;	PixelC *pRefpointY, *pRefpointU, *pRefpointV;	if (m_volmd.bNewpredEnable) {		// temporarily store present reference picture		g_pNewPredDec->CopyReftoBuf(RefbufY, RefbufU, RefbufV, m_rctRefFrameY, m_rctRefFrameUV);		bRet = FALSE;		iMBX = mbn % m_iNumMBX;		iMBY = mbn / m_iNumMBX;		// copy picture from NEWPRED reference picture memory		RefpointY = (PixelC*) g_pNewPredDec->m_pchNewPredRefY +				(EXPANDY_REF_FRAME * m_rctRefFrameY.width);		RefpointU = (PixelC*) g_pNewPredDec->m_pchNewPredRefU +				((EXPANDY_REF_FRAME/2)*m_rctRefFrameUV.width);		RefpointV = (PixelC*) g_pNewPredDec->m_pchNewPredRefV +				((EXPANDY_REF_FRAME/2)*m_rctRefFrameUV.width);		bRet = g_pNewPredDec->CopyNPtoVM(iVideoPacketNumber, RefpointY, RefpointU, RefpointV);		// padding around VP		pRefpointY = (PixelC*) m_pvopcRefQ0->pixelsY () + m_iStartInRefToCurrRctY;		pRefpointU = (PixelC*) m_pvopcRefQ0->pixelsU () + m_iStartInRefToCurrRctUV;		pRefpointV = (PixelC*) m_pvopcRefQ0->pixelsV () + m_iStartInRefToCurrRctUV;// RRV modification		g_pNewPredDec->ChangeRefOfSlice((const PixelC* )pRefpointY, RefbufY,(const PixelC* )pRefpointU, RefbufU,			(const PixelC* )pRefpointV, RefbufV, (iMBX *m_iRRVScale), (iMBY *m_iRRVScale),m_rctRefFrameY, m_rctRefFrameUV);//		g_pNewPredDec->ChangeRefOfSlice((const PixelC* )pRefpointY, RefbufY,(const PixelC* )pRefpointU, RefbufU,//			(const PixelC* )pRefpointV, RefbufV, iMBX, iMBY,m_rctRefFrameY, m_rctRefFrameUV);// ~RRV		repeatPadYOrA ((PixelC*) m_pvopcRefQ0->pixelsY () + m_iOffsetForPadY, m_pvopcRefQ0);		repeatPadUV (m_pvopcRefQ0);		for (iMBY = 0; iMBY < m_iNumMBY; iMBY++) { // count slice number			for (iMBX = 0; iMBX < m_iNumMBX; iMBX++)	{// RRV modification				(pmbmd + iMBX + m_iNumMBX*iMBY) -> m_iNPSegmentNumber = g_pNewPredDec->GetSliceNum((iMBX *m_iRRVScale),(iMBY *m_iRRVScale));//				(pmbmd + iMBX + m_iNumMBX*iMBY) -> m_iNPSegmentNumber = g_pNewPredDec->GetSliceNum(iMBX,iMBY);// ~RRV			}		}	}// ~NEWPRED	do{		CMBMode* pmbmdFirst = pmbmd;		CMotionVector* pmvFirst = pmv;		Int* piMCBPCFirst = piMCBPC;		Int* piIntraDCFirst = piIntraDC;		mbnFirst = mbn;		if( checkResyncMarker() ){			decodeVideoPacketHeader(iCurrentQP);			iVideoPacketNumber++;			bRestartDelayedQP = TRUE;		}		do{			pmbmd->m_iVideoPacketNumber = iVideoPacketNumber;			iMBX = mbn % m_iNumMBX;			iMBY = mbn / m_iNumMBX;			Bool bStuffing = decodeMBTextureModeOfPVOP_DataPartitioning(pmbmd, piMCBPC);			if(bStuffing)			{				if ( checkMotionMarker() )					break;				continue;			}			if(iMBX == 0) {				bLeftBndry = TRUE;			} else {				bLeftBndry = !((pmbmd - 1) -> m_iVideoPacketNumber == pmbmd -> m_iVideoPacketNumber);			}			if(iMBY == 0) {				bTopBndry = TRUE;			} else {				bTopBndry = !((pmbmd - m_iNumMBX) -> m_iVideoPacketNumber == pmbmd -> m_iVideoPacketNumber);			}			if((iMBX == m_iNumMBX - 1) || (iMBY == 0)) {				bRightBndry = TRUE;			} else {				bRightBndry = !((pmbmd - m_iNumMBX + 1) -> m_iVideoPacketNumber == pmbmd -> m_iVideoPacketNumber);			}// GMC			if(!pmbmd -> m_bMCSEL)// ~GMC				decodeMV (pmbmd, pmv, bLeftBndry, bRightBndry, bTopBndry, FALSE, iMBX, iMBY);// GMC			else			{				Int iPmvx, iPmvy, iHalfx, iHalfy;				globalmv (iPmvx, iPmvy, iHalfx, iHalfy,					iMBX*MB_SIZE,iMBY*MB_SIZE,					m_vopmd.mvInfoForward.uiRange, m_volmd.bQuarterSample);				CVector vctOrg;				vctOrg.x = iPmvx*2 + iHalfx;				vctOrg.y = iPmvy*2 + iHalfy;				*pmv= CMotionVector (iPmvx, iPmvy);				pmv -> iHalfX = iHalfx;				pmv -> iHalfY = iHalfy;				pmv -> computeTrueMV ();				pmv -> computeMV ();				for (UInt i = 1; i < PVOP_MV_PER_REF_PER_MB; i++)					pmv[i] = *pmv;			}// ~GMC			if(bMBBackup){				if (pmbmdBackup->m_dctMd == INTER || pmbmdBackup->m_dctMd == INTERQ) {					motionCompMB (						m_ppxlcPredMBY, m_pvopcRefQ0->pixelsY (),						pmvBackup, pmbmdBackup, 						iMBXBackup, iMBYBackup, 						x, y,						pmbmdBackup->m_bSkip, FALSE,						&m_rctRefVOPY0					);					if (!(pmbmdBackup->m_bSkip && !pmbmdBackup->m_bMCSEL)) { // GMC						CoordI iXRefUV, iYRefUV, iXRefUV1, iYRefUV1;// GMC					    if (!pmbmdBackup->m_bMCSEL)// ~GMC						mvLookupUV (pmbmdBackup, pmvBackup, iXRefUV, iYRefUV, iXRefUV1, iYRefUV1);// GMC					    if(pmbmdBackup->m_bMCSEL) {							FindGlobalChromPredForGMC(x,y,m_ppxlcPredMBU,m_ppxlcPredMBV);						} 						else// ~GMC							motionCompUV (m_ppxlcPredMBU, m_ppxlcPredMBV, m_pvopcRefQ0, x, y, iXRefUV, iYRefUV, m_vopmd.iRoundingControl, &m_rctRefVOPY0);// GMC					    if (pmbmdBackup->m_bSkip)							assignPredToCurrQ (ppxlcCurrQMBYBackup, ppxlcCurrQMBUBackup, ppxlcCurrQMBVBackup);					    else// ~GMC							addErrorAndPredToCurrQ (ppxlcCurrQMBYBackup, ppxlcCurrQMBUBackup, ppxlcCurrQMBVBackup);					}					else {						if (m_volmd.bAdvPredDisable)								copyFromRefToCurrQ (m_pvopcRefQ0, x, y, ppxlcCurrQMBYBackup, ppxlcCurrQMBUBackup, ppxlcCurrQMBVBackup, NULL);						else							copyFromPredForYAndRefForCToCurrQ (x, y, ppxlcCurrQMBYBackup, ppxlcCurrQMBUBackup, ppxlcCurrQMBVBackup, NULL);					}				}				bMBBackup = FALSE;// NEWPRED				if (m_volmd.bNewpredEnable && (m_volmd.bNewpredSegmentType == 0)) {									bRet = FALSE;					// copy picture from NEWPRED reference picture memory// RRV modification					RefpointY = (PixelC*) g_pNewPredDec->m_pchNewPredRefY +				  		(EXPANDY_REF_FRAME * m_rctRefFrameY.width) + 				  		iMBY * (MB_SIZE *m_iRRVScale)* m_rctRefFrameY.width;					RefpointU = (PixelC*) g_pNewPredDec->m_pchNewPredRefU +				  		((EXPANDY_REF_FRAME/2)*m_rctRefFrameUV.width) + 					 	iMBY * (BLOCK_SIZE *m_iRRVScale) * m_rctRefFrameUV.width;					RefpointV = (PixelC*) g_pNewPredDec->m_pchNewPredRefV +				 		((EXPANDY_REF_FRAME/2)*m_rctRefFrameUV.width) + 				 		iMBY * (BLOCK_SIZE *m_iRRVScale) * m_rctRefFrameUV.width;					bRet = g_pNewPredDec->CopyNPtoVM(iVideoPacketNumber, RefpointY, RefpointU, RefpointV);					pRefpointY = (PixelC*) m_pvopcRefQ0->pixelsY () + m_iStartInRefToCurrRctY + iMBY * (MB_SIZE *m_iRRVScale) * m_rctRefFrameY.width;					pRefpointU = (PixelC*) m_pvopcRefQ0->pixelsU () + m_iStartInRefToCurrRctUV + iMBY * (BLOCK_SIZE *m_iRRVScale) * m_rctRefFrameUV.width;					pRefpointV = (PixelC*) m_pvopcRefQ0->pixelsV () + m_iStartInRefToCurrRctUV + iMBY * (BLOCK_SIZE *m_iRRVScale) * m_rctRefFrameUV.width;					// padding around VP					g_pNewPredDec->ChangeRefOfSlice((const PixelC* )pRefpointY, RefbufY,(const PixelC* )pRefpointU, RefbufU,				  		(const PixelC* )pRefpointV, RefbufV, (iMBX *m_iRRVScale), (iMBY *m_iRRVScale), m_rctRefFrameY, m_rctRefFrameUV);					repeatPadYOrA ((PixelC*) m_pvopcRefQ0->pixelsY () + m_iOffsetForPadY, m_pvopcRefQ0);					repeatPadUV (m_pvopcRefQ0);				}		// ~NEWPRED			}			pmbmd++;			pmv += PVOP_MV_PER_REF_PER_MB;			mbn++;			piMCBPC++;			assert(mbn<=(m_iNumMBX*m_iNumMBY));		} while( !checkMotionMarker() );		m_pbitstrmIn -> getBits (NUMBITS_DP_MOTION_MARKER);		pmbmd = pmbmdFirst;		piMCBPC = piMCBPCFirst;		piIntraDC = piIntraDCFirst;		//printf("#");		for(i=mbnFirst;i<mbn;i++) {			decodeMBTextureHeadOfPVOP_DataPartitioning (pmbmd, iCurrentQP, piMCBPC, piIntraDC, &bRestartDelayedQP);			//if(pmbmd->m_bSkip)			//	printf("(Skip)");			//else			//	printf("(%d:%d:%d)", *piMCBPC, pmbmd->m_bCodeDcAsAc, pmbmd->m_stepSize);			pmbmd++;			piMCBPC++;			piIntraDC += V_BLOCK;		}		pmbmd = pmbmdFirst;		pmv = pmvFirst;		piIntraDC = piIntraDCFirst;		for(i=mbnFirst;i<mbn;i++) {			iMBX = i % m_iNumMBX;			iMBY = i / m_iNumMBX;			if(iMBX == 0 ) {				ppxlcCurrQMBY = ppxlcCurrQY;				ppxlcCurrQMBU = ppxlcCurrQU;				ppxlcCurrQMBV = ppxlcCurrQV;				x = 0;// RRV modification				if(iMBY != 0)	y += (MB_SIZE *m_iRRVScale);//				if(iMBY != 0)	y += MB_SIZE;// ~RRV			} else {// RRV modification				x += (MB_SIZE *m_iRRVScale);//				x += MB_SIZE;// ~RRV			}			if (pmbmd->m_dctMd == INTRA || pmbmd->m_dctMd == INTRAQ)				decodeTextureIntraMB_DataPartitioning (pmbmd, iMBX, iMBY, ppxlcCurrQMBY, ppxlcCurrQMBU, ppxlcCurrQMBV, piIntraDC);			else {				if (!pmbmd->m_bSkip)					decodeTextureInterMB (pmbmd);			}			if(i==mbn-1){				bMBBackup = TRUE;				pmbmdBackup = pmbmd;				pmvBackup = pmv;				iMBXBackup = iMBX;				iMBYBackup = iMBY;				ppxlcCurrQMBYBackup = ppxlcCurrQMBY;				ppxlcCurrQMBUBackup = ppxlcCurrQMBU;				ppxlcCurrQMBVBackup = ppxlcCurrQMBV;			}			if (pmbmd->m_dctMd == INTER || pmbmd->m_dctMd == INTERQ) {				motionCompMB (					m_ppxlcPredMBY, m_pvopcRefQ0->pixelsY (),					pmv, pmbmd, 					iMBX, iMBY, 					x, y,					pmbmd->m_bSkip, FALSE,					&m_rctRefVOPY0				);				if (!(pmbmd->m_bSkip && !pmbmd->m_bMCSEL)) { // GMC					CoordI iXRefUV, iYRefUV, iXRefUV1, iYRefUV1;// GMC				   if(!pmbmd->m_bMCSEL)// ~GMC					mvLookupUV (pmbmd, pmv, iXRefUV, iYRefUV, iXRefUV1, iYRefUV1);// GMC				   if(pmbmd->m_bMCSEL){					FindGlobalChromPredForGMC(x,y,m_ppxlcPredMBU,m_ppxlcPredMBV);				   }else// ~GMC					motionCompUV (m_ppxlcPredMBU, m_ppxlcPredMBV, m_pvopcRefQ0, x, y, iXRefUV, iYRefUV, m_vopmd.iRoundingControl, &m_rctRefVOPY0);// GMC				   if(pmbmd->m_bSkip)					assignPredToCurrQ (ppxlcCurrQMBY, ppxlcCurrQMBU, ppxlcCurrQMBV);				   else// ~GMC					addErrorAndPredToCurrQ (ppxlcCurrQMBY, ppxlcCurrQMBU, ppxlcCurrQMBV);				}				else {					if (m_volmd.bAdvPredDisable)						copyFromRefToCurrQ (m_pvopcRefQ0, x, y, ppxlcCurrQMBY, ppxlcCurrQMBU, ppxlcCurrQMBV, NULL);					else						copyFromPredForYAndRefForCToCurrQ (x, y, ppxlcCurrQMBY, ppxlcCurrQMBU, ppxlcCurrQMBV, NULL);				}			}			pmbmd++;			pmv += PVOP_MV_PER_REF_PER_MB;			piIntraDC += V_BLOCK;// RRV modification			ppxlcCurrQMBY += (MB_SIZE *m_iRRVScale);			ppxlcCurrQMBU += (BLOCK_SIZE *m_iRRVScale);			ppxlcCurrQMBV += (BLOCK_SIZE *m_iRRVScale);//			ppxlcCurrQMBY += MB_SIZE;//			ppxlcCurrQMBU += BLOCK_SIZE;//			ppxlcCurrQMBV += BLOCK_SIZE;// ~RRV			if(iMBX == m_iNumMBX - 1) {				MacroBlockMemory** ppmbmTemp = m_rgpmbmAbove;				m_rgpmbmAbove = m_rgpmbmCurr;				m_rgpmbmCurr  = ppmbmTemp;				ppxlcCurrQY += m_iFrameWidthYxMBSize;				ppxlcCurrQU += m_iFrameWidthUVxBlkSize;				ppxlcCurrQV += m_iFrameWidthUVxBlkSize;			}		}	} while( checkResyncMarker() );	delete m_piIntraDC;	delete m_piMCBPC;// RRV insertion	if(m_vopmd.RRVmode.iRRVOnOff == 1)	{		PixelC* ppxlcCurrQY = (PixelC*) m_pvopcRefQ1->pixelsY () + m_iStartInRefToCurrRctY;		PixelC* ppxlcCurrQU = (PixelC*) m_pvopcRefQ1->pixelsU () + m_iStartInRefToCurrRctUV;		PixelC* ppxlcCurrQV = (PixelC*) m_pvopcRefQ1->pixelsV () + m_iStartInRefToCurrRctUV;	    filterCodedPictureForRRV(ppxlcCurrQY, ppxlcCurrQU, ppxlcCurrQV,								 m_iVOPWidthY, m_rctCurrVOPY.height(),								 m_iNumMBX,  m_iNumMBY,								 m_pvopcRefQ0->whereY ().width,								 m_pvopcRefQ0->whereUV ().width);	}// ~RRV// NEWPRED	if (m_volmd.bNewpredEnable) {		Int i;		Int noStore_vop_id;	// stored Vop_id		// store decoded picture in  NEWPRED reference picture memory		g_pNewPredDec->SetQBuf( m_pvopcRefQ0, m_pvopcRefQ1 );		for (i=0; i < g_pNewPredDec->m_iNumSlice; i++ ) {			noStore_vop_id = g_pNewPredDec->make_next_decbuf(g_pNewPredDec->m_pNewPredControl, 				g_pNewPredDec->GetCurrentVOP_id(), i);		}		// copy previous decoded picutre to reference picture memory because of output ording		for( int iSlice = 0; iSlice < g_pNewPredDec->m_iNumSlice; iSlice++ ) {			int		iMBY = g_pNewPredDec->NowMBA(iSlice)/((g_pNewPredDec->getwidth())/MB_SIZE);			PixelC* RefpointY = (PixelC*) m_pvopcRefQ0->pixelsY () + (m_iStartInRefToCurrRctY-EXPANDY_REF_FRAME) + iMBY * MB_SIZE * m_rctRefFrameY.width;			PixelC* RefpointU = (PixelC*) m_pvopcRefQ0->pixelsU () + (m_iStartInRefToCurrRctUV-EXPANDUV_REF_FRAME) + iMBY * BLOCK_SIZE * m_rctRefFrameUV.width;			PixelC* RefpointV = (PixelC*) m_pvopcRefQ0->pixelsV () + (m_iStartInRefToCurrRctUV-EXPANDUV_REF_FRAME) + iMBY * BLOCK_SIZE * m_rctRefFrameUV.width;			g_pNewPredDec->CopyNPtoPrev(iSlice, RefpointY, RefpointU, RefpointV);			}		repeatPadYOrA ((PixelC*) m_pvopcRefQ0->pixelsY () + m_iOffsetForPadY, m_pvopcRefQ0);		repeatPadUV (m_pvopcRefQ0);	}// ~NEWPRED}Void CVideoObjectDecoder::decodeIVOP_WithShape_DataPartitioning ()	{	//assert (m_volmd.nBits==8);	assert (m_volmd.fAUsage!=EIGHT_BIT);	//in case the IVOP is used as an ref for direct mode	memset (m_rgmv, 0, m_iNumMB * PVOP_MV_PER_REF_PER_MB * sizeof (CMotionVector));	Int iMBX, iMBY;	CMBMode* pmbmd = m_rgmbmd;	PixelC* ppxlcRefY  = (PixelC*) m_pvopcRefQ1->pixelsY () + m_iStartInRefToCurrRctY;	PixelC* ppxlcRefU  = (PixelC*) m_pvopcRefQ1->pixelsU () + m_iStartInRefToCurrRctUV;	PixelC* ppxlcRefV  = (PixelC*) m_pvopcRefQ1->pixelsV () + m_iStartInRefToCurrRctUV;	PixelC* ppxlcRefBY = (PixelC*) m_pvopcRefQ1->pixelsBY () + m_iStartInRefToCurrRctY;//	PixelC* ppxlcRefA  = (PixelC*) m_pvopcRefQ1->pixelsA (0) + m_iStartInRefToCurrRctY;	PixelC* ppxlcRefBUV = (PixelC*) m_pvopcRefQ1->pixelsBUV () + m_iStartInRefToCurrRctUV;	Int iCurrentQP  = m_vopmd.intStepI;		Int	iVideoPacketNumber = 0;	m_iVPMBnum = 0;	m_piMCBPC = new Int[m_iNumMBX*m_iNumMBY];	Int*	piMCBPC = m_piMCBPC;	m_piIntraDC = new Int[m_iNumMBX*m_iNumMBY*V_BLOCK];	Int*	piIntraDC = m_piIntraDC;	Bool bRestartDelayedQP = TRUE;	Int	i;	Int mbn = 0, mbnFirst = 0;	PixelC* ppxlcRefMBBY = NULL;	PixelC* ppxlcRefMBBUV;	PixelC* ppxlcRefMBY = NULL;	PixelC* ppxlcRefMBU = NULL;	PixelC* ppxlcRefMBV = NULL;	//PixelC* ppxlcRefMBA;	do	{		if( checkResyncMarker() )	{			decodeVideoPacketHeader(iCurrentQP);			iVideoPacketNumber++;			bRestartDelayedQP = TRUE;		}		CMBMode* pmbmdFirst = pmbmd;		Int* piMCBPCFirst = piMCBPC;		Int* piIntraDCFirst = piIntraDC;		mbnFirst = mbn;		do{			iMBX = mbn % m_iNumMBX;			iMBY = mbn / m_iNumMBX;			if(iMBX == 0 ) {				ppxlcRefMBBY = ppxlcRefBY;				ppxlcRefMBBUV = ppxlcRefBUV;			}			pmbmd->m_iVideoPacketNumber = iVideoPacketNumber;			decodeIntraShape (pmbmd, iMBX, iMBY, m_ppxlcCurrMBBY, ppxlcRefMBBY);			// Changed HHI 2000-04-11			downSampleBY (m_ppxlcCurrMBBY, m_ppxlcCurrMBBUV, pmbmd); // downsample original BY now for LPE padding (using original shape)			if(m_volmd.bShapeOnly==FALSE)			{				pmbmd->m_bPadded=FALSE;				if (pmbmd->m_rgTranspStatus [0] != ALL) {					*piMCBPC = m_pentrdecSet->m_pentrdecMCBPCintra->decodeSymbol ();					assert (*piMCBPC >= 0 && *piMCBPC <= 8);					while (*piMCBPC == 8) {						*piMCBPC = m_pentrdecSet->m_pentrdecMCBPCintra->decodeSymbol ();					};					pmbmd->m_dctMd = INTRA;					if (*piMCBPC > 3)						pmbmd->m_dctMd = INTRAQ;					decodeMBTextureDCOfIVOP_DataPartitioning (pmbmd, iCurrentQP, piIntraDC, &bRestartDelayedQP);				}			}			else	{				assert(FALSE);			}			pmbmd++;			mbn++;			piMCBPC++;			piIntraDC+=V_BLOCK;			ppxlcRefMBBY += MB_SIZE;			ppxlcRefMBBUV += BLOCK_SIZE;			if(iMBX == m_iNumMBX - 1) {				ppxlcRefBY += m_iFrameWidthYxMBSize;				ppxlcRefBUV += m_iFrameWidthUVxBlkSize;			}		} while( !checkDCMarker() );		m_pbitstrmIn -> getBits (NUMBITS_DP_DC_MARKER);		pmbmd = pmbmdFirst;		piMCBPC = piMCBPCFirst;		for(i=mbnFirst;i<mbn;i++) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品精华液网站| 久久亚区不卡日本| 99综合影院在线| 国产一区二区0| 免费高清不卡av| 免费高清不卡av| 久久国产免费看| 美腿丝袜亚洲色图| 精品一区二区国语对白| 美女mm1313爽爽久久久蜜臀| 日韩avvvv在线播放| 青青草国产成人99久久| 奇米影视一区二区三区| 捆绑调教一区二区三区| 国产精华液一区二区三区| 国产成人精品综合在线观看| 99在线精品一区二区三区| 国产在线视频一区二区| 亚洲va韩国va欧美va精品| 蜜乳av一区二区三区| 国产日韩欧美一区二区三区乱码| 久久精品人人爽人人爽| 中文乱码免费一区二区| 一区二区三区日韩在线观看| 午夜精品爽啪视频| 国产美女视频91| 91亚洲精品乱码久久久久久蜜桃 | 成人av一区二区三区| jvid福利写真一区二区三区| 欧美性xxxxxx少妇| 日韩欧美的一区| 中文字幕一区二区三区四区| 亚洲成人综合视频| 国产不卡高清在线观看视频| 久久午夜羞羞影院免费观看| 午夜影院久久久| 欧美日韩国产三级| 精品国产三级电影在线观看| 欧美激情在线看| 一区二区理论电影在线观看| 免费观看30秒视频久久| 色综合久久综合网| 日韩欧美电影一二三| 亚洲另类在线制服丝袜| 国产综合一区二区| 欧洲一区二区三区免费视频| 久久视频一区二区| 午夜不卡av在线| 国产**成人网毛片九色| 日韩无一区二区| 亚洲欧美成人一区二区三区| 久久精品理论片| 在线观看一区不卡| 国产欧美综合在线| 精品一区中文字幕| 欧美精品日日鲁夜夜添| 亚洲色图在线看| 国产精品自产自拍| 日韩一区二区免费高清| 亚洲五码中文字幕| 99精品国产视频| 国产精品理论片| 国产乱码精品一区二区三区忘忧草 | 午夜电影网一区| 欧美久久一区二区| 欧美精品一区二区久久久 | 日韩va欧美va亚洲va久久| 日韩欧美国产三级| 91久久精品日日躁夜夜躁欧美| 蜜桃传媒麻豆第一区在线观看| 国产精品丝袜在线| 欧美在线视频你懂得| 成人精品国产免费网站| 成人免费观看av| 国产福利不卡视频| 精品欧美久久久| 日韩成人一区二区三区在线观看| 色婷婷综合视频在线观看| 亚洲欧洲精品天堂一级| 99久久久无码国产精品| 亚洲同性gay激情无套| 99精品欧美一区二区蜜桃免费| 中文字幕中文字幕在线一区| 成人动漫在线一区| 亚洲少妇中出一区| 欧美三片在线视频观看| 五月婷婷激情综合| 日韩三级高清在线| 紧缚奴在线一区二区三区| 久久综合国产精品| 成人在线综合网站| 亚洲人123区| 欧美日韩国产另类不卡| 老司机午夜精品99久久| 久久久国产一区二区三区四区小说 | 日韩欧美在线网站| 国产一区二区伦理| 一区二区中文视频| 欧美性色欧美a在线播放| 日韩主播视频在线| 久久亚洲一级片| 色综合咪咪久久| 日韩高清中文字幕一区| 久久久99久久精品欧美| 91首页免费视频| 日本aⅴ免费视频一区二区三区| 精品毛片乱码1区2区3区| av中文字幕一区| 日日夜夜免费精品| 久久嫩草精品久久久精品| 色综合久久久久久久| 日本伊人午夜精品| 国产精品理论片| 欧美一区二区福利在线| 成人国产在线观看| 日韩黄色在线观看| 国产精品美女久久久久久久久久久 | 日韩欧美在线一区二区三区| 成人av网站在线观看免费| 亚洲va欧美va人人爽午夜 | 一本久久a久久精品亚洲| 日本三级亚洲精品| 综合激情成人伊人| 日韩一级完整毛片| 在线视频一区二区免费| 成人在线综合网| 狠狠狠色丁香婷婷综合激情| 亚洲一区二区偷拍精品| 中文一区一区三区高中清不卡| 91精品一区二区三区在线观看| www.色精品| 国产成人在线视频网站| 美女一区二区视频| 亚洲宅男天堂在线观看无病毒| 欧美激情在线看| 久久久噜噜噜久久人人看| 在线播放91灌醉迷j高跟美女| 99视频有精品| 丁香天五香天堂综合| 裸体健美xxxx欧美裸体表演| 亚洲第一搞黄网站| 伊人夜夜躁av伊人久久| 亚洲天天做日日做天天谢日日欢| 久久综合网色—综合色88| 日韩午夜在线播放| 日韩手机在线导航| 欧美一三区三区四区免费在线看 | 色综合久久综合| 国产成+人+日韩+欧美+亚洲| 久久不见久久见免费视频1| 日本女人一区二区三区| 亚洲成人午夜电影| 日一区二区三区| 美女www一区二区| 久久99久久久久| 久久99国产乱子伦精品免费| 麻豆精品蜜桃视频网站| 久久99精品久久久久久动态图| 蜜臀91精品一区二区三区| 麻豆国产欧美一区二区三区| 免费人成网站在线观看欧美高清| 免费精品视频最新在线| 美国av一区二区| 国产精品综合av一区二区国产馆| 国产成人精品在线看| 91丨九色丨黑人外教| 欧洲精品一区二区| 欧美另类z0zxhd电影| 91精品国产91久久久久久一区二区 | 亚洲综合一区二区三区| 无码av免费一区二区三区试看| 日韩中文字幕亚洲一区二区va在线 | 久久精品亚洲乱码伦伦中文| 日本一区二区在线不卡| 亚洲日本va午夜在线电影| 亚洲国产中文字幕| 人禽交欧美网站| 成人综合在线观看| 欧美色爱综合网| 26uuu久久综合| 亚洲三级免费观看| 日韩影院在线观看| 国产a精品视频| 在线日韩一区二区| 久久综合九色综合久久久精品综合| 国产精品毛片高清在线完整版| 一区二区三区日本| 国产自产高清不卡| 色综合久久久网| 日韩免费福利电影在线观看| 亚洲男人都懂的| 国精产品一区一区三区mba桃花 | 精品伦理精品一区| 中文字幕亚洲成人| 2023国产精品| 亚洲永久精品大片| 国产suv精品一区二区883| 国产婷婷色一区二区三区四区| 一区二区视频免费在线观看| 久久99精品国产麻豆婷婷 |