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

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

?? getpic.c

?? DVD轉換到AVI的源代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* Copyright (C) 1996, MPEG Software Simulation Group. All Rights Reserved. */

/*
 * Disclaimer of Warranty
 *
 * These software programs are available to the user without any license fee or
 * royalty on an "as is" basis.  The MPEG Software Simulation Group disclaims
 * any and all warranties, whether express, implied, or statuary, including any
 * implied warranties or merchantability or of fitness for a particular
 * purpose.  In no event shall the copyright-holder be liable for any
 * incidental, punitive, or consequential damages of any kind whatsoever
 * arising from the use of these programs.
 *
 * This disclaimer of warranty extends to the user of these programs and user's
 * customers, employees, agents, transferees, successors, and assigns.
 *
 * The MPEG Software Simulation Group does not represent or warrant that the
 * programs furnished hereunder are free of infringement of any third-party
 * patents.
 *
 * Commercial implementations of MPEG-1 and MPEG-2 video, including shareware,
 * are subject to royalty fees to patent holders.  Many of these patents are
 * general enough such that they are unavoidable regardless of implementation
 * design.
 *
 */

#include "global.h"
#include "getbit.h"

static int cc_table[12] = {
	0, 0, 0, 0, 1, 2, 1, 2, 1, 2, 1, 2
};

/* private prototypes*/
__forceinline static void Update_Picture_Buffers(void);
__forceinline static void picture_data(void);
__forceinline static int slice(int MBAmax);
__forceinline static void macroblock_modes(int *pmacroblock_type, int *pmotion_type,
	int *pmotion_vector_count, int *pmv_format, int *pdmv, int *pmvscale, int *pdct_type);
__forceinline static void Clear_Block(int count);
__forceinline static void Add_Block(int count, int bx, int by, int dct_type, int addflag);
__forceinline static void motion_compensation(int MBA, int macroblock_type, int motion_type,
	int PMV[2][2][2], int motion_vertical_field_select[2][2], int dmvector[2], int dct_type);
__forceinline static void skipped_macroblock(int dc_dct_pred[3], int PMV[2][2][2], 
	int *motion_type, int motion_vertical_field_select[2][2], int *macroblock_type);
__forceinline static int start_of_slice(int *MBA, int *MBAinc, int dc_dct_pred[3], int PMV[2][2][2]);
__forceinline static int decode_macroblock(int *macroblock_type, int *motion_type, int *dct_type,
	int PMV[2][2][2], int dc_dct_pred[3], int motion_vertical_field_select[2][2], int dmvector[2]);
__forceinline static void Decode_MPEG2_Intra_Block(int comp, int dc_dct_pred[]);
__forceinline static void Decode_MPEG2_Non_Intra_Block(int comp);

__forceinline static int Get_macroblock_type(void);
__forceinline static int Get_I_macroblock_type(void);
__forceinline static int Get_P_macroblock_type(void);
__forceinline static int Get_B_macroblock_type(void);
__forceinline static int Get_D_macroblock_type(void);
__forceinline static int Get_coded_block_pattern(void);
__forceinline static int Get_macroblock_address_increment(void);
__forceinline static int Get_Luma_DC_dct_diff(void);
__forceinline static int Get_Chroma_DC_dct_diff(void);

__forceinline static void form_predictions(int bx, int by, int macroblock_type, int motion_type, int PMV[2][2][2], 
	int motion_vertical_field_select[2][2], int dmvector[2]);
static void form_prediction(unsigned char *src[], int sfield, unsigned char *dst[], int dfield, 
	int lx, int lx2, int w, int h, int x, int y, int dx, int dy, int average_flag);
__forceinline static void form_component_prediction(unsigned char *src, unsigned char *dst,
	int lx, int lx2, int w, int h, int x, int y, int dx, int dy, int average_flag);

