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

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

?? cabac.c

?? Mobile IP VCEG的信道模擬程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
// *************************************************************************************
// *************************************************************************************
// Cabac.c	 CABAC entropy coding routines 
//
// Main contributors (see contributors.h for copyright, address and affiliation details)
//
// Detlev Marpe                    <marpe@hhi.de>
// *************************************************************************************
// *************************************************************************************
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <memory.h>
#include "cabac.h"
#include "global.h"



/************************************************************************
*
*  Name :       create_contexts_MotionInfo()
*
*  Description: Allocates of contexts models for the motion info
*								used for arithmetic encoding 
*
************************************************************************/
MotionInfoContexts* create_contexts_MotionInfo(void)
{
		
	int j;
	MotionInfoContexts *enco_ctx;	
	

  enco_ctx = (MotionInfoContexts*) calloc(1, sizeof(MotionInfoContexts) );
	if( enco_ctx == NULL )
		no_mem_exit(1);

	for (j=0; j<2; j++)
	{
		enco_ctx->mb_type_contexts[j] = (BiContextTypePtr) malloc(NUM_MB_TYPE_CTX  * sizeof( BiContextType ) );
				
		if( enco_ctx->mb_type_contexts[j] == NULL ) 
			no_mem_exit(1);
		
		enco_ctx->mv_res_contexts[j] = (BiContextTypePtr) malloc(NUM_MV_RES_CTX  * sizeof( BiContextType ) );
				
		if( enco_ctx->mv_res_contexts[j] == NULL ) 
			no_mem_exit(1);		
	}

	enco_ctx->ref_no_contexts = (BiContextTypePtr) malloc(NUM_REF_NO_CTX * sizeof( BiContextType ) );
				
	if( enco_ctx->ref_no_contexts == NULL ) 
		no_mem_exit(1);
						
	return enco_ctx;
}  


/************************************************************************
*
*  Name :       create_contexts_TextureInfo()
*
*  Description: Allocates of contexts models for the texture info
*								used for arithmetic encoding
*
************************************************************************/
TextureInfoContexts* create_contexts_TextureInfo(void)
{
		
	int j,k;
	TextureInfoContexts *enco_ctx;	

	enco_ctx = (TextureInfoContexts*) calloc(1, sizeof(TextureInfoContexts) );
	if( enco_ctx == NULL )
		no_mem_exit(1);

	for (j=0; j < 6; j++)
	{
		
		enco_ctx->ipr_contexts[j] = (BiContextTypePtr) malloc(NUM_IPR_CTX  * sizeof( BiContextType ) );
		
		if( enco_ctx->ipr_contexts[j] == NULL ) 
			no_mem_exit(1);
		
	}

	for (k=0; k<2; k++)
		for (j=0; j<3; j++)
		{
			
			enco_ctx->cbp_contexts[k][j] = (BiContextTypePtr) malloc(NUM_CBP_CTX  * sizeof( BiContextType ) );
			
			if( enco_ctx->cbp_contexts[k][j] == NULL ) 
				no_mem_exit(1);
		}

		
	for (j=0; j < NUM_TRANS_TYPE; j++)
	{
		
		enco_ctx->level_context[j] = (BiContextTypePtr) malloc(NUM_LEVEL_CTX  * sizeof( BiContextType ) );
		
		if( enco_ctx->level_context[j] == NULL ) 
			no_mem_exit(1);
		
		
		enco_ctx->run_context[j] = (BiContextTypePtr) malloc(NUM_RUN_CTX  * sizeof( BiContextType ) );
		
		if( enco_ctx->run_context[j] == NULL ) 
			no_mem_exit(1);
		
	}				
	return enco_ctx;
}  


