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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? sys_decoder_errdec.cpp

?? 完整的RTP RTSP代碼庫
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
/*************************************************************************This software module was originally developed by 	Yoshihiro Kikuchi (TOSHIBA CORPORATION)	Takeshi Nagai (TOSHIBA CORPORATION)    and edited by:	Toshiaki Watanabe (TOSHIBA CORPORATION)	Noboru Yamaguchi (TOSHIBA CORPORATION)    and also edited by:	Yoshinori Suzuki (Hitachi, Ltd.)    and also edited by:	Hideaki Kimata (NTT)and also edited by    Fujitsu Laboratories Ltd. (contact: Eishi Morimatsu)  in the course of development of the <MPEG-4 Video(ISO/IEC 14496-2)>. This  software module is an implementation of a part of one or more <MPEG-4 Video  (ISO/IEC 14496-2)> tools as specified by the <MPEG-4 Video(ISO/IEC 14496-2)  >. ISO/IEC gives users of the <MPEG-4 Video(ISO/IEC 14496-2)> free license  to this software module or modifications thereof for use in hardware or  software products claiming conformance to the <MPEG-4 Video(ISO/IEC 14496-2  )>. Those intending to use this software module in hardware or software  products are advised that its use may infringe existing patents. The  original developer of this software module and his/her company, the  subsequent editors and their companies, and ISO/IEC have no liability for  use of this software module or modifications thereof in an implementation.  Copyright is not released for non <MPEG-4 Video(ISO/IEC 14496-2)>  conforming products. TOSHIBA CORPORATION retains full right to use the code  for his/her own purpose, assign or donate the code to a third party and to  inhibit third parties from using the code for non <MPEG-4 Video(ISO/IEC  14496-2)> conforming products. This copyright notice must be included in  all copies or derivative works.  Copyright (c)1997.Module Name:	errdec.cppRevision History:	Sep.06	1999 : RRV added by Eishi Morimatsu (Fujitsu Laboratories Ltd.)	Mar.13	2000 : MB stuffing decoding added by Hideaki Kimata (NTT)	May.25  2000 : MB stuffing decoding on the last MB by Hideaki Kimata (NTT)*************************************************************************/// Added for error resilience mode By Toshiba#include <stdio.h>#include <math.h>#include <stdlib.h>#include "typeapi.h"#include "mode.hpp"#include "codehead.h"#include "bitstrm.hpp"#include "entropy.hpp"#include "huffman.hpp"#include "global.hpp"#include "vopses.hpp"#include "vopsedec.hpp"#include "dct.hpp"// NEWPRED#include "newpred.hpp"// ~NEWPRED// RRV insertion#include "rrv.hpp"// ~RRV#ifdef __MFC_#ifdef _DEBUG#undef THIS_FILEstatic char BASED_CODE THIS_FILE[] = __FILE__;#endif#define new DEBUG_NEW				   #endif // __MFC_Bool CVideoObjectDecoder::checkResyncMarker(){	if(short_video_header)		return FALSE; // added by swinder	Int nBitsPeeked;	Int iStuffedBits = m_pbitstrmIn->peekBitsTillByteAlign (nBitsPeeked);	Int nBitsResyncMarker = NUMBITS_VP_RESYNC_MARKER;	if(m_volmd.bShapeOnly==FALSE)	{		if(m_vopmd.vopPredType == PVOP || (m_uiSprite == 2 && m_vopmd.vopPredType == SPRITE)) // GMC			nBitsResyncMarker += (m_vopmd.mvInfoForward.uiFCode - 1);		else if(m_vopmd.vopPredType == BVOP)			nBitsResyncMarker += MAX(m_vopmd.mvInfoForward.uiFCode, m_vopmd.mvInfoBackward.uiFCode) - 1;	}			assert (nBitsPeeked > 0 && nBitsPeeked <= 8);	if (iStuffedBits == ((1 << (nBitsPeeked - 1)) - 1))		return (m_pbitstrmIn->peekBitsFromByteAlign (nBitsResyncMarker) == RESYNC_MARKER);	return FALSE;}// May.25 2000 for MB stuffing decoding on the last MBBool CVideoObjectDecoder::checkStartCode(){	Int nBitsPeeked;	Int iStuffedBits = m_pbitstrmIn->peekBitsTillByteAlign (nBitsPeeked);			assert (nBitsPeeked > 0 && nBitsPeeked <= 8);	if (iStuffedBits == ((1 << (nBitsPeeked - 1)) - 1))		return (m_pbitstrmIn->peekBitsFromByteAlign (NUMBITS_START_CODE_PREFIX) == START_CODE_PREFIX);	return FALSE;}// ~May.25 2000 for MB stuffing decoding on the last MBInt	CVideoObjectDecoder::decodeVideoPacketHeader(Int& iCurrentQP){	UInt uiHEC = 0;	m_pbitstrmIn -> flush(8);	Int nBitsResyncMarker = NUMBITS_VP_RESYNC_MARKER;	if(m_volmd.bShapeOnly==FALSE)	{		if(m_vopmd.vopPredType == PVOP || (m_uiSprite == 2 && m_vopmd.vopPredType == SPRITE)) // GMC_V2			nBitsResyncMarker += (m_vopmd.mvInfoForward.uiFCode - 1);		else if(m_vopmd.vopPredType == BVOP)			nBitsResyncMarker += MAX(m_vopmd.mvInfoForward.uiFCode, m_vopmd.mvInfoBackward.uiFCode) - 1;	}	/* UInt uiResyncMarker = wmay */ m_pbitstrmIn -> getBits (nBitsResyncMarker);// RRV modification	Int	NumOfMB = m_iNumMBX * m_iNumMBY *m_iRRVScale *m_iRRVScale;//	Int	NumOfMB = m_iNumMBX * m_iNumMBY;// ~RRV	assert (NumOfMB>0);	//Int LengthOfMBNumber = (Int)(log(NumOfMB-1)/log(2)) + 1;	Int iVal = NumOfMB - 1;	Int iLengthOfMBNumber = 0;	for(; iVal; iLengthOfMBNumber++)		iVal>>=1;	UInt uiMBNumber = 0;		if (m_volmd.fAUsage != RECTANGLE) {		uiHEC = m_pbitstrmIn -> getBits (NUMBITS_VP_HEC);	  if (uiHEC && !(m_uiSprite == 1 && m_vopmd.vopPredType == IVOP)) {	    /* Int width = wmay */ m_pbitstrmIn -> getBits (NUMBITS_VOP_WIDTH);		Int marker;		marker = m_pbitstrmIn -> getBits (1); // marker bit		assert(marker==1);		/* Int height = wmay */ m_pbitstrmIn -> getBits (NUMBITS_VOP_HEIGHT);		marker = m_pbitstrmIn -> getBits (1); // marker bit		assert(marker==1);		//wchen: cd changed to 2s complement		Int left = (m_pbitstrmIn -> getBits (1) == 0) ?					m_pbitstrmIn->getBits (NUMBITS_VOP_HORIZONTAL_SPA_REF - 1) : 					((Int)m_pbitstrmIn->getBits (NUMBITS_VOP_HORIZONTAL_SPA_REF - 1) - (1 << (NUMBITS_VOP_HORIZONTAL_SPA_REF - 1)));		marker = m_pbitstrmIn -> getBits (1); // marker bit		assert(marker==1);		Int top = (m_pbitstrmIn -> getBits (1) == 0) ?				   m_pbitstrmIn->getBits (NUMBITS_VOP_VERTICAL_SPA_REF - 1) : 				   ((Int)m_pbitstrmIn->getBits (NUMBITS_VOP_VERTICAL_SPA_REF - 1) - (1 << (NUMBITS_VOP_VERTICAL_SPA_REF - 1)));		marker = m_pbitstrmIn -> getBits (1); // marker bit		assert(marker==1);		assert(((left | top)&1)==0); // must be even pix unit	  }	}	if(NumOfMB>1)		uiMBNumber = m_pbitstrmIn -> getBits (iLengthOfMBNumber);		m_iVPMBnum = uiMBNumber;	if(m_volmd.bShapeOnly==FALSE) {		Int stepDecoded = m_pbitstrmIn -> getBits (NUMBITS_VP_QUANTIZER);		iCurrentQP = stepDecoded; 	}	if (m_volmd.fAUsage == RECTANGLE)		uiHEC = m_pbitstrmIn -> getBits (NUMBITS_VP_HEC);			if (uiHEC){		// Time reference and VOP_pred_type		Int iModuloInc = 0;		while (m_pbitstrmIn -> getBits (1) != 0)			iModuloInc++;		//Time tCurrSec = iModuloInc + (m_vopmd.vopPredType != BVOP ? m_tOldModuloBaseDecd : m_tOldModuloBaseDisp);		UInt uiMarker = m_pbitstrmIn -> getBits (1);		assert(uiMarker == 1);		Time tVopIncr = 0;		if(m_iNumBitsTimeIncr!=0)			tVopIncr = m_pbitstrmIn -> getBits (m_iNumBitsTimeIncr);		uiMarker = m_pbitstrmIn -> getBits (1);		assert(uiMarker == 1);		// this is bogus - swinder.		//assert (m_t == tCurrSec * 60 + tVopIncr * 60 / m_volmd.iClockRate); //in terms of 60Hz clock ticks		VOPpredType vopPredType = (VOPpredType) m_pbitstrmIn -> getBits (NUMBITS_VP_PRED_TYPE);		assert(m_vopmd.vopPredType == vopPredType);		if (m_volmd.fAUsage != RECTANGLE) {			m_volmd.bNoCrChange = m_pbitstrmIn -> getBits (1);	//VOP_CR_Change_Disable	        if (m_volmd.bShapeOnly==FALSE && m_vopmd.vopPredType != IVOP)			{					m_vopmd.bShapeCodingType = m_pbitstrmIn -> getBits (1);        	}		}		if(m_volmd.bShapeOnly==FALSE) {			Int	iIntraDcSwitchThr = m_pbitstrmIn->getBits (NUMBITS_VP_INTRA_DC_SWITCH_THR);			assert(m_vopmd.iIntraDcSwitchThr == iIntraDcSwitchThr);// GMC_V2			if (m_uiSprite == 2 && m_vopmd.vopPredType == SPRITE && m_iNumOfPnts > 0)				decodeWarpPoints ();// ~GMC_V2// RRV insertion			if((m_volmd.breduced_resolution_vop_enable == 1)&&(m_volmd.fAUsage == RECTANGLE)&&			   ((m_vopmd.vopPredType == PVOP)||(m_vopmd.vopPredType == IVOP)))			{				UInt uiVOP_RR	= m_pbitstrmIn -> getBits (1);				assert(uiVOP_RR == (UInt)m_vopmd.RRVmode.iRRVOnOff);			}	// ~RRV			if (m_vopmd.vopPredType == PVOP || (m_uiSprite == 2 && m_vopmd.vopPredType == SPRITE)) { // GMC_V2				UInt uiFCode = m_pbitstrmIn -> getBits (NUMBITS_VOP_FCODE);				assert(uiFCode == m_vopmd.mvInfoForward.uiFCode);			}			else if (m_vopmd.vopPredType == BVOP) {				UInt uiForwardFCode = m_pbitstrmIn -> getBits (NUMBITS_VOP_FCODE);				UInt uiBackwardFCode = m_pbitstrmIn -> getBits (NUMBITS_VOP_FCODE);				assert(uiForwardFCode == m_vopmd.mvInfoForward.uiFCode);				assert(uiBackwardFCode == m_vopmd.mvInfoBackward.uiFCode);			}		}	}// NEWPRED	if (m_volmd.bNewpredEnable) {		m_vopmd.m_iVopID = m_pbitstrmIn -> getBits(m_vopmd.m_iNumBitsVopID);		m_vopmd.m_iVopID4Prediction_Indication = m_pbitstrmIn -> getBits(NUMBITS_VOP_ID_FOR_PREDICTION_INDICATION);		if( m_vopmd.m_iVopID4Prediction_Indication )			m_vopmd.m_iVopID4Prediction = m_pbitstrmIn -> getBits(m_vopmd.m_iNumBitsVopID);		m_pbitstrmIn -> getBits(MARKER_BIT);		g_pNewPredDec->GetRef(				NP_VP_HEADER,				m_vopmd.vopPredType,				m_vopmd.m_iVopID,					m_vopmd.m_iVopID4Prediction_Indication,				m_vopmd.m_iVopID4Prediction		);	}// ~NEWPRED	return	TRUE;}Int	CVideoObjectDecoder::checkMotionMarker(){	return (m_pbitstrmIn -> peekBits (NUMBITS_DP_MOTION_MARKER) == MOTION_MARKER);}Int	CVideoObjectDecoder::checkDCMarker(){	return (m_pbitstrmIn -> peekBits (NUMBITS_DP_DC_MARKER) == DC_MARKER);}Void CVideoObjectDecoder::decodeIVOP_DataPartitioning ()	{	char	pSlicePoint[128];	pSlicePoint[0] = '0';	pSlicePoint[1] = '0'; //NULL;	memset (m_rgmv, 0, m_iNumMB * PVOP_MV_PER_REF_PER_MB * sizeof (CMotionVector));	Int iMBX=0, iMBY=0;	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;	Int iCurrentQP  = m_vopmd.intStepI;			Int	iVideoPacketNumber = 0;	m_iVPMBnum = 0;	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;	Bool bRestartDelayedQP = TRUE;	do{		if( checkResyncMarker() ){			decodeVideoPacketHeader(iCurrentQP);			iVideoPacketNumber++;			bRestartDelayedQP = TRUE;			//printf("VP");			if (m_volmd.bNewpredEnable) {				if (m_volmd.bNewpredSegmentType == 0)					if(m_iRRVScale == 2)					{						Int iMBX_t = mbn % m_iNumMBX;						Int iMBY_t = mbn / m_iNumMBX;						Int i_mbn	= (iMBY_t *m_iRRVScale) *(m_iNumMBX *m_iRRVScale) + (iMBX_t *m_iRRVScale);						sprintf(pSlicePoint, "%s,%d",pSlicePoint, i_mbn); // set slice number					}					else					{						sprintf(pSlicePoint, "%s,%d",pSlicePoint, mbn); // set slice number					}				else					pSlicePoint[0] = '1';			}		}		CMBMode* pmbmdFirst = pmbmd;		Int* piMCBPCFirst = piMCBPC;		Int* piIntraDCFirst = piIntraDC;		mbnFirst = mbn;				do{			pmbmd->m_iVideoPacketNumber = iVideoPacketNumber;			*piMCBPC = m_pentrdecSet->m_pentrdecMCBPCintra->decodeSymbol ();			assert (*piMCBPC >= 0 && *piMCBPC <= 8);			if (*piMCBPC == 8) {				if( checkDCMarker() )					break;				continue;			}			pmbmd->m_dctMd = INTRA;			if (*piMCBPC > 3)				pmbmd->m_dctMd = INTRAQ;			decodeMBTextureDCOfIVOP_DataPartitioning (pmbmd, iCurrentQP, piIntraDC, &bRestartDelayedQP);			//printf("(%d:%d:%d)", *piMCBPC, pmbmd->m_bCodeDcAsAc, iCurrentQP);			pmbmd++;			mbn++;			piMCBPC++;			piIntraDC+=V_BLOCK;		} while( !checkDCMarker() );		m_pbitstrmIn -> getBits (NUMBITS_DP_DC_MARKER);		pmbmd = pmbmdFirst;		piMCBPC = piMCBPCFirst;		for(i=mbnFirst;i<mbn;i++) {			decodeMBTextureHeadOfIVOP_DataPartitioning (pmbmd, piMCBPC);			pmbmd++;			piMCBPC++;		}		pmbmd = pmbmdFirst;		piIntraDC = piIntraDCFirst;		ppxlcRefY = (PixelC*) m_pvopcRefQ1->pixelsY () + m_iStartInRefToCurrRctY + (mbnFirst/m_iNumMBX)*m_iFrameWidthYxMBSize;		ppxlcRefU = (PixelC*) m_pvopcRefQ1->pixelsU () + m_iStartInRefToCurrRctUV + (mbnFirst/m_iNumMBX)*m_iFrameWidthUVxBlkSize;		ppxlcRefV = (PixelC*) m_pvopcRefQ1->pixelsV () + m_iStartInRefToCurrRctUV + (mbnFirst/m_iNumMBX)*m_iFrameWidthUVxBlkSize;// RRV modification		PixelC* ppxlcRefMBY = ppxlcRefY			+ (mbnFirst%m_iNumMBX)*(MB_SIZE *m_iRRVScale);		PixelC* ppxlcRefMBU = ppxlcRefU 			+ (mbnFirst%m_iNumMBX)*(BLOCK_SIZE *m_iRRVScale);		PixelC* ppxlcRefMBV = ppxlcRefV 			+ (mbnFirst%m_iNumMBX)*(BLOCK_SIZE *m_iRRVScale);// ~RRV		for(i=mbnFirst;i<mbn;i++) {			iMBX = i % m_iNumMBX;			iMBY = i / m_iNumMBX;			if(iMBX == 0 ) {				ppxlcRefMBY = ppxlcRefY;				ppxlcRefMBU = ppxlcRefU;				ppxlcRefMBV = ppxlcRefV;			}			decodeTextureIntraMB_DataPartitioning (pmbmd, iMBX, iMBY, ppxlcRefMBY, ppxlcRefMBU, ppxlcRefMBV, piIntraDC);			pmbmd++;			piIntraDC += V_BLOCK;// RRV modification			ppxlcRefMBY += (MB_SIZE *m_iRRVScale);			ppxlcRefMBU += (BLOCK_SIZE *m_iRRVScale);			ppxlcRefMBV += (BLOCK_SIZE *m_iRRVScale);// ~RRV			if(iMBX == m_iNumMBX - 1) {				MacroBlockMemory** ppmbmTemp = m_rgpmbmAbove;				m_rgpmbmAbove = m_rgpmbmCurr;				m_rgpmbmCurr  = ppmbmTemp;				ppxlcRefY += m_iFrameWidthYxMBSize;				ppxlcRefU += m_iFrameWidthUVxBlkSize;				ppxlcRefV += m_iFrameWidthUVxBlkSize;			}		}	} while( checkResyncMarker() );	// 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 iCurrentVOP_id = g_pNewPredDec->GetCurrentVOP_id();		// temporarily store Vop_id from old NEWPRED object		if (g_pNewPredDec != NULL) delete g_pNewPredDec;		// delete old NEWPRED object		g_pNewPredDec = new CNewPredDecoder();			// make new NEWPRED object		g_pNewPredDec->SetObject(			m_iNumBitsTimeIncr,// RRV modification			m_iNumMBX*MB_SIZE *m_iRRVScale,			m_iNumMBY*MB_SIZE *m_iRRVScale,// ~RRV			pSlicePoint,			m_volmd.bNewpredSegmentType,			m_volmd.fAUsage,			m_volmd.bShapeOnly,			m_pvopcRefQ0,			m_pvopcRefQ1,			m_rctRefFrameY,			m_rctRefFrameUV		);	  	g_pNewPredDec->ResetObject(iCurrentVOP_id); // restore Vop_id in new NEWPRED object			Int i;		Int noStore_vop_id;	// stored Vop_id		// set NEWPRED reference picture memory		g_pNewPredDec->SetQBuf( m_pvopcRefQ0, m_pvopcRefQ1 );		// store decoded picture in  NEWPRED reference picture memory		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);		}	}// ~NEWPRED	delete m_piMCBPC;	delete m_piIntraDC;}Void CVideoObjectDecoder::decodePVOP_DataPartitioning (){	Int iMBX, iMBY;	CMBMode* pmbmd = m_rgmbmd;	CMotionVector* pmv = m_rgmv;	PixelC* ppxlcCurrQY = (PixelC*) m_pvopcRefQ1->pixelsY () + m_iStartInRefToCurrRctY;	PixelC* ppxlcCurrQU = (PixelC*) m_pvopcRefQ1->pixelsU () + m_iStartInRefToCurrRctUV;	PixelC* ppxlcCurrQV = (PixelC*) m_pvopcRefQ1->pixelsV () + m_iStartInRefToCurrRctUV;	Int iCurrentQP  = m_vopmd.intStep;			Int	iVideoPacketNumber = 0;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品资源二区在线| 色94色欧美sute亚洲13| 精品国产乱码久久久久久影片| 视频一区二区三区中文字幕| 欧美伦理电影网| 秋霞午夜鲁丝一区二区老狼| 日韩欧美一二三| 国产一区二区三区在线观看免费| 久久精品一区蜜桃臀影院| 粉嫩欧美一区二区三区高清影视| 欧美激情在线看| 91国产丝袜在线播放| 无码av中文一区二区三区桃花岛| 日韩午夜av电影| 国精品**一区二区三区在线蜜桃| 中文字幕欧美国产| 欧美午夜一区二区三区免费大片| 蜜桃在线一区二区三区| 国产区在线观看成人精品| 99久久777色| 蜜桃91丨九色丨蝌蚪91桃色| 久久久久久**毛片大全| 色偷偷一区二区三区| 日韩极品在线观看| 国产亚洲精品久| 欧美亚洲高清一区| 国产大陆a不卡| 午夜精品福利一区二区三区蜜桃| 精品成a人在线观看| 91麻豆福利精品推荐| 秋霞电影网一区二区| 国产精品国产精品国产专区不片| 欧美日韩精品免费观看视频| 国产成人综合视频| 亚洲电影视频在线| 国产精品久久久久久久久免费相片| 欧美撒尿777hd撒尿| 国产精品538一区二区在线| 亚洲图片一区二区| 欧美激情一区在线| 欧美成人a视频| 在线观看区一区二| 国产69精品久久久久777| 午夜精品福利一区二区三区蜜桃| 欧美激情一区二区三区蜜桃视频| 欧美精品自拍偷拍| 91网站最新地址| 国产不卡视频一区| 麻豆精品在线视频| 午夜精品一区二区三区免费视频| 国产精品成人免费| 久久精品视频在线免费观看| 欧美日产国产精品| 91麻豆视频网站| 处破女av一区二区| 国产一区三区三区| 蜜臀91精品一区二区三区| 亚洲chinese男男1069| 亚洲另类在线一区| 国产精品免费av| 国产日韩欧美制服另类| 日韩免费一区二区| 91精品午夜视频| 欧美伊人精品成人久久综合97 | 亚洲aaa精品| 一区二区三区国产豹纹内裤在线 | 中文字幕一区二区在线播放 | 懂色av一区二区在线播放| 精彩视频一区二区三区| 日本在线播放一区二区三区| 亚洲成人7777| 午夜亚洲国产au精品一区二区| 亚洲欧美日韩中文播放| 国产精品久线观看视频| 国产精品嫩草影院av蜜臀| 国产精品午夜在线| 中文字幕亚洲一区二区va在线| 国产精品天干天干在线综合| 国产亚洲欧美一区在线观看| www日韩大片| 久久综合九色综合欧美就去吻| 欧美不卡一区二区三区四区| 日韩色在线观看| 精品久久久三级丝袜| 亚洲精品一线二线三线无人区| 日韩免费在线观看| 国产午夜精品理论片a级大结局| 久久久午夜电影| 国产精品国产三级国产aⅴ原创| 国产精品毛片久久久久久| 亚洲视频一区在线观看| 有码一区二区三区| 亚洲高清在线视频| 美女诱惑一区二区| 国产成人在线观看免费网站| 99国产一区二区三精品乱码| 91免费在线视频观看| 欧美色倩网站大全免费| 91精品国产免费久久综合| 欧美成人三级电影在线| 久久久久久99久久久精品网站| 国产精品成人网| 亚洲成人精品一区二区| 激情五月播播久久久精品| 成人app软件下载大全免费| 91黄色免费网站| 91精品久久久久久蜜臀| 国产丝袜欧美中文另类| 亚洲欧美另类小说视频| 亚洲mv在线观看| 福利电影一区二区| 欧美综合亚洲图片综合区| 制服丝袜成人动漫| 亚洲国产精品成人综合 | 欧美性大战久久| 欧美刺激脚交jootjob| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 精品成人佐山爱一区二区| 国产欧美va欧美不卡在线| 午夜婷婷国产麻豆精品| 国产激情91久久精品导航| 欧美日韩一区在线| 欧美高清在线精品一区| 三级欧美在线一区| 成人教育av在线| 欧美大片在线观看| 亚洲精品国产成人久久av盗摄 | 色综合久久久久久久久久久| 日韩欧美不卡在线观看视频| 国产精品午夜免费| 久久av中文字幕片| 91黄色小视频| 国产精品日日摸夜夜摸av| 日本欧美一区二区在线观看| 粉嫩aⅴ一区二区三区四区五区 | 国产精品热久久久久夜色精品三区| 亚洲成av人影院| 成人午夜在线视频| 日韩欧美国产综合| 亚洲电影在线播放| 成人av小说网| 久久精品欧美一区二区三区不卡| 亚洲在线视频免费观看| 成人国产精品免费| 久久久久国产成人精品亚洲午夜| 亚洲成人资源网| 91丨porny丨最新| 国产精品色噜噜| 国产成人午夜高潮毛片| 欧美一区二区三区免费在线看 | 99精品久久99久久久久| 国产三级一区二区| 久久99日本精品| 日韩一区二区三区免费看| 夜夜亚洲天天久久| 99这里都是精品| 欧美国产激情一区二区三区蜜月 | 丰满放荡岳乱妇91ww| 欧美电影免费观看高清完整版| 五月婷婷欧美视频| 欧美人与性动xxxx| 亚洲成人黄色小说| 欧美日韩精品欧美日韩精品一综合| 一区二区三区欧美亚洲| 91色|porny| 亚洲激情av在线| 91福利在线观看| 亚洲图片欧美一区| 欧美精品日韩一本| 午夜精品免费在线观看| 欧美高清视频一二三区| 奇米777欧美一区二区| 欧美一区二区三区四区五区| 日韩avvvv在线播放| 欧美一级日韩不卡播放免费| 日本欧美一区二区在线观看| 日韩久久免费av| 韩国一区二区三区| 国产精品午夜免费| 91免费看片在线观看| 亚洲免费观看高清完整版在线观看熊| 91免费国产在线观看| 一区二区三区国产精华| 欧美日韩国产在线播放网站| 视频一区二区中文字幕| 精品久久人人做人人爰| 国产成人免费视| 亚洲黄色免费网站| 欧美精品精品一区| 久久97超碰色| 亚洲欧洲日本在线| 精品视频在线视频| 美女在线视频一区| 国产精品久久久久影院色老大| 99re这里只有精品6| 午夜电影网一区| 久久精品人人做人人综合| www.日韩在线| 日日夜夜精品视频免费| 久久亚洲捆绑美女|