/* decode one frame */
void Decode_Picture()
{
	if (picture_structure==FRAME_PICTURE && Second_Field)
		Second_Field = 0;

	if (picture_coding_type!=B_TYPE)
	{
		d2v_forward = d2v_backward;
		d2v_backward = d2v_current;
	}

	if (D2V_Flag)
	{
		if ((Frame_Number && picture_structure==FRAME_PICTURE) || Second_Field)
		{
			if (d2v_current.type==B_TYPE)
			{
				fprintf(D2VFile, " %d", d2v_current.trf);
				DetectVideoType(Frame_Number-1, d2v_current.trf);
			}
			else
				switch (d2v_forward.type)
				{
					case P_TYPE:
						fprintf(D2VFile, " %d", d2v_forward.trf);
						DetectVideoType(Frame_Number-1, d2v_forward.trf);
						break;

					case I_TYPE:
						fprintf(D2VFile, "\n7 %d %X", d2v_forward.file, (int)d2v_forward.lba);
						fprintf(D2VFile, " %d", d2v_forward.trf);
						DetectVideoType(Frame_Number-1, d2v_forward.trf);
						break;

					default:
						SetDlgItemText(hDlg, IDC_DEBUG, "P.E.");
						break;
				}
		}
	}
	else
	{
		/* update picture buffer pointers */
		Update_Picture_Buffers();

		/* decode picture data ISO/IEC 13818-2 section 6.2.3.7 */
		picture_data();

		/* write or display current or previously decoded reference frame */
		/* ISO/IEC 13818-2 section 6.1.1.11: Frame reordering */
		if (Frame_Number && (picture_structure==FRAME_PICTURE || Second_Field))
		{
			if (picture_coding_type==B_TYPE)
				Write_Frame(auxframe, d2v_current, Frame_Number-1);
			else
				Write_Frame(forward_reference_frame, d2v_forward, Frame_Number-1);
		}
		else if (process.locate!=LOCATE_RIP && (picture_structure==FRAME_PICTURE || Second_Field))
		{
			Write_Frame(backward_reference_frame, d2v_backward, 0);
			ThreadKill();
		}
	}

	if (picture_structure!=FRAME_PICTURE)
		Second_Field = !Second_Field;

	if (!Second_Field)
		Frame_Number ++;
}

/* reuse old picture buffers as soon as they are no longer needed */
static void Update_Picture_Buffers()
{
	int cc;              /* color component index */
	unsigned char *tmp;  /* temporary swap pointer */

	for (cc=0; cc<3; cc++)
	{
		/* B pictures do not need to be save for future reference */
		if (picture_coding_type==B_TYPE)
			current_frame[cc] = auxframe[cc];
		else
		{
			if (!Second_Field)
			{
				/* only update at the beginning of the coded frame */
				tmp = forward_reference_frame[cc];

				/* the previously decoded reference frame is stored coincident with the 
				   location where the backward reference frame is stored (backwards 
				   prediction is not needed in P pictures) */
				forward_reference_frame[cc] = backward_reference_frame[cc];

				/* update pointer for potential future B pictures */
				backward_reference_frame[cc] = tmp;
			}

			/* can erase over old backward reference frame since it is not used
			   in a P picture, and since any subsequent B pictures will use the 
			   previously decoded I or P frame as the backward_reference_frame */
			current_frame[cc] = backward_reference_frame[cc];
		}

	    if (picture_structure==BOTTOM_FIELD)
			current_frame[cc] += (cc==0) ? Coded_Picture_Width : Chroma_Width;
	}
}

/* decode all macroblocks of the current picture */
/* stages described in ISO/IEC 13818-2 section 7 */
static void picture_data()
{
	int MBAmax;

	/* number of macroblocks per picture */
	MBAmax = mb_width*mb_height;

	if (picture_structure!=FRAME_PICTURE)
		MBAmax>>=1;

	for (;;)
		if (slice(MBAmax)<0)
			return;
}