/************************************************************************
*
*  Name :       init_contexts_MotionInfo()
*
*  Description: Initializes an array of contexts models with some pre-defined 
*								counts (ini_flag = 1) or with a flat histogram (ini_flag = 0)
*
************************************************************************/
void init_contexts_MotionInfo(MotionInfoContexts *enco_ctx, int ini_flag)
{
		
	int i,j;
	int scale_factor;

	if ( (img->width*img->height) <=  (IMG_WIDTH * IMG_HEIGHT) ) /*  format <= QCIF */                        
   scale_factor=1;
  else                                      
   scale_factor=2; 


	for (j=0; j<2; j++)
	{		
		if (ini_flag)
		{
			for (i=0; i < NUM_MB_TYPE_CTX; i++)
				biari_init_context(enco_ctx->mb_type_contexts[j] + i,MB_TYPE_Ini[j][i][0]*scale_factor,MB_TYPE_Ini[j][i][1]*scale_factor,MB_TYPE_Ini[j][i][2]*scale_factor);
		}
		else
		{
			for (i=0; i < NUM_MB_TYPE_CTX; i++)
				biari_init_context(enco_ctx->mb_type_contexts[j] + i,1,1,1000);
		}
				
		if (ini_flag)
		{
			for (i=0; i < NUM_MV_RES_CTX; i++)
				biari_init_context(enco_ctx->mv_res_contexts[j] + i,MV_RES_Ini[j][i][0]*scale_factor,MV_RES_Ini[j][i][1]*scale_factor,MV_RES_Ini[j][i][2]*scale_factor);
		}
		else
		{
			for (i=0; i < NUM_MV_RES_CTX; i++)
				biari_init_context(enco_ctx->mv_res_contexts[j] + i,1,1,1000);
		}
	}
								
	if (ini_flag)
	{		
		for (i=0; i < NUM_REF_NO_CTX; i++)
			biari_init_context(enco_ctx->ref_no_contexts + i,REF_NO_Ini[i][0]*scale_factor,REF_NO_Ini[i][1]*scale_factor,REF_NO_Ini[i][2]*scale_factor);
	}
	else
	{
		for (i=0; i < NUM_REF_NO_CTX; i++)
			biari_init_context(enco_ctx->ref_no_contexts + i,1,1,1000);		
	}
}  

/************************************************************************
*
*  Name :       init_contexts_TextureInfo()
*
*  Description: Initializes an array of contexts models with some pre-defined 
*								counts (ini_flag = 1) or with a flat histogram (ini_flag = 0)
*
************************************************************************/
void init_contexts_TextureInfo(TextureInfoContexts *enco_ctx, int ini_flag)
{
		
	int i,j,k;
	int scale_factor;
	 
	if ( (img->width*img->height) <=  (IMG_WIDTH * IMG_HEIGHT) ) /*  format <= QCIF */                        
   scale_factor=1;
  else                                      
   scale_factor=2; 

	for (j=0; j < 6; j++)
	{
		if (ini_flag)
		{
			for (i=0; i < NUM_IPR_CTX; i++)
				biari_init_context(enco_ctx->ipr_contexts[j] + i,IPR_Ini[j][i][0]*scale_factor,IPR_Ini[j][i][1]*scale_factor,IPR_Ini[j][i][2]*scale_factor);
		}
		else
		{
			for (i=0; i < NUM_IPR_CTX; i++)
				biari_init_context(enco_ctx->ipr_contexts[j] + i,2,1,50);
		}
	}

	for (k=0; k<2; k++)
		for (j=0; j<3; j++)
		{	
			if (ini_flag)
			{
				for (i=0; i < NUM_CBP_CTX; i++) 
					biari_init_context(enco_ctx->cbp_contexts[k][j] + i,CBP_Ini[k][j][i][0]*scale_factor,CBP_Ini[k][j][i][1]*scale_factor,CBP_Ini[k][j][i][2]*scale_factor);
			}
			else
			{
				for (i=0; i < NUM_CBP_CTX; i++) 
					biari_init_context(enco_ctx->cbp_contexts[k][j] + i,1,1,100);
			}
		}

		
	for (j=0; j < NUM_TRANS_TYPE; j++)
	{
				
		if (ini_flag)
		{
			for (i=0; i < NUM_LEVEL_CTX; i++)
				biari_init_context(enco_ctx->level_context[j] + i,Level_Ini[j][i][0]*scale_factor,Level_Ini[j][i][1]*scale_factor,Level_Ini[j][i][2]*scale_factor);
		}
		else
		{
			for (i=0; i < NUM_LEVEL_CTX; i++)
				biari_init_context(enco_ctx->level_context[j] + i,2,1,100);
		}
				
		if (ini_flag)
		{
			for (i=0; i < NUM_RUN_CTX; i++)
				biari_init_context(enco_ctx->run_context[j] + i,Run_Ini[j][i][0]*scale_factor,Run_Ini[j][i][1]*scale_factor,Run_Ini[j][i][2]*scale_factor);
		}
		else
		{
			for (i=0; i < NUM_RUN_CTX; i++)
				biari_init_context(enco_ctx->run_context[j] + i,2,1,100);
		}
	}				
}  


