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

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

?? sys_decoder_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一区二区三区免费野_久草精品视频
国产一区不卡视频| 久久日韩粉嫩一区二区三区| 国产一区二区三区综合| 亚洲自拍偷拍麻豆| 国产乱子伦视频一区二区三区| 亚洲高清免费视频| 亚洲自拍欧美精品| 亚洲自拍偷拍综合| 亚洲一区二区三区在线看| 亚洲柠檬福利资源导航| 亚洲欧美日韩国产一区二区三区| 国产精品电影一区二区三区| 国产精品电影一区二区三区| 97aⅴ精品视频一二三区| 成年人国产精品| 99精品欧美一区二区三区综合在线| 成人一区二区三区视频| 成人动漫视频在线| 色狠狠一区二区三区香蕉| 一本久久综合亚洲鲁鲁五月天| 色呦呦日韩精品| 在线播放91灌醉迷j高跟美女 | 久久99日本精品| 蜜桃精品在线观看| 国产一区二区影院| gogo大胆日本视频一区| 欧洲一区二区三区在线| 日韩小视频在线观看专区| 日韩视频免费观看高清完整版在线观看 | 欧美韩国日本一区| 亚洲欧美日韩精品久久久久| 天堂va蜜桃一区二区三区| 久久99国内精品| www.99精品| 欧美精品高清视频| 久久蜜桃一区二区| 一区二区三区不卡视频在线观看| 午夜av电影一区| 国产成人午夜精品影院观看视频 | 香蕉久久夜色精品国产使用方法| 蜜臀va亚洲va欧美va天堂| 国产宾馆实践打屁股91| 欧美在线看片a免费观看| 日韩精品中文字幕在线一区| 亚洲欧美自拍偷拍| 免费成人在线网站| 色就色 综合激情| 久久奇米777| 午夜伦欧美伦电影理论片| 国产精品亚洲第一| 欧美一区永久视频免费观看| 91视频观看视频| 久久精品亚洲乱码伦伦中文 | 成人免费观看视频| 欧美美女黄视频| 亚洲天堂成人在线观看| 久久精品999| 欧美三级中文字| 亚洲三级久久久| 国产精品一级在线| 日韩精品中文字幕一区| 亚洲国产欧美在线| 99久久精品国产麻豆演员表| 亚洲精品一区二区三区香蕉| 日韩精品三区四区| 91在线观看地址| 欧美激情中文字幕| 国产精品18久久久久久vr| 91精品久久久久久久99蜜桃| 一区二区三区四区视频精品免费| av不卡免费电影| 国产午夜精品一区二区三区四区| 日本视频在线一区| 宅男噜噜噜66一区二区66| 夜夜亚洲天天久久| 在线免费观看日本一区| 亚洲日本乱码在线观看| 99久久99久久精品国产片果冻| 久久久久久9999| 国产精品一二三区在线| 欧美xxxxxxxx| 久热成人在线视频| 日韩欧美精品在线| 九九久久精品视频| 久久久久久免费网| 国产精品一区二区91| 国产偷国产偷精品高清尤物| 国产精品88888| 中文字幕av资源一区| 成人av综合一区| 亚洲欧美激情视频在线观看一区二区三区 | 国产综合久久久久久久久久久久| 欧美电视剧在线看免费| 精品一区二区久久| 国产欧美日韩不卡免费| www.99精品| 天天色综合成人网| 日韩欧美第一区| 成人中文字幕合集| 亚洲精品免费播放| 欧美一区二区在线播放| 国模无码大尺度一区二区三区| 久久精品综合网| 日本黄色一区二区| 日本欧美在线观看| 国产精品美女www爽爽爽| 91黄视频在线观看| 另类综合日韩欧美亚洲| 国产精品麻豆网站| 欧美日韩一二三区| 国内精品视频666| 亚洲欧美日韩国产综合| 欧美一级高清大全免费观看| 国产福利精品一区二区| 一区二区三区免费| 久久影院电视剧免费观看| 97国产精品videossex| 日韩国产精品久久久久久亚洲| 久久久久久电影| 在线免费观看日韩欧美| 国产福利一区在线观看| 丝袜美腿亚洲综合| 国产日韩av一区| 制服视频三区第一页精品| 99在线精品免费| 久88久久88久久久| 日本韩国欧美在线| 国产成人免费视频精品含羞草妖精| 有码一区二区三区| 久久精品夜色噜噜亚洲aⅴ| 欧美日韩亚洲综合| 国产精品第13页| xnxx国产精品| 在线不卡的av| 欧美性xxxxxxxx| va亚洲va日韩不卡在线观看| 久久精品国产亚洲5555| 亚洲精品国产精华液| 国产精品视频麻豆| 26uuuu精品一区二区| 欧美成人精品二区三区99精品| 欧美色大人视频| 91啪亚洲精品| av电影天堂一区二区在线| 国产精品18久久久久久久久久久久| 日韩电影免费一区| 亚洲成人精品一区| 亚洲综合激情另类小说区| 日韩理论在线观看| 国产精品久久久久久久浪潮网站| 精品久久久久久久久久久久久久久 | 国产欧美精品日韩区二区麻豆天美| 8x8x8国产精品| 欧美在线观看视频一区二区三区 | 亚洲综合在线免费观看| 中文字幕一区视频| 国产精品二三区| 97精品久久久久中文字幕| 成人av片在线观看| 99久久精品免费看国产免费软件| 丁香婷婷综合激情五月色| 国产99精品国产| 成人免费黄色在线| 色偷偷成人一区二区三区91| aa级大片欧美| 欧美视频你懂的| 欧美日韩电影在线| 7777精品伊人久久久大香线蕉经典版下载 | 成人国产精品免费观看动漫| 成人一区二区三区| 色综合婷婷久久| 精品视频全国免费看| 日韩欧美的一区二区| 中文字幕精品综合| 一区二区三区在线观看欧美| 石原莉奈在线亚洲二区| 精品一区二区三区av| 成人黄色国产精品网站大全在线免费观看 | 国产一区二区在线电影| 成人a级免费电影| 欧美日韩国产三级| 欧美精品一区二区久久婷婷| 欧美经典一区二区三区| 亚洲美女在线国产| 午夜精品免费在线| 国产在线视视频有精品| 91视频在线看| 日韩欧美中文字幕公布| 国产精品你懂的在线| 亚洲一级二级三级| 国产亚洲成年网址在线观看| 国产精品久久久久永久免费观看| 亚洲免费av在线| 久久精品国产亚洲一区二区三区 | 欧美高清视频在线高清观看mv色露露十八 | 7777精品伊人久久久大香线蕉| 久久久99久久精品欧美| 亚洲国产cao| 成人黄色免费短视频| 麻豆国产欧美日韩综合精品二区|