/* decode all macroblocks of the current picture */
/* ISO/IEC 13818-2 section 6.3.16 */
/* return 0 : go to next slice */
/* return -1: go to next picture */
static int slice(int MBAmax)
{
	int MBA = 0, MBAinc =0, macroblock_type, motion_type, dct_type, ret;
	int dc_dct_pred[3], PMV[2][2][2], motion_vertical_field_select[2][2], dmvector[2];

	if ((ret=start_of_slice(&MBA, &MBAinc, dc_dct_pred, PMV))!=1)
		return ret;

	for (;;)
	{
		/* this is how we properly exit out of picture */
		if (MBA>=MBAmax) return -1;		// all macroblocks decoded

		if (MBAinc==0)
		{
			if (!Show_Bits(23) || Fault_Flag)	// next_start_code or fault
			{
resync:
				if (Fault_Flag)
					SetDlgItemText(hDlg, IDC_DEBUG, "V.E.");

				Fault_Flag = 0;
				return 0;	// trigger: go to next slice
			}
			else /* neither next_start_code nor Fault_Flag */
			{
				/* decode macroblock address increment */
				MBAinc = Get_macroblock_address_increment();
				if (Fault_Flag) goto resync;
			}
		}

		if (MBAinc==1) /* not skipped */
		{
			if (!decode_macroblock(&macroblock_type, &motion_type, &dct_type, PMV,
				dc_dct_pred, motion_vertical_field_select, dmvector))
				goto resync;
		}
		else /* MBAinc!=1: skipped macroblock */
			/* ISO/IEC 13818-2 section 7.6.6 */
			skipped_macroblock(dc_dct_pred, PMV, &motion_type, motion_vertical_field_select, &macroblock_type);

		/* ISO/IEC 13818-2 section 7.6 */
		motion_compensation(MBA, macroblock_type, motion_type, PMV,
							motion_vertical_field_select, dmvector, dct_type);

		/* advance to next macroblock */
		MBA++; MBAinc--;

		if (MBA>=MBAmax) return -1;		// all macroblocks decoded
	}
}

/* ISO/IEC 13818-2 section 6.3.17.1: Macroblock modes */
static void macroblock_modes(int *pmacroblock_type, int *pmotion_type,
							 int *pmotion_vector_count, int *pmv_format,
							 int *pdmv, int *pmvscale, int *pdct_type)
{
	int macroblock_type, motion_type, motion_vector_count;
	int mv_format, dmv, mvscale, dct_type;

	/* get macroblock_type */
	macroblock_type = Get_macroblock_type();
	if (Fault_Flag) return;

	/* get frame/field motion type */
	if (macroblock_type & (MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD))
	{
		if (picture_structure==FRAME_PICTURE)
			motion_type = frame_pred_frame_dct ? MC_FRAME : Get_Bits(2);
		else
			motion_type = Get_Bits(2);
    }
	else if ((macroblock_type & MACROBLOCK_INTRA) && concealment_motion_vectors)
		motion_type = (picture_structure==FRAME_PICTURE) ? MC_FRAME : MC_FIELD;

	/* derive motion_vector_count, mv_format and dmv, (table 6-17, 6-18) */
	if (picture_structure==FRAME_PICTURE)
	{
		motion_vector_count = (motion_type==MC_FIELD) ? 2 : 1;
		mv_format = (motion_type==MC_FRAME) ? MV_FRAME : MV_FIELD;
	}
	else
	{
		motion_vector_count = (motion_type==MC_16X8) ? 2 : 1;
		mv_format = MV_FIELD;
	}
	
	dmv = (motion_type==MC_DMV); /* dual prime */

	/*
	   field mv predictions in frame pictures have to be scaled
	   ISO/IEC 13818-2 section 7.6.3.1 Decoding the motion vectors
	*/
	mvscale = (mv_format==MV_FIELD && picture_structure==FRAME_PICTURE);

	/* get dct_type (frame DCT / field DCT) */
	dct_type = picture_structure==FRAME_PICTURE && !frame_pred_frame_dct
				&& (macroblock_type & (MACROBLOCK_PATTERN|MACROBLOCK_INTRA)) ? Get_Bits(1) : 0;

	/* return values */
	*pmacroblock_type = macroblock_type;
	*pmotion_type = motion_type;
	*pmotion_vector_count = motion_vector_count;
	*pmv_format = mv_format;
	*pdmv = dmv;
	*pmvscale = mvscale;
	*pdct_type = dct_type;
}