/************************************************************************
*
*  Name :       delete_contexts_MotionInfo()
*
*  Description: Frees the memory of the contexts models 
*								used for arithmetic encoding of the motion info.
*
************************************************************************/
void delete_contexts_MotionInfo(MotionInfoContexts *enco_ctx)
{
	
	int j;

	if( enco_ctx == NULL ) 
		return;

	for (j=0; j<2; j++)
	{
		if (enco_ctx->mb_type_contexts[j] != NULL)
			free(enco_ctx->mb_type_contexts[j] );
	
		if (enco_ctx->mv_res_contexts[j]  != NULL)
			free(enco_ctx->mv_res_contexts[j] );
	}

	if (enco_ctx->ref_no_contexts != NULL)
		free(enco_ctx->ref_no_contexts);
	
	free( enco_ctx );
	
	return;
	
}  

/************************************************************************
*
*  Name :       delete_contexts_TextureInfo()
*
*  Description: Frees the memory of the contexts models 
*								used for arithmetic encoding of the texture info.
*
************************************************************************/
void delete_contexts_TextureInfo(TextureInfoContexts *enco_ctx)
{
		
	int j,k;

	if( enco_ctx == NULL ) 
		return;

	for (j=0; j < 6; j++)
	{
		if (enco_ctx->ipr_contexts[j] != NULL)
			free(enco_ctx->ipr_contexts[j]);
	}

	for (k=0; k<2; k++)
		for (j=0; j<3; j++)
		{
			if (enco_ctx->cbp_contexts[k][j] != NULL)
				free(enco_ctx->cbp_contexts[k][j]);
		}

	for (j=0; j < NUM_TRANS_TYPE; j++)
	{
		if (enco_ctx->level_context[j] != NULL)
			free(enco_ctx->level_context[j]);
	
		if (enco_ctx->run_context[j] != NULL)
			free(enco_ctx->run_context[j]);
	}
	free( enco_ctx );
	
	return;
	
}  

/************************************************************************
*
*  Routine      writeSyntaxElement_CABAC
*
*  Description: generates arithmetic code and passes the code to the buffer
*
************************************************************************/
int	writeSyntaxElement_CABAC(SyntaxElement *se, DataPartition *this_dataPart)
{
	int curr_len;
	EncodingEnvironmentPtr eep_dp = &(this_dataPart->ee_cabac);

	curr_len = arienco_bits_written(eep_dp);

	/* perform the actual coding by calling the appropriate method */
	se->writing(se, eep_dp);

	return (se->len = (arienco_bits_written(eep_dp) - curr_len));
}

/****************************************************************************
*
* Function:        writeMB_typeInfo2Buffer_CABAC()
*
* Purpose:         This function is used to arithmetically encode the macroblock
*                  type info of a given MB. 
*
*
***************************************************************************/

