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

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

?? encoder.c

?? 基于Linux的ffmepg decoder
?? C
?? 第 1 頁 / 共 5 頁
字號:
	  //pCodec->DMA_COMMAND_local[34] = (uint32_t) 0;
	  pCodec->DMA_COMMAND_local[35] = (uint32_t) 0x4B01010; // make it group ID 1, disable this command
	  
      //pCodec->DMA_COMMAND_local[38+DMA_COMMAND_QUEUE_STRIDE] = (uint32_t) (8+1-4) << 24 | 4 << 20;
	  pCodec->DMA_COMMAND_local[39+DMA_COMMAND_QUEUE_STRIDE] = (uint32_t) 0x840010;
	  //pCodec->DMA_COMMAND_local[26+DMA_COMMAND_QUEUE_STRIDE] = (uint32_t) 0;
	  pCodec->DMA_COMMAND_local[27+DMA_COMMAND_QUEUE_STRIDE] = (uint32_t) 0x4B01040; // make it group ID 1, disable this command
	  //pCodec->DMA_COMMAND_local[30+DMA_COMMAND_QUEUE_STRIDE] = (uint32_t) 0;
	  pCodec->DMA_COMMAND_local[31+DMA_COMMAND_QUEUE_STRIDE] = (uint32_t) 0x4B01010; // make it group ID 1, disable this command
	  //pCodec->DMA_COMMAND_local[34+DMA_COMMAND_QUEUE_STRIDE] = (uint32_t) 0;
	  pCodec->DMA_COMMAND_local[35+DMA_COMMAND_QUEUE_STRIDE] = (uint32_t) 0x4B01010; // make it group ID 1, disable this command

	  // set the related DMA commands to move the reference block to local memory
	  // since we use DMA double buffer, but for the very first time, we will move the reference image to 
	  // local memory twice by using the upper part of DMA double buffer
	  // so, let's increment it for just 256 bytes
	  pCodec->DMA_COMMAND_local[0] = ((uint32_t) pEnc->reference->reconstruct.y - (256*XDIM/16) | 0x06);
	  // since we use DMA double buffer, so the increment for Y block of reference image is 512 bytes instead of 256 bytes
	  pCodec->DMA_COMMAND_local[0+DMA_COMMAND_QUEUE_STRIDE] = ((uint32_t) pEnc->reference->reconstruct.y - (256*XDIM/16) + 512 | 0x07);

      pCodec->DMA_COMMAND_local[1] = TRANSLATE_LOCAL_MEMORY_BASE_ADDRESS(REF_Y);
      pCodec->DMA_COMMAND_local[1+DMA_COMMAND_QUEUE_STRIDE] = TRANSLATE_LOCAL_MEMORY_BASE_ADDRESS((uint32_t)REF_Y+32);      
      // local memory frame width is 16 words, and block width is 4 words.
      // system memory frame width is (XDIM*4) words and block width is 32 words(128 bytes).
	  pCodec->DMA_COMMAND_local[2] = ((16+1-4)<<24) | 4 << 20 | ((XDIM*4)-63)<<6 | 32;
	  pCodec->DMA_COMMAND_local[2+DMA_COMMAND_QUEUE_STRIDE] = ((16+1-4)<<24) | 4 << 20 | ((XDIM*4)-63)<<6 | 32;
	  pCodec->DMA_COMMAND_local[3] = 0x4A50000 | 192; // enable Transfer Done flag mask
                                              // Enable DMA start transferring
                                              // Enable chain transfer
                                              // From 2D System memory to 2D Local memory
                                              // transfer 192 words (768 bytes = 3 Y blocks)
      pCodec->DMA_COMMAND_local[3+DMA_COMMAND_QUEUE_STRIDE] = 0x4A50000 | 192; // enable Transfer Done flag mask
                                              // Enable DMA start transferring
                                              // Enable chain transfer
                                              // From 2D System memory to 2D Local memory
                                              // transfer 192 words (768 bytes = 3 Y blocks)


      // since we use DMA double buffer, but for the very first time, we will move the reference image to 
	  // local memory twice by using the upper part of DMA double buffer
	  // so, let's increment it for just 64 bytes
      pCodec->DMA_COMMAND_local[4] = ((uint32_t) pEnc->reference->reconstruct.u - (64*XDIM/16) | 0x04);
      // since we use DMA double buffer, so the increment for U block of reference image is 128 bytes instead of 64 bytes
      pCodec->DMA_COMMAND_local[4+DMA_COMMAND_QUEUE_STRIDE] = ((uint32_t) pEnc->reference->reconstruct.u - (64*XDIM/16) + 128 | 0x05);		//	4 - 7 for Ref U Load Next MB
	  pCodec->DMA_COMMAND_local[5] = TRANSLATE_LOCAL_MEMORY_BASE_ADDRESS(REF_U);
	  pCodec->DMA_COMMAND_local[5+DMA_COMMAND_QUEUE_STRIDE] = TRANSLATE_LOCAL_MEMORY_BASE_ADDRESS((uint32_t)REF_U+16);
	  pCodec->DMA_COMMAND_local[6] = (uint32_t) ((8+1-2)<<24) | 2 << 20 | ((XDIM)-15)<<6 | 8;
	  pCodec->DMA_COMMAND_local[6+DMA_COMMAND_QUEUE_STRIDE] = (uint32_t) ((8+1-2)<<24) | 2 << 20 | ((XDIM)-15)<<6 | 8;	  
	  pCodec->DMA_COMMAND_local[7] = 0x4A50000 | 48;										//  chain enable, 
	  pCodec->DMA_COMMAND_local[7+DMA_COMMAND_QUEUE_STRIDE] = 0x4A50000 | 48;				//  chain enable, 
	
      // since we use DMA double buffer, but for the very first time, we will move the reference image to 
	  // local memory twice by using the upper part of DMA double buffer
	  // so, let's increment it for just 64 bytes
	  pCodec->DMA_COMMAND_local[8] = ((uint32_t) pEnc->reference->reconstruct.v - (64*XDIM/16) | 0x04);		//	16 - 19 for Ref V Load Next MB
	  // since we use DMA double buffer, so the increment for V block of reference image is 128 bytes instead of 64 bytes
	  pCodec->DMA_COMMAND_local[8+DMA_COMMAND_QUEUE_STRIDE] = ((uint32_t) pEnc->reference->reconstruct.v - (64*XDIM/16) +128 | 0x05);		//	16 - 19 for Ref V Load Next MB
	  

	  pCodec->DMA_COMMAND_local[9] = TRANSLATE_LOCAL_MEMORY_BASE_ADDRESS(REF_V);
	  pCodec->DMA_COMMAND_local[9+DMA_COMMAND_QUEUE_STRIDE] = TRANSLATE_LOCAL_MEMORY_BASE_ADDRESS((uint32_t)REF_V+16);
      pCodec->DMA_COMMAND_local[10] = (uint32_t) ((8+1-2)<<24) | 2 << 20 | ((XDIM)-15)<<6 | 8;
      pCodec->DMA_COMMAND_local[10+DMA_COMMAND_QUEUE_STRIDE] = (uint32_t) ((8+1-2)<<24) | 2 << 20 | ((XDIM)-15)<<6 | 8;
      pCodec->DMA_COMMAND_local[11] = 0x4A50000 | 48;					//  chain disable
      pCodec->DMA_COMMAND_local[11+DMA_COMMAND_QUEUE_STRIDE] = 0x4A50000 | 48;					//  chain disable

	  // set the related DMA commands to move the current blocks to local memory
	  // since we use DMA double buffer, so the increment for Y block of current image is 512 bytes instead of 256 bytes
      pCodec->DMA_COMMAND_local[12] = ((uint32_t) pEnc->current1->image.y | 0x07);
      pCodec->DMA_COMMAND_local[12+DMA_COMMAND_QUEUE_STRIDE] = ((uint32_t) pEnc->current1->image.y + 256 | 0x07);
	  pCodec->DMA_COMMAND_local[13] = TRANSLATE_LOCAL_MEMORY_BASE_ADDRESS(CUR_Y0);
	  pCodec->DMA_COMMAND_local[13+DMA_COMMAND_QUEUE_STRIDE] = TRANSLATE_LOCAL_MEMORY_BASE_ADDRESS(CUR_Y1);
	  pCodec->DMA_COMMAND_local[15] = (uint32_t) 0x4A00040; // enable Transfer Done flag mask
	                                                // Enable DMA start transferring
	                                                // Enable chain transfer
	                                                // From sequential System memory to sequential Local memory
	                                                // transfer 0x40 words (256 bytes)
	  pCodec->DMA_COMMAND_local[15+DMA_COMMAND_QUEUE_STRIDE] = (uint32_t) 0x4A00040;
	  
      // since we use DMA double buffer, so the increment for U block of current image is 128 bytes instead of 64 bytes
      pCodec->DMA_COMMAND_local[16] = ((uint32_t) pEnc->current1->image.u | 0x05);
      pCodec->DMA_COMMAND_local[16+DMA_COMMAND_QUEUE_STRIDE] = ((uint32_t) pEnc->current1->image.u + 64 | 0x05);
      pCodec->DMA_COMMAND_local[17] = TRANSLATE_LOCAL_MEMORY_BASE_ADDRESS(CUR_U0);
      pCodec->DMA_COMMAND_local[17+DMA_COMMAND_QUEUE_STRIDE] = TRANSLATE_LOCAL_MEMORY_BASE_ADDRESS(CUR_U1);
	  pCodec->DMA_COMMAND_local[19] = (uint32_t) 0x4A00010; // enable Transfer Done flag mask
	                                                // Enable DMA start transferring
	                                                // Enable chain transfer
	                                                // From sequential System memory to sequential Local memory
	                                                // transfer 0x10 words (64 bytes)
	  pCodec->DMA_COMMAND_local[19+DMA_COMMAND_QUEUE_STRIDE] = (uint32_t) 0x4A00010;
	  
	  // since we use DMA double buffer, so the increment for V block of current image is 128 bytes instead of 64 bytes
	  pCodec->DMA_COMMAND_local[20] = ((uint32_t) pEnc->current1->image.v | 0x05);
	  pCodec->DMA_COMMAND_local[20+DMA_COMMAND_QUEUE_STRIDE] = ((uint32_t) pEnc->current1->image.v + 64  | 0x05);
	  pCodec->DMA_COMMAND_local[21] = TRANSLATE_LOCAL_MEMORY_BASE_ADDRESS(CUR_V0);
	  pCodec->DMA_COMMAND_local[21+DMA_COMMAND_QUEUE_STRIDE] = TRANSLATE_LOCAL_MEMORY_BASE_ADDRESS(CUR_V1);
      pCodec->DMA_COMMAND_local[23] = (uint32_t) 0x4A00010; // enable Transfer Done flag mask
	                                                // Enable DMA start transferring
	                                                // Enable chain transfer
	                                                // From sequential System memory to sequential Local memory
	                                                // transfer 0x10 words (64 bytes)
	  pCodec->DMA_COMMAND_local[23+DMA_COMMAND_QUEUE_STRIDE] = (uint32_t) 0x4A00010;

      // prepare the DMA commands for loading predictor
	  pCodec->DMA_COMMAND_local[36] = (uint32_t) pCodec->pred_value_phy;  //	predictor
	  pCodec->DMA_COMMAND_local[36+	DMA_COMMAND_QUEUE_STRIDE] = (uint32_t) (pCodec->pred_value_phy);				//	predictor
	  pCodec->DMA_COMMAND_local[37] = TRANSLATE_LOCAL_MEMORY_BASE_ADDRESS(LOCAL_PREDICTOR0);
	  pCodec->DMA_COMMAND_local[37+DMA_COMMAND_QUEUE_STRIDE] = TRANSLATE_LOCAL_MEMORY_BASE_ADDRESS(LOCAL_PREDICTOR0);
	  pCodec->DMA_COMMAND_local[39] = (uint32_t) 0x840010;  // disable Transfer Done flag mask
	                                                // Enable DMA start transferring
	                                                // Disable chain transfer
	                                                // From sequqntial System memory to 2D Local memory
	                                                // transfer 0x10 words (64 bytes)
	  pCodec->DMA_COMMAND_local[39+DMA_COMMAND_QUEUE_STRIDE] = (uint32_t) 0x840010;
	  
	  pCodec->DMA_COMMAND_local[24] = ((uint32_t) pEnc->current1->reconstruct.y + 256) | 0x07;
      pCodec->DMA_COMMAND_local[24+DMA_COMMAND_QUEUE_STRIDE] = ((uint32_t) pEnc->current1->reconstruct.y) | 0x07;
      pCodec->DMA_COMMAND_local[28] = ((uint32_t) pEnc->current1->reconstruct.u + 64) | 0x05;
	  pCodec->DMA_COMMAND_local[28+DMA_COMMAND_QUEUE_STRIDE] = ((uint32_t) pEnc->current1->reconstruct.u) | 0x05;
	  pCodec->DMA_COMMAND_local[32] = ((uint32_t) pEnc->current1->reconstruct.v + 64) | 0x05;
	  pCodec->DMA_COMMAND_local[32+DMA_COMMAND_QUEUE_STRIDE] = ((uint32_t) pEnc->current1->reconstruct.v) | 0x05;
	  
      // begin to move the local DMA commands (from 0th to 0+40(0x1C)-1=39th)
      // to the system memory and start DMA procedure..
	  DMA_MOVE(0, 0x4B00028)    // enable Transfer Done flag mask
                                // Enable DMA start transferring
                                // Enable chain transfer
                                // From sequential Local memory to sequential System memory
                                // transfer 0x28(40) words

	RTL_DEBUG_OUT(0x95000000 | (uint32_t) pCodec->pred_value_phy)

	pEnc->current1->fcode = pEnc->mbParam.m_fcode;

	READ_ASADR(*pBits)						//	64 byte
	READ_BALR(x)							//	compressed data in local memory (words)
	READ_VOADR(y)							//	compressed data in local memory (bits)
	x = (x & 0x3c);
	y = y & 0xff;
	bit_header = y + x*8;							//	total bits in local memory

	pEnc->current1->coding_type = P_VOP;
	if (pEnc->mbParam.h263) {
		pEnc->mbParam.m_rounding_type = 0;
		pEnc->current1->rounding_type = pEnc->mbParam.m_rounding_type;
		BitstreamWriteShortHeader(&pEnc->mbParam, pEnc->current1, 1,pEnc->pCodec);
	} else {
		pEnc->mbParam.m_rounding_type = 1 - pEnc->mbParam.m_rounding_type;
		pEnc->current1->rounding_type = pEnc->mbParam.m_rounding_type;
		if (vol_header)
			BitstreamWriteVolHeader(&pEnc->mbParam, pEnc->current1,pEnc->pCodec);
		BitstreamWriteVopHeader(&pEnc->mbParam, pEnc->current1, 1,pEnc->pCodec);
	}
	
	
    // check DMA is done
	POLL_MARKER_S
	while((pmdma->Status & 0x1) == 0);
	POLL_MARKER_E
	
	// we just want to move the the reference image again, so we disable the chain
	pCodec->DMA_COMMAND_local[1] = TRANSLATE_LOCAL_MEMORY_BASE_ADDRESS((uint32_t)REF_Y + 16);
	pCodec->DMA_COMMAND_local[5] = TRANSLATE_LOCAL_MEMORY_BASE_ADDRESS((uint32_t)REF_U + 8);
	pCodec->DMA_COMMAND_local[9] = TRANSLATE_LOCAL_MEMORY_BASE_ADDRESS((uint32_t)REF_V + 8);
    pCodec->DMA_COMMAND_local[11] = 0x850000 | 48;

	// begin to move the reference image to local memory again (from 0th to 0+12(0xC)-1=11th)
    // by using the upper part of DMA command buffer
	DMA_MOVE(0, 0x4B0000C)  // enable Transfer Done flag mask
                            // Enable DMA start transferring
                            // Enable chain transfer
                            // From sequential Local memory to sequential System memory
                            // transfer 0xC(12) words 


    // the reason why we set the MCCADDR register just here for once is because during
    // P-frame encoding , unlike I-frame encoding , while ME engine is activated, the
    // ME engine will copy the current blocks to the address that was set by MCCADDR
    // register by the way.
	SET_MCCADDR(CUR_Y2)			
	SET_QAR(DZQAR)	    // quantization table

	RTL_DEBUG_OUT(0x91000000)

	pCodec->even_odd_1 = 0;
	pCodec->even_odd_I = 0;
	pCodec->acdc_status = 7;

    pCodec->triple_buffer_selector = 0;

	
	pMB = pEnc->current1->mbs;
	pMB->quant = pEnc->current1->quant;
	// initialize Raddr and Raddr23 in word address
	pCodec->Raddr = (((uint32_t) REF_Y + 64*16) >> 2) & 0xfff;
	pCodec->Raddr23 = (((uint32_t) REF_Y + 64*(16+8)) >> 2) & 0xfff; //for block 2,3
	
	#ifdef DUMP_PMV_RESULT                
    fprintf(pmv_result_file,"Macroblock %d (x=%d,y=%d)\n",0,0,0);
    #endif
    

    bIntra = MotionEstimation_block0(pMB,pEnc);

	
	#ifdef DUMP_ME_RESULT
      fprintf(me_result_file,"Macroblock %d (x=%d,y=%d) :",0,0,0);      

	  if(pEnc->mbParam.enable_4mv)
        fprintf(me_result_file,"0x%04x, 0x%04x, 0x%04x, 0x%04x, 0x%04x, 0x%04x, 0x%04x, 0x%04x\n",(pMB->mv16x_0&0x07f), (pMB->mv16y_0&0x07f), (pMB->mv16x_1&0x07f), (pMB->mv16y_1&0x07f), (pMB->mv16x_2&0x07f), (pMB->mv16y_2&0x07f), (pMB->mv16x_3&0x07f), (pMB->mv16y_3&0x07f));
      else
        // to be compatible with C Model encoder's output format
        fprintf(me_result_file,"0x%04x, 0x%04x, 0x%04x, 0x%04x, 0x%04x, 0x%04x, 0x%04x, 0x%04x\n",(pMB->mv16x_3&0x07f), (pMB->mv16y_3&0x07f), (pMB->mv16x_3&0x07f), (pMB->mv16y_3&0x07f), (pMB->mv16x_3&0x07f), (pMB->mv16y_3&0x07f), (pMB->mv16x_3&0x07f), (pMB->mv16y_3&0x07f));
    #endif

	RTL_DEBUG_OUT(0x92000000)
	
	x = 1;
	data_64b = 2;
  	for (y = 0; y < pEnc->mbParam.mb_height; y++) {
		for ( ; x < pEnc->mbParam.mb_width; x++) {
			pMB->quant = pEnc->current1->quant;
            if (pEnc->mbParam.resyn==1)
			{
			  // for resync marker, since we should set the bound for PMV (performed
			  // by hardware) once the resync marker is enabled, so we set the bit 3 of MECTL 
			  // register to notify the hardware
			  if(x==0) pCodec->ME_COMMAND|=8;
  		        if (!pEnc->mbParam.h263)
				{
					if ((y!=0) & (x==1))
					{
					    // In core_version_1 ,the hardware register (CPSTS) did not provide the
				        // bit to check whether the VLC engine is done or not. Without the bit
				        // potentially, the follwing codes in core_version_1 will cause bitstream
				        // buffer contention if we want to insert the resync marker to bitstream
				        // buffer while VLC is not done and still accessing the same bitstream 
				        // buffer at the same time. Therefore, core_vesion_2 hardware has 
				        // provided another bit on bit15 of CPSTS register to let software check 
				        // the VLC done status in order to avoid bitstream buffer contention.
				        
					    // check whether the VLC is done or not
                        // CPSTS register is at address 0x10028
                        int32_t cpsts;
 	                    do {
	                      READ_CPSTS(cpsts)
	                    } while (!(cpsts&0x08000));
	                    
						BitstreamPadAlways(pCodec);
						BitstreamPutBits(VIDO_RESYN_MARKER, 17,pCodec);
						BitstreamPutBits((x-1) + y*pEnc->mbParam.mb_width, log2bin(pEnc->mbParam.mb_width *  pEnc->mbParam.mb_height - 1),pCodec);
						BitstreamPutBits(pMB->quant, 5,pCodec);
						BitstreamPutBit(0,pCodec);
					}
				}
				else
				{
					if ((y!=0) & (x==1))
					{
					    // In core_version_1 ,the hardware register (CPSTS) did not provide the
				        // bit to check whether the VLC engine is done or not. Without the bit
				        // potentially, the follwing codes in core_version_1 will cause bitstream
				        // buffer contention if we want to insert the resync marker to bitstream
				        // buffer while VLC is not done and still accessing the same bitstream 
				        // buffer at the same time. Therefore, core_vesion_2 hardware has 
				        // provided another bit on bit15 of CPSTS register to let software check 
				        // the VLC done status in order to avoid bitstream buffer contention.
                        
					    // check whether the VLC is done or not
                        // CPSTS register is at address 0x10028
                        int32_t cpsts;
 	                    do {
	                      READ_CPSTS(cpsts)
	                    } while (!(cpsts&0x08000));
                          
						BitstreamPutBits(VIDO_RESYN_MARKER, 17,pCodec);
						BitstreamPutBits(y, 5,pCodec);
						BitstreamPutBits(0, 2,pCodec);		// ID
						BitstreamPutBits(pMB->quant, 5,pCodec);
					}
				}
			}
			pMB_mc = pMB;
			pMB++;
			pCodec->even_odd_1 ^= 1;
			pCodec->triple_buffer_selector = (++pCodec->triple_buffer_selector) % 3;
            
			RTL_DEBUG_OUT(0x91000000 | y << 12 | x)
			
			#ifdef DUMP_PMV_RESULT                
            fprintf(pmv_result_file,"Macroblock %d (x=%d,y=%d)\n",x+y*pEnc->mbParam.mb_width,x,y);
            #endif
            bIntra = MotionEstimation(pMB, pMB_mc, x, y, &pEnc->mbParam, pEnc, data_64b);
			#ifdef DUMP_ME_RESU

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美激情一区不卡| 国产网站一区二区三区| 欧美一三区三区四区免费在线看| 日韩欧美综合一区| 欧美精品一区在线观看| 国产成人自拍网| www.亚洲免费av| 欧美日韩一二区| 国产精品国产a| 日韩av一级片| 91免费看`日韩一区二区| 日韩免费看网站| 亚洲特级片在线| 国产乱人伦精品一区二区在线观看| 99久久精品久久久久久清纯| 欧美一区二区高清| 亚洲精选在线视频| 国产高清在线精品| 91精品国产高清一区二区三区蜜臀| 国产精品美女久久久久高潮| 婷婷开心激情综合| 色综合视频在线观看| 久久综合久久鬼色中文字| 亚洲午夜精品在线| thepron国产精品| 亚洲欧美另类小说| 国产精品一区一区| 91精品国产综合久久香蕉的特点| 亚洲视频你懂的| 不卡电影一区二区三区| 久久久亚洲精品一区二区三区 | 偷窥少妇高潮呻吟av久久免费| 东方欧美亚洲色图在线| 日韩欧美二区三区| 另类小说一区二区三区| 欧美日韩一区不卡| 亚洲精品视频观看| 96av麻豆蜜桃一区二区| 中文字幕 久热精品 视频在线 | 艳妇臀荡乳欲伦亚洲一区| 九九国产精品视频| 5月丁香婷婷综合| 日韩在线观看一区二区| 精品视频资源站| 亚洲福中文字幕伊人影院| 色噜噜狠狠一区二区三区果冻| 成人免费在线视频| 国产传媒欧美日韩成人| 国产精品丝袜久久久久久app| 国产成人精品三级| 国产欧美精品在线观看| 国产999精品久久| 亚洲国产成人私人影院tom| 国产91清纯白嫩初高中在线观看| 国产欧美精品国产国产专区| 国产乱码一区二区三区| 欧美激情在线一区二区| 成人精品视频一区二区三区| 国产精品毛片久久久久久久| 99精品热视频| 一区二区三区不卡在线观看| 欧美视频一区在线观看| 性感美女久久精品| 精品久久国产字幕高潮| 国产永久精品大片wwwapp| 中文字幕免费不卡在线| 99久久伊人精品| 性欧美大战久久久久久久久| 欧美成人乱码一区二区三区| 国产成人av一区二区| 国产欧美日韩在线观看| 欧洲视频一区二区| 蜜臀av国产精品久久久久| 久久久久久综合| 91色视频在线| 日韩高清在线不卡| 欧美激情一区二区在线| 欧美综合视频在线观看| 免费视频最近日韩| 日韩一区二区在线看| 日韩国产欧美在线播放| 欧美电影免费观看高清完整版在| www.亚洲色图| 久久99国产精品尤物| 久久在线观看免费| 色综合一区二区| 亚洲二区在线视频| 欧美精品一区二区三区蜜桃| 国产suv精品一区二区6| 一区二区三区精品| 精品乱人伦小说| 成人深夜在线观看| 亚洲一区二区精品视频| 日韩欧美一级二级| 色偷偷成人一区二区三区91| 国产在线精品免费| 亚洲午夜精品在线| 国产精品美女久久久久av爽李琼| 91精品国产综合久久国产大片| 成人av动漫在线| 久久国产精品72免费观看| 亚洲男同性恋视频| 久久久精品免费观看| 欧美高清视频在线高清观看mv色露露十八| 国产精品99久久久久久有的能看| 天天综合日日夜夜精品| 国产精品福利影院| 欧美精品一区二区精品网| 在线观看日韩电影| 99久久婷婷国产综合精品| 国产综合一区二区| 日本在线观看不卡视频| 一区二区三区国产精华| 亚洲欧洲日本在线| 欧美激情综合在线| 欧美日韩国产大片| 成人综合婷婷国产精品久久蜜臀| 国产在线精品一区二区夜色| 蜜臀久久久久久久| 香港成人在线视频| 亚洲一区二区精品久久av| 综合久久国产九一剧情麻豆| 欧美国产丝袜视频| 国产日韩视频一区二区三区| 2014亚洲片线观看视频免费| 91精品欧美福利在线观看| 欧美日韩免费高清一区色橹橹| 91丨国产丨九色丨pron| 99久久久久久| 色综合久久久久久久久| 99久久精品免费| 99re在线精品| 日本黄色一区二区| 欧美午夜宅男影院| 欧美日本国产视频| 欧美一区二区美女| 日韩一区二区三区av| 日韩女同互慰一区二区| 久久免费国产精品| 国产偷国产偷精品高清尤物 | 91久久线看在观草草青青| 99久久国产综合精品女不卡| 97aⅴ精品视频一二三区| 色哟哟国产精品| 欧美午夜片在线观看| 91精品国产色综合久久不卡电影| 日韩一本二本av| 26uuu久久天堂性欧美| 国产三区在线成人av| 中文字幕亚洲精品在线观看 | 制服丝袜亚洲播放| 日韩欧美国产综合一区 | 国产麻豆午夜三级精品| 福利视频网站一区二区三区| av欧美精品.com| 欧美性受xxxx黑人xyx性爽| 在线观看一区二区精品视频| 欧美巨大另类极品videosbest| 在线播放中文字幕一区| 精品播放一区二区| 久久亚洲精品国产精品紫薇| 日本一二三不卡| 日韩理论片中文av| 亚洲一区免费观看| 另类成人小视频在线| 国产.精品.日韩.另类.中文.在线.播放 | 免费欧美高清视频| 国产99一区视频免费| 欧美年轻男男videosbes| 日韩精品中文字幕一区| 中文字幕一区二区三区四区不卡| 亚洲国产日产av| 国产在线一区二区| 欧美最新大片在线看| 国产欧美一区二区精品忘忧草| 亚洲手机成人高清视频| 韩国欧美一区二区| 欧美手机在线视频| 亚洲国产岛国毛片在线| 视频精品一区二区| 成人av午夜电影| 欧美成人a视频| 自拍偷自拍亚洲精品播放| 亚洲电影视频在线| 国产91精品入口| 欧美一级xxx| 日本一道高清亚洲日美韩| 色哟哟一区二区在线观看 | 国产成a人无v码亚洲福利| 欧美久久一二区| 国产视频一区在线播放| 亚洲色图视频网站| 精品一区二区免费在线观看| 在线免费不卡视频| 久久众筹精品私拍模特| 亚洲亚洲人成综合网络| 在线观看国产一区二区| 亚洲视频在线一区二区| 床上的激情91.| 国产欧美日韩在线观看|