/* move/add 8x8-Block from block[comp] to backward_reference_frame */
/* copy reconstructed 8x8 block from block[comp] to current_frame[]
   ISO/IEC 13818-2 section 7.6.8: Adding prediction and coefficient data
   This stage also embodies some of the operations implied by:
   - ISO/IEC 13818-2 section 7.6.7: Combining predictions
   - ISO/IEC 13818-2 section 6.1.3: Macroblock
*/
static void Add_Block(int count, int bx, int by, int dct_type, int addflag)
{
	static const __int64 mmmask_128 = 0x0080008000800080;

	int comp, cc, iincr, bxh, byh;
	unsigned char *rfp;
	short *Block_Ptr;

	for (comp=0; comp<count; comp++)
	{
		Block_Ptr = block[comp];
		cc = cc_table[comp];

		if (cc==0)
		{
			if (picture_structure==FRAME_PICTURE)
			{
				if (dct_type)
				{
					rfp = current_frame[0] + Coded_Picture_Width*(by+((comp&2)>>1)) + bx + ((comp&1)<<3);
					iincr = Coded_Picture_Width<<1;
				}
				else
				{
					rfp = current_frame[0] + Coded_Picture_Width*(by+((comp&2)<<2)) + bx + ((comp&1)<<3);
					iincr = Coded_Picture_Width;
				}
			}
			else
			{
				rfp = current_frame[0] + (Coded_Picture_Width<<1)*(by+((comp&2)<<2)) + bx + ((comp&1)<<3);
				iincr = Coded_Picture_Width<<1;
			}
		}
		else
		{
			if (chroma_format!=CHROMA444)
				bxh = bx >> 1;
			if (chroma_format==CHROMA420)
				byh = by >> 1;

			if (picture_structure==FRAME_PICTURE)
			{
				if (dct_type && chroma_format!=CHROMA420)
				{
					/* field DCT coding */
					rfp = current_frame[cc] + Chroma_Width*(byh+((comp&2)>>1)) + bxh + (comp&8);
					iincr = Chroma_Width<<1;
				}
				else
				{
					/* frame DCT coding */
					rfp = current_frame[cc] + Chroma_Width*(byh+((comp&2)<<2)) + bxh + (comp&8);
					iincr = Chroma_Width;
				}
			}
			else
			{
				/* field picture */
				rfp = current_frame[cc] + (Chroma_Width<<1)*(byh+((comp&2)<<2)) + bxh + (comp&8);
				iincr = Chroma_Width<<1;
			}
		}

		if (addflag)
		{
			__asm
			{
				pxor		mm0, mm0
				mov			eax, [rfp]
				mov			ebx, [Block_Ptr]
				mov			edi, 8
addon:
				movq		mm2, [ebx+8]

				movq		mm3, [eax]
				movq		mm4, mm3

				movq		mm1, [ebx]
				punpckhbw	mm3, mm0

				paddsw		mm3, mm2
				packuswb	mm3, mm0

				punpcklbw	mm4, mm0
				psllq		mm3, 32

				paddsw		mm4, mm1
				packuswb	mm4, mm0

				por			mm3, mm4			
				add			ebx, 16

				sub			edi, 0x01
				movq		[eax], mm3

				add			eax, [iincr]
				cmp			edi, 0x00
				jg			addon
			}
		}
		else
		{
			__asm
			{
				mov			eax, [rfp]
				mov			ebx, [Block_Ptr]
				mov			edi, 8

				pxor		mm0, mm0
				movq		mm7, [mmmask_128]
addoff:
				movq		mm3, [ebx+8]
				movq		mm4, [ebx]

				paddsw		mm3, mm7
				paddsw		mm4, mm7

				packuswb	mm3, mm0
				packuswb	mm4, mm0

				psllq		mm3, 32
				por			mm3, mm4
			
				add			ebx, 16
				sub			edi, 0x01

				movq		[eax], mm3

				add			eax, [iincr]
				cmp			edi, 0x00
				jg			addoff
			}
		}
	}
}