void writeMB_typeInfo2Buffer_CABAC(SyntaxElement *se, EncodingEnvironmentPtr eep_dp)
{
	int l;
	int a, b;
	int act_ctx;
	int act_sym;
	int log_sym;
	int mode_sym=0;
	int mask;
	int mode16x16;

	MotionInfoContexts *ctx = (img->currentSlice)->mot_ctx;
	Macroblock *currMB = &img->mb_data[img->current_mb_nr];
	int curr_mb_type = se->value1;
	
	if(img->type == INTRA_IMG)  // INTRA-frame 
	{			
		if (currMB->mb_available[0][1] == NULL)
			b = 0;
		else 
			b = (( (currMB->mb_available[0][1])->mb_type != 0) ? 1 : 0 );
		if (currMB->mb_available[1][0] == NULL)
			a = 0;
		else 
			a = (( (currMB->mb_available[1][0])->mb_type != 0) ? 1 : 0 );
		
		act_ctx = a + 2*b;
		act_sym = curr_mb_type;
		se->context = act_ctx; // store context
				
		if (act_sym==0)	/* 4x4 Intra */	
			biari_encode_symbol(eep_dp, 0, ctx->mb_type_contexts[0] + act_ctx );
		else /* 16x16 Intra */
		{
			biari_encode_symbol(eep_dp, 1, ctx->mb_type_contexts[0] + act_ctx );
			mode_sym=act_sym-1; /* Values in the range of 0...23 */
			act_ctx = 4;
			act_sym = mode_sym/12;
			biari_encode_symbol(eep_dp, (unsigned char) act_sym, ctx->mb_type_contexts[0] + act_ctx ); /* coding of AC/no AC */
			mode_sym = mode_sym % 12;
			act_sym = mode_sym / 4; // coding of cbp: 0,1,2 
			act_ctx = 5;
			if (act_sym==0) 
			{
				biari_encode_symbol(eep_dp, 0, ctx->mb_type_contexts[0] + act_ctx );
			} 
			else 
			{
				biari_encode_symbol(eep_dp, 1, ctx->mb_type_contexts[0] + act_ctx );
				act_ctx=6;
				if (act_sym==1) 
				{
					biari_encode_symbol(eep_dp, 0, ctx->mb_type_contexts[0] + act_ctx );
				}	 
				else 
				{
					
					biari_encode_symbol(eep_dp, 1, ctx->mb_type_contexts[0] + act_ctx );
				}	
				
			}
			mode_sym = mode_sym % 4; /* coding of I pred-mode: 0,1,2,3 */
			act_sym = mode_sym/2;
			act_ctx = 7;
			biari_encode_symbol(eep_dp, (unsigned char) act_sym, ctx->mb_type_contexts[0] + act_ctx );
			act_ctx = 8;
			act_sym = mode_sym%2;
			biari_encode_symbol(eep_dp, (unsigned char) act_sym, ctx->mb_type_contexts[0] + act_ctx );
		}
	}
	else 
	{
		
		if (currMB->mb_available[0][1] == NULL)
			b = 0;
		else 
			b = (( (currMB->mb_available[0][1])->mb_type != 0) ? 1 : 0 );
		if (currMB->mb_available[1][0] == NULL)
			a = 0;
		else 
			a = (( (currMB->mb_available[1][0])->mb_type != 0) ? 1 : 0 );
		
		
		act_sym = curr_mb_type;
				
		if(act_sym>=(mode16x16=(8*img->type+1))) // 16x16 Intra-mode: mode16x16=9 (P-frame) mode16x16=17 (B-frame)
		{
			mode_sym=act_sym-mode16x16;
			act_sym=mode16x16; // 16x16 mode info 
		}
		
		act_sym++;
				
		for (log_sym = 0; (1<<log_sym) <= act_sym; log_sym++);
		log_sym--;
		
		act_ctx = a + 2*b;
		se->context = act_ctx; // store context
		
		if (log_sym==0) 
		{
			biari_encode_symbol(eep_dp, 0, &ctx->mb_type_contexts[1][act_ctx] );
			
		} 
		else 
		{
			// code unary part 
			biari_encode_symbol(eep_dp, 1, &ctx->mb_type_contexts[1][act_ctx] );
			act_ctx=4;
			if (log_sym==1) 
			{
				biari_encode_symbol(eep_dp, 0, &ctx->mb_type_contexts[1][act_ctx ] );
			}	 
			else 
			{
				for(l=0;l<log_sym-1;l++)
				{
					biari_encode_symbol(eep_dp, 1, &ctx->mb_type_contexts[1][act_ctx] );
					if (l==0) act_ctx=5;
				}
				if ( log_sym < (3+((img->type == B_IMG)?1:0)) ) // maximum mode no. is 9 (P-frame) or 17 (B-frame)
					biari_encode_symbol(eep_dp, 0, &ctx->mb_type_contexts[1][act_ctx ] );	
			}
			
			// code binary part 
			act_ctx=6;
			if (log_sym==(3+((img->type == B_IMG)?1:0)) ) log_sym=2; // only 2 LSBs are actually set for mode 7-9 (P-frame) or 15-17 (B-frame)
			mask = (1<<log_sym); // MSB 
			for(l=0;l<log_sym;l++)
			{
				mask >>=1;
				biari_encode_symbol(eep_dp, (unsigned char) (act_sym & mask), &ctx->mb_type_contexts[1][act_ctx] );
			}
		}
				
				
		if(act_sym==(mode16x16+1)) // additional info for 16x16 Intra-mode 
		{
			act_ctx = 7;
			act_sym = mode_sym/12;
			biari_encode_symbol(eep_dp, (unsigned char) act_sym, ctx->mb_type_contexts[1] + act_ctx ); // coding of AC/no AC 
			mode_sym = mode_sym % 12;
			
			act_sym = mode_sym / 4; // coding of cbp: 0,1,2 
			act_ctx = 8;
			if (act_sym==0) 
			{
				biari_encode_symbol(eep_dp, 0, ctx->mb_type_contexts[1] + act_ctx );
			} 
			else 
			{
				biari_encode_symbol(eep_dp, 1, ctx->mb_type_contexts[1] + act_ctx );
				if (act_sym==1) 
				{
					biari_encode_symbol(eep_dp, 0, ctx->mb_type_contexts[1] + act_ctx );
				}	 
				else 
				{
					
					biari_encode_symbol(eep_dp, 1, ctx->mb_type_contexts[1] + act_ctx );
				}	
				
			}
			
			mode_sym = mode_sym % 4; // coding of I pred-mode: 0,1,2,3 
			act_ctx = 9;
			
			act_sym = mode_sym/2;
			biari_encode_symbol(eep_dp, (unsigned char) act_sym, ctx->mb_type_contexts[1] + act_ctx );
			act_sym = mode_sym%2;
			biari_encode_symbol(eep_dp, (unsigned char) act_sym, ctx->mb_type_contexts[1] + act_ctx );
						
		}	
	}
}