/* set scratch pad macroblock to zero */
static void Clear_Block(int count)
{
	int comp;
	short *Block_Ptr;
	
	for (comp=0; comp<count; comp++)
	{
		Block_Ptr = block[comp];

		__asm
		{
			mov			eax, [Block_Ptr];
			pxor		mm0, mm0;
			movq		[eax+0 ], mm0;
			movq		[eax+8 ], mm0;
			movq		[eax+16], mm0;
			movq		[eax+24], mm0;
			movq		[eax+32], mm0;
			movq		[eax+40], mm0;
			movq		[eax+48], mm0;
			movq		[eax+56], mm0;
			movq		[eax+64], mm0;
			movq		[eax+72], mm0;
			movq		[eax+80], mm0;
			movq		[eax+88], mm0;
			movq		[eax+96], mm0;
			movq		[eax+104],mm0;
			movq		[eax+112],mm0;
			movq		[eax+120],mm0;
		}
	}

	__asm emms;
}

/* ISO/IEC 13818-2 section 7.6 */
static void motion_compensation(int MBA, int macroblock_type, int motion_type, 
								int PMV[2][2][2], int motion_vertical_field_select[2][2],
								int dmvector[2], int dct_type)
{
	int bx, by;
	int comp;

	/* derive current macroblock position within picture */
	/* ISO/IEC 13818-2 section 6.3.1.6 and 6.3.1.7 */
	bx = 16*(MBA%mb_width);
	by = 16*(MBA/mb_width);

	/* motion compensation */
	if (!(macroblock_type & MACROBLOCK_INTRA))
		form_predictions(bx, by, macroblock_type, motion_type, PMV,
						 motion_vertical_field_select, dmvector);

	switch (iDCT_Flag)
	{
		case IDCT_MMX:
			for (comp=0; comp<block_count; comp++)
				MMX_IDCT(block[comp]);
			break;

		case IDCT_FPU:
			__asm emms;
			for (comp=0; comp<block_count; comp++)
				FPU_IDCT(block[comp]);
			break;

		case IDCT_REF:
			__asm emms;
			for (comp=0; comp<block_count; comp++)
				REF_IDCT(block[comp]);
			break;
	}

	Add_Block(block_count, bx, by, dct_type, (macroblock_type & MACROBLOCK_INTRA)==0);

	__asm emms;
}

/* ISO/IEC 13818-2 section 7.6.6 */
static void skipped_macroblock(int dc_dct_pred[3], int PMV[2][2][2], int *motion_type, 
							   int motion_vertical_field_select[2][2], int *macroblock_type)
{
	Clear_Block(block_count);

	/* reset intra_dc predictors */
	/* ISO/IEC 13818-2 section 7.2.1: DC coefficients in intra blocks */
	dc_dct_pred[0]=dc_dct_pred[1]=dc_dct_pred[2]=0;

	/* reset motion vector predictors */
	/* ISO/IEC 13818-2 section 7.6.3.4: Resetting motion vector predictors */
	if (picture_coding_type==P_TYPE)
		PMV[0][0][0]=PMV[0][0][1]=PMV[1][0][0]=PMV[1][0][1]=0;

	/* derive motion_type */
	if (picture_structure==FRAME_PICTURE)
		*motion_type = MC_FRAME;
	else
	{
		*motion_type = MC_FIELD;
		motion_vertical_field_select[0][0] = motion_vertical_field_select[0][1] = 
			(picture_structure==BOTTOM_FIELD);
	}

	/* clear MACROBLOCK_INTRA */
	*macroblock_type&= ~MACROBLOCK_INTRA;
}

/* return==-1 means go to next picture */
/* the expression "start of slice" is used throughout the normative
   body of the MPEG specification */