/****************************************************************************
*
* Function:        writeIntraPredMode2Buffer_CABAC()
*
* Purpose:         This function is used to arithmetically encode a pair of 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美酷刑日本凌虐凌虐| 热久久国产精品| 成人app网站| 国产欧美一区二区三区沐欲| 国产福利91精品一区二区三区| 欧美久久婷婷综合色| 午夜激情久久久| 欧美一区二区三区播放老司机| 婷婷一区二区三区| 欧美大胆人体bbbb| 国产精品白丝av| 亚洲欧洲精品成人久久奇米网 | 国产精品一区二区三区乱码 | 在线不卡一区二区| 欧美mv日韩mv| 久久精品视频一区| 尤物在线观看一区| 亚洲国产毛片aaaaa无费看| 一区二区三区四区国产精品| 一区二区三区小说| 日韩精品1区2区3区| 国产激情91久久精品导航| 26uuu欧美日本| 亚洲国产成人在线| 91久久人澡人人添人人爽欧美| 天堂蜜桃91精品| 久久这里只精品最新地址| 成人丝袜18视频在线观看| 尤物在线观看一区| 欧美一区二区二区| 成人精品亚洲人成在线| 亚洲va中文字幕| 国产日韩av一区| 欧美午夜电影一区| 国产精品一区二区x88av| 亚洲摸摸操操av| 欧美一区二区三区精品| av成人免费在线| 日韩黄色小视频| 综合久久综合久久| 久久影院午夜片一区| 在线看日韩精品电影| 国产一区二区不卡在线| 亚洲一区二区欧美| 国产蜜臀97一区二区三区| 欧美老女人在线| 一本一道综合狠狠老| 国产乱人伦偷精品视频免下载| 亚洲午夜成aⅴ人片| 中文一区在线播放| 日韩免费福利电影在线观看| 91丝袜美女网| 高清不卡一区二区在线| 免播放器亚洲一区| 一区二区激情视频| 中文字幕乱码亚洲精品一区| 日韩区在线观看| 欧美私人免费视频| 91片在线免费观看| 粉嫩av亚洲一区二区图片| 久久国产视频网| 七七婷婷婷婷精品国产| 亚洲福利视频三区| 亚洲综合在线电影| 国产精品第13页| 中文字幕+乱码+中文字幕一区| 欧美不卡123| 欧美一级欧美三级在线观看| 欧美自拍丝袜亚洲| 91美女视频网站| 91免费观看在线| a4yy欧美一区二区三区| 国产成人免费视频网站高清观看视频| 日本视频中文字幕一区二区三区| 尤物视频一区二区| 亚洲另类色综合网站| 怡红院av一区二区三区| 一区二区三区四区视频精品免费| 中文字幕在线视频一区| 国产精品传媒视频| 亚洲精品一二三| 亚洲精品国产精华液| 一区二区三区色| 亚洲图片欧美视频| 亚洲gay无套男同| 人人精品人人爱| 久久激情五月婷婷| 国产夫妻精品视频| 不卡视频在线看| 99久久国产综合精品女不卡| 色综合久久天天| 欧美日韩国产一级片| 欧美日本一区二区| 日韩西西人体444www| 精品国产伦理网| 中文字幕乱码日本亚洲一区二区| 国产精品无圣光一区二区| 国产精品乱码人人做人人爱| 中文字幕中文字幕在线一区| 亚洲男人的天堂网| 日韩国产精品久久久| 黑人巨大精品欧美一区| 成人国产视频在线观看| 日本道色综合久久| 日韩一二在线观看| 国产亚洲欧美激情| 亚洲人成人一区二区在线观看 | 5858s免费视频成人| 精品少妇一区二区三区在线播放 | 国产亚洲欧美日韩日本| 亚洲人精品一区| 日本vs亚洲vs韩国一区三区二区 | eeuss鲁片一区二区三区在线看| 97久久精品人人澡人人爽| 欧美肥大bbwbbw高潮| 久久久青草青青国产亚洲免观| 自拍偷自拍亚洲精品播放| 五月婷婷综合在线| 国产剧情av麻豆香蕉精品| 94-欧美-setu| 欧美一区午夜视频在线观看| 国产精品美女久久久久aⅴ| 亚洲动漫第一页| 高清国产一区二区三区| 欧美肥大bbwbbw高潮| 国产精品久久久久影院亚瑟| 日本亚洲免费观看| 91福利小视频| 久久久天堂av| 奇米精品一区二区三区在线观看| 波多野结衣亚洲一区| 欧美一区二区国产| 亚洲自拍偷拍欧美| 国产成人亚洲精品狼色在线| 欧美日韩国产美| 国产精品白丝在线| 国产在线精品一区在线观看麻豆| 日本久久精品电影| 国产视频一区二区在线| 日韩精品五月天| av影院午夜一区| 久久人人爽爽爽人久久久| 日韩精品一区第一页| 欧美综合亚洲图片综合区| 亚洲国产成人午夜在线一区| 精品一区在线看| 欧美日本国产视频| 亚洲精品一二三| 播五月开心婷婷综合| 精品少妇一区二区| 亚洲va天堂va国产va久| 色欧美乱欧美15图片| 亚洲国产成人午夜在线一区| 国产又粗又猛又爽又黄91精品| 91精品国产综合久久久久久久| 亚洲影院理伦片| 欧美在线观看一二区| 一区二区三区四区国产精品| 99精品国产91久久久久久| 久久嫩草精品久久久久| 久草中文综合在线| 精品国产免费人成电影在线观看四季 | 国产精品国产三级国产专播品爱网| 久久97超碰色| 日韩欧美黄色影院| 免费久久99精品国产| 日韩一区二区免费在线电影 | 欧美一区二区三区在线观看视频| 亚洲自拍都市欧美小说| 色综合 综合色| 亚洲激情校园春色| 日本福利一区二区| 亚洲国产sm捆绑调教视频| 欧美日韩亚洲综合一区| 亚洲福利一区二区| 欧美美女bb生活片| 免费看精品久久片| 欧美精品一区二区三| 国内欧美视频一区二区 | 7777女厕盗摄久久久| 日本亚洲三级在线| 精品久久一二三区| 国产在线视频不卡二| 亚洲国产高清在线| 99精品国产一区二区三区不卡| 亚洲免费在线看| 精品视频999| 免播放器亚洲一区| 久久蜜桃香蕉精品一区二区三区| 国产成人超碰人人澡人人澡| 国产精品免费av| 欧美最猛性xxxxx直播| 日韩中文字幕一区二区三区| 欧美xxxxx裸体时装秀| 国产jizzjizz一区二区| 亚洲免费视频成人| 欧美一区二区性放荡片| 国产乱码精品一区二区三区av| 国产精品久久综合| 欧美日本一区二区三区|