static int start_of_slice(int *MBA, int *MBAinc,
						  int dc_dct_pred[3], int PMV[2][2][2])
{
	unsigned int code;
	int slice_vert_pos_ext;

	next_start_code();
	code = Get_Bits(32);

	if (code<SLICE_START_CODE_MIN || code>SLICE_START_CODE_MAX)
	{
		// only slice headers are allowed in picture_data
		Fault_Flag = 10;
		return -1;
	}

	/* decode slice header (may change quantizer_scale) */
	slice_vert_pos_ext = slice_header();

	/* decode macroblock address increment */
	*MBAinc = Get_macroblock_address_increment();
	if (Fault_Flag) return -1;

	/* set current location */
	/* NOTE: the arithmetic used to derive macroblock_address below is
	   equivalent to ISO/IEC 13818-2 section 6.3.17: Macroblock */
	*MBA = ((slice_vert_pos_ext<<7) + (code&255) - 1)*mb_width + *MBAinc - 1;
	*MBAinc = 1;	// first macroblock in slice: not skipped

	/* reset all DC coefficient and motion vector predictors */
	/* ISO/IEC 13818-2 section 7.2.1: DC coefficients in intra blocks */
	dc_dct_pred[0]=dc_dct_pred[1]=dc_dct_pred[2]=0;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美另类videos死尸| 亚洲成人激情av| 国产精品国产馆在线真实露脸| 国产亚洲精品bt天堂精选| 亚洲人妖av一区二区| 中文字幕亚洲一区二区va在线| 日本不卡一区二区三区| 亚洲午夜电影网| 国产精品白丝jk黑袜喷水| 色av一区二区| 精品国产伦理网| 亚洲男人电影天堂| 欧美中文一区二区三区| 国产精品久久久久一区二区三区共| 99亚偷拍自图区亚洲| 日韩免费观看2025年上映的电影| 综合久久一区二区三区| 欧美亚洲一区二区在线| 国产区在线观看成人精品| 开心九九激情九九欧美日韩精美视频电影 | 91麻豆免费看片| 精品久久99ma| 午夜视频一区在线观看| 91论坛在线播放| 日韩精品电影一区亚洲| 欧美三级在线播放| 亚洲欧洲无码一区二区三区| 欧洲国内综合视频| 国产真实乱偷精品视频免| 在线成人av影院| 国产成人在线网站| 欧美变态凌虐bdsm| 99久久99精品久久久久久| 国产欧美日韩在线观看| 欧美日韩一区二区在线观看 | 欧美军同video69gay| 国产精品中文字幕欧美| 亚洲一区在线播放| 在线观看免费亚洲| 国产一区二区三区黄视频 | 亚洲欧美成人一区二区三区| 欧美videossexotv100| 91免费国产视频网站| 久久99久久精品| 亚洲精品一线二线三线| 色94色欧美sute亚洲线路一久| 久久99在线观看| 亚洲一区二区三区四区在线观看 | 奇米精品一区二区三区四区| 1024国产精品| 久久久久久久久久美女| 国产91富婆露脸刺激对白| 国产片一区二区| 7777精品伊人久久久大香线蕉的 | 在线免费观看日本一区| 国产精品99久久久久久久女警| 亚洲午夜久久久久久久久电影网 | 久久精品一二三| 日韩一区二区三| 国产成人精品综合在线观看| 水蜜桃久久夜色精品一区的特点| 中文字幕一区二区三区四区不卡| 久久夜色精品一区| 91首页免费视频| 国产99久久久久久免费看农村| 精品一区二区免费| 青青草精品视频| 日韩不卡一区二区| 一区二区成人在线视频| 日韩欧美在线观看一区二区三区| 欧美午夜精品一区二区蜜桃| 在线观看亚洲专区| 91亚洲大成网污www| thepron国产精品| a4yy欧美一区二区三区| 从欧美一区二区三区| 亚洲一区二区三区激情| 亚洲伊人色欲综合网| 亚洲一本大道在线| 亚洲妇熟xx妇色黄| 午夜av电影一区| 男女男精品网站| 蜜桃精品在线观看| 亚洲精品国产精品乱码不99| 欧美一卡二卡三卡| 99视频精品在线| 91香蕉视频黄| 欧美男生操女生| 99麻豆久久久国产精品免费 | 欧美在线观看视频一区二区| 在线观看www91| 欧美人xxxx| 欧美成人性战久久| 久久久久久久久岛国免费| 国产拍揄自揄精品视频麻豆| 亚洲欧洲精品一区二区三区不卡| 亚洲欧美激情在线| 午夜视频在线观看一区二区| 蜜臀av一级做a爰片久久| 国产麻豆午夜三级精品| av午夜一区麻豆| 欧美日本在线观看| 日韩免费成人网| 中文字幕在线观看一区二区| 亚洲自拍偷拍图区| 蜜臀av一区二区在线免费观看| 高清不卡一区二区在线| 色琪琪一区二区三区亚洲区| 国产一区激情在线| 99re这里只有精品首页| 91精品免费在线| 国产区在线观看成人精品 | 九九九精品视频| 99久久777色| 日韩欧美一区在线观看| 中文字幕免费一区| 欧美国产乱子伦| 香蕉加勒比综合久久| 国产一区啦啦啦在线观看| 色94色欧美sute亚洲线路一久| 欧美精品一区二区三区蜜桃 | 91视频观看视频| 欧美人伦禁忌dvd放荡欲情| 久久久九九九九| 日本不卡中文字幕| 91久久精品国产91性色tv| 久久综合九色综合欧美98| 亚洲综合在线视频| 国产成人一区在线| 日韩一级二级三级精品视频| 亚洲丝袜自拍清纯另类| 九九**精品视频免费播放| 欧美日韩视频专区在线播放| 中文字幕成人网| 韩国av一区二区三区| 欧美日韩在线不卡| 亚洲色图一区二区| 国产精品一区2区| 日韩午夜激情av| 亚洲成年人影院| 色丁香久综合在线久综合在线观看| 久久伊人中文字幕| 日本欧美一区二区| 欧美午夜视频网站| 亚洲摸摸操操av| 成人免费不卡视频| 久久精品视频网| 久久er99精品| 欧美成人一区二区三区| 日韩vs国产vs欧美| 欧美日韩国产bt| 亚洲动漫第一页| 欧美日韩一级片网站| 一区二区在线观看视频| 91一区二区三区在线观看| 国产精品卡一卡二卡三| 国产不卡视频一区| 国产欧美日韩三级| 粉嫩av一区二区三区| 国产亚洲精品资源在线26u| 国产一区二区不卡在线| 久久人人97超碰com| 韩国中文字幕2020精品| 精品国产百合女同互慰| 久久国产福利国产秒拍| 日韩女优毛片在线| 精品一区二区三区免费播放 | 欧美激情一区在线| 国产成人在线观看免费网站| 久久精品夜色噜噜亚洲aⅴ| 国产精品影视在线观看| 久久综合五月天婷婷伊人| 精品一区中文字幕| 久久精品日产第一区二区三区高清版 | 成人a免费在线看| 97精品国产露脸对白| 中文字幕一区二区三中文字幕| fc2成人免费人成在线观看播放| 国产精品美女一区二区三区 | 久久综合久久99| 国产呦萝稀缺另类资源| 国产亚洲一区二区三区四区| 成人一区二区视频| 亚洲三级在线看| 日韩视频不卡中文| 国产乱妇无码大片在线观看| 欧美国产综合一区二区| 91在线播放网址| 五月天一区二区| 日韩欧美国产wwwww| 国产mv日韩mv欧美| 亚洲精品国产无天堂网2021| 777欧美精品| 国产成人免费高清| 亚洲国产精品久久艾草纯爱| 日韩精品最新网址| 99久久精品国产一区二区三区| 亚洲主播在线播放| 日韩色视频在线观看| 成人免费黄色在线|