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

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

?? mjpeg_avi_filewriter.c

?? ADI blackfin DSP的基于device friver的jpeg壓縮算法
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*****************************************************************************
Copyright(c) 2005 Analog Devices, Inc.  All Rights Reserved. This software is 
proprietary and confidential to Analog Devices, Inc. and its licensors.
******************************************************************************

$RCSfile: MJPEG_AVI_FileWriter.c,v $
$Revision: 1.1 $
$Date: 2006/07/17 07:44:02 $

Project:	MJPEG_AVI MOVING IMAGE CODEC
Title:		MJPEG_AVI Main API
Author(s):	CJ
Revised by: 

Description:
Application Programming Interface code for MJPEG_AVI library 

References:
	
******************************************************************************
Tab Setting:			4
Target Processor:		Blackfin
Target Tools Revision:	ccblkfn		C/C++ compiler					7.0.3.2
						easmblkfn	BlackFin assembler				2.6.3.4
						elfar		ELF Librarian/Archive Utility	4.4.1.2
						linker		Linker							3.2.1.0
******************************************************************************

Modification History:
====================
$Log: MJPEG_AVI_FileWriter.c,v $
Revision 1.1  2006/07/17 07:44:02  bmk
JPEG-MJPEG User access files


******************************************************************************/

#include <stdio.h> 
#include <stdlib.h>
#include "MJPEG_AVI_FileWriter.h"
#include "JPEG_memalloc.h"


#pragma align 4
section ("sdram0_bank1_cache")
static char fileiobuff[16384];	// fileio buffer (in  cached SDRAM)


/**/
/* Defines */
/* TEMP_FILE_NAME: Valid pathname for temp file to hold AVI header info */ 
#define TEMP_FILE_NAME "AVIWRITE_TEMP.tmp"

/**/
/* Evaluation version limiting 								*/
/* Limit evaluation version to encoding/decoding 100 frames */
/* Define ISEVALUATION in project to activate 				*/
#ifdef ISEVALUATION
#define EVALUATIONMAXFRAMES		100			
#warning *** EVALUATION MODE - Number of encoding/decoding frames is limited ***
#endif
#ifdef MJPEGREWIND 
#include <string.h>
unsigned  RIFFHDR[58] = {
		MJPEG_AVI_FOURCC('R','I','F','F'),	0,//MJPEG_AVI_FOURCC('0','0','0','0'),
		MJPEG_AVI_FOURCC('A','V','I',' '), 	MJPEG_AVI_FOURCC('L','I','S','T'), 	196,  
    	MJPEG_AVI_FOURCC('h','d','r','l'), 	MJPEG_AVI_FOURCC('a','v','i','h'), 
    	sizeof(MJPEG_AVI_MainAVIHeader), 0, 0,	//10    	
    	0, 	MJPEG_AVIF_HASINDEX,     	0, 	0, 	0, 	0,  0, 0, 0, 0, //20    	
    	0, 0, MJPEG_AVI_FOURCC('L','I','S','T'), 
    	sizeof(MJPEG_AVI_StreamHeader) + sizeof(tMJPEG_AVI_BITMAPINFO) + 20,     	
    	MJPEG_AVI_FOURCC('s','t','r','l'), 	MJPEG_AVI_FOURCC('s','t','r','h'), 
    	sizeof(MJPEG_AVI_StreamHeader), 
    	MJPEG_AVI_FOURCC('v','i','d','s'), 	MJPEG_AVI_FOURCC('M','J','P','G'), 0,//30
    	0,0,1,0,0,0,0,0,0,0,//40
    	0,	MJPEG_AVI_FOURCC('s','t','r','f'), sizeof(tMJPEG_AVI_BITMAPINFO),
    	sizeof(tMJPEG_AVI_BITMAPINFOHEADER),0,0,0x00180001,
    	MJPEG_AVI_FOURCC('M','J','P','G'),0,0,//50
    	0,0,0,0,
    	MJPEG_AVI_FOURCC('L','I','S','T'), 0,//    	MJPEG_AVI_FOURCC('0','0','0','0'), 
    	MJPEG_AVI_FOURCC('m','o','v','i'), 0};       	
MJPEG_AVI_INDEXENTRY lIndexEntry = {0,0,0,0}; 
unsigned ltmp[2]; 
#endif
/*
*******************************************************************************
Name            : MJPEG_AVI_OpenFileWrite
Description     : Opens an MJPEG AVI file output file for encoding
Parameter       : Pointer to the output file handle
				: Pointer to the null-terminated filename
Return Value    : MJPEG_AVI_RETURN_OK if file opened OK
				  MJPEG_AVI_RETURN_ERROR otherwise
*******************************************************************************
*/
#ifndef MJPEGREWIND    
section ("MJPEGENC_P0") // All code
int32 MJPEG_AVI_OpenFileWrite(uint32 *pAVIFileHandleParam, uint8 *fileName)
{
    FILE *fp, *fp_index;

    uint32 lIndex, ListhdrlChunkLength, avihChunkLength;
    tMJPEG_AVI_FILEHANDLE *pAVIFileHandle = (tMJPEG_AVI_FILEHANDLE *)pAVIFileHandleParam;

    
    *pAVIFileHandle = (tMJPEG_AVI_FILEHANDLE) malloc(sizeof(tMJPEG_AVI_FileWrite));
	fp = (FILE*) fopen((char*)fileName,"wb");
    if( fp == NULL)
    {
        goto RETURN_ERROR;
    }

    setvbuf((FILE*)fp, fileiobuff, _IOLBF, sizeof(fileiobuff));

    (*pAVIFileHandle)->filePtr = fp;
    if(fwrite("RIFF0000AVI ",1,12,fp) != 12)
	{
        goto RETURN_ERROR;
    }
    
   
    (*pAVIFileHandle)->ListmoviChunkOffset = 0;
    (*pAVIFileHandle)->writingDataStarted = 0;
    (*pAVIFileHandle)->avih.dwMicroSecPerFrame = 0;
    (*pAVIFileHandle)->avih.dwMaxBytesPerSec = 0;
    (*pAVIFileHandle)->avih.dwPaddingGranularity = 0;
    (*pAVIFileHandle)->avih.dwFlags = MJPEG_AVIF_HASINDEX;
    (*pAVIFileHandle)->avih.dwTotalFrames = 0;
    (*pAVIFileHandle)->avih.dwInitialFrames = 0;
    (*pAVIFileHandle)->avih.dwStreams = 0;
    (*pAVIFileHandle)->avih.dwSuggestedBufferSize = 0;
    (*pAVIFileHandle)->avih.dwWidth = 0;
    (*pAVIFileHandle)->avih.dwHeight = 0;


	for(lIndex = 0; lIndex < 4; lIndex++)
    {
        (*pAVIFileHandle)->avih.dwReserved[lIndex] = 0;
    }

    ListhdrlChunkLength = 0;
    (*pAVIFileHandle)->ListhdrlChunkOffset = ftell(fp);
    if(fwrite("LIST",1,4,fp) != 4)
    {
        goto RETURN_ERROR;
    }
    if(fwrite(&ListhdrlChunkLength,1,4,fp) != 4)
    {
        goto RETURN_ERROR;
    }
    
    if(fwrite("hdrl",1,4,fp) != 4)
	{
        goto RETURN_ERROR;
    }
    
    avihChunkLength = sizeof(MJPEG_AVI_MainAVIHeader);
    (*pAVIFileHandle)->avihChunkOffset = ftell(fp);
    if(fwrite("avih",1,4,fp) != 4)
    {
        goto RETURN_ERROR;
    }
    if(fwrite(&avihChunkLength,1,4,fp) != 4)
    {
        goto RETURN_ERROR;
    }
    if(fwrite(&((*pAVIFileHandle)->avih),1,sizeof(MJPEG_AVI_MainAVIHeader),fp) != sizeof(MJPEG_AVI_MainAVIHeader))
    {
        goto RETURN_ERROR;
    }    
	fp_index = fopen(TEMP_FILE_NAME,"wb+");
	if( fp_index == NULL)
    {
        goto RETURN_ERROR;
    }

	(*pAVIFileHandle)->indexFilePtr = fp_index;
	if(fwrite("idx10000",1,8,fp_index) != 8)
	{
        goto RETURN_ERROR;
    }
    return (MJPEG_AVI_RETURN_OK);

RETURN_ERROR :

    if(fp != NULL)
    {
        fclose(fp);
    }
    if(fp_index != NULL)
    {
        fclose(fp_index);
    }
    free(*pAVIFileHandle);
    *pAVIFileHandle = NULL;
    return MJPEG_AVI_RETURN_ERROR;
}
#else
section ("MJPEGENC_P0") 
int32 MJPEG_AVI_OpenFileWrite(uint32 *pAVIFileHandleParam, uint8 *fileName,tJpegParam *ImageParam, uint32 FrameRate) {
    FILE *fp, *fp_index;              
    tMJPEG_AVI_FILEHANDLE *pAVIFileHandle = (tMJPEG_AVI_FILEHANDLE *)pAVIFileHandleParam;    
    *pAVIFileHandle = (tMJPEG_AVI_FILEHANDLE) malloc(sizeof(tMJPEG_AVI_FileWrite));
	fp = (FILE*) fopen((char*)fileName,"wb+");
    if( fp == NULL) goto RETURN_ERROR;       
    
    setvbuf((FILE*)fp, fileiobuff, _IOLBF, sizeof(fileiobuff));
 
    (*pAVIFileHandle)->filePtr = fp;
    memset(&RIFFHDR[8],0,sizeof(MJPEG_AVI_MainAVIHeader));
    RIFFHDR[11]=MJPEG_AVIF_HASINDEX;
    strncpy ((char *)&((*pAVIFileHandle)->avih), (const char *) &RIFFHDR[8],sizeof(MJPEG_AVI_MainAVIHeader));     
    (*pAVIFileHandle)->ListhdrlChunkOffset = 12;    
	RIFFHDR[44] = ImageParam->width;
    RIFFHDR[45] = ImageParam->height;
    RIFFHDR[40] = RIFFHDR[44] + (RIFFHDR[45] << 16); 
    RIFFHDR[33] = FrameRate; 
    if(fwrite(RIFFHDR,1,228,fp) != 228)       			goto RETURN_ERROR; 
    lIndexEntry.dwChunkOffset = 228;    
   	(*pAVIFileHandle)->writingDataStarted = 1;
    (*pAVIFileHandle)->ListmoviChunkOffset = 216;         
    (*pAVIFileHandle)->avihChunkOffset = 24;
//	fp_index = fopen(TEMP_FILE_NAME,"wb+");
//	if( fp_index == NULL) goto RETURN_ERROR;   	
//	(*pAVIFileHandle)->indexFilePtr = fp_index;
    return (MJPEG_AVI_RETURN_OK);
RETURN_ERROR :
    if(fp != NULL)       fclose(fp);    
//    if(fp_index != NULL) fclose(fp_index);    
    free(*pAVIFileHandle);    
    *pAVIFileHandle = NULL;
    return MJPEG_AVI_RETURN_ERROR;
}
#endif
/*
*******************************************************************************
Name            : MJPEG_AVI_CloseFileWrite
Description     : Closes the MJPEG AVI output file
Parameter       : MJPEG AVI output file handle
Return Value    : MJPEG_AVI_RETURN_OK 		if file closed OK
				: MJPEG_AVI_RETURN_ERROR 	otherwise
*******************************************************************************
*/
section ("MJPEGENC_P0") // All code
int32 MJPEG_AVI_CloseFileWrite(uint32 AVIFileHandleParam)
{
#ifndef MJPEGREWIND    	
    uint32 fileLength, RiffAviChunkLength, ListMoviChunkLength;
    uint32 indexChunkLength, indexFileLength, lResult;
    int8 *lpBuffer;
    MemObjHandle *StreamBuffer_Obj;

    tMJPEG_AVI_FILEHANDLE AVIFileHandle = (tMJPEG_AVI_FILEHANDLE) AVIFileHandleParam;
    if(AVIFileHandle == NULL)
    {
        return MJPEG_AVI_RETURN_ERROR;
    }	

    ListMoviChunkLength = ftell(AVIFileHandle->filePtr)
                            - AVIFileHandle->ListmoviChunkOffset - 8;

    indexFileLength = ftell(AVIFileHandle->indexFilePtr);
    indexChunkLength = indexFileLength - 8;

 	if(fseek(AVIFileHandle->indexFilePtr, 4, SEEK_SET) != 0)
    {
        return MJPEG_AVI_RETURN_ERROR;
    }
  
    if(fwrite(&indexChunkLength,1,4,AVIFileHandle->indexFilePtr) != 4)
    {
        return MJPEG_AVI_RETURN_ERROR;
    }

    if(fseek(AVIFileHandle->indexFilePtr, 0, SEEK_SET) != 0)
    {
        return MJPEG_AVI_RETURN_ERROR;
    }
  
    //lpBuffer = (int8 *)malloc(indexFileLength);
    StreamBuffer_Obj = JPEG_MemAlloc_NEW(indexFileLength,1,MEM_TYPE_DATA);
	if(StreamBuffer_Obj == NULL)
    {
        return MJPEG_AVI_RETURN_ERROR;
    }
	lpBuffer = (int8*)JPEG_MemAlloc_ADDRESS(StreamBuffer_Obj);

    lResult = fread(lpBuffer, 1, indexFileLength, AVIFileHandle->indexFilePtr);
    if(lResult != indexFileLength)
    {
        return MJPEG_AVI_RETURN_ERROR;
    }
  
    if(fwrite(lpBuffer, 1, indexFileLength, AVIFileHandle->filePtr) != indexFileLength)
    {
        return MJPEG_AVI_RETURN_ERROR;
    }
    
    JPEG_MemAlloc_DELETE(StreamBuffer_Obj);

    AVIFileHandle->avih.dwFlags |= MJPEG_AVIF_HASINDEX;
       
    fileLength = ftell(AVIFileHandle->filePtr);
    RiffAviChunkLength = fileLength - 8;

	if(fseek(AVIFileHandle->filePtr,4, SEEK_SET) != 0)
    {
        return MJPEG_AVI_RETURN_ERROR;
    }
  
    if(fwrite(&RiffAviChunkLength,1,4,AVIFileHandle->filePtr) != 4)
    {
        return MJPEG_AVI_RETURN_ERROR;
    }

    if(AVIFileHandle->ListmoviChunkOffset != 0)
    {
    	if(fseek(AVIFileHandle->filePtr,AVIFileHandle->ListmoviChunkOffset + 4, SEEK_SET) != 0)
        {
            return MJPEG_AVI_RETURN_ERROR;
        }

        if(fwrite(&ListMoviChunkLength,1,4,AVIFileHandle->filePtr) != 4)
        {
            return MJPEG_AVI_RETURN_ERROR;
        }
    }
  
    if(AVIFileHandle->avihChunkOffset != 0)
    {
	   	if(fseek(AVIFileHandle->filePtr,AVIFileHandle->avihChunkOffset + 8, SEEK_SET) != 0)
        {
            return MJPEG_AVI_RETURN_ERROR;
        }
  
        if(fwrite(&AVIFileHandle->avih,1,sizeof(MJPEG_AVI_MainAVIHeader),AVIFileHandle->filePtr) != sizeof(MJPEG_AVI_MainAVIHeader))
        {
            return MJPEG_AVI_RETURN_ERROR;
        }
    }

    if(fclose(AVIFileHandle->indexFilePtr) != 0)
    {
        return MJPEG_AVI_RETURN_ERROR;
    }
  
    if(fclose(AVIFileHandle->filePtr) != 0)
    {
        return MJPEG_AVI_RETURN_ERROR;
    }

    free(AVIFileHandle);
#else
	uint32 lFRN,RiffAviChunkLength,ListMoviChunkLength,*ltharray;
    MJPEG_AVI_INDEXENTRY IndexEntry;
    uint32 indexhead[2] = { MJPEG_AVI_FOURCC('i','d','x','1'),0};
    tMJPEG_AVI_FILEHANDLE AVIFileHandle = (tMJPEG_AVI_FILEHANDLE) AVIFileHandleParam;
    
    if(AVIFileHandle == NULL)       
    	return MJPEG_AVI_RETURN_ERROR; 	    
    
    indexhead[1] = AVIFileHandle->avih.dwTotalFrames * sizeof(MJPEG_AVI_INDEXENTRY);          
    
    RiffAviChunkLength = lIndexEntry.dwChunkOffset + indexhead[1];
    
    ListMoviChunkLength = lIndexEntry.dwChunkOffset - AVIFileHandle->ListmoviChunkOffset - 8;   
    
    AVIFileHandle->avih.dwFlags |= MJPEG_AVIF_HASINDEX;                       
	
    if(fseek(AVIFileHandle->filePtr,4, SEEK_SET) != 0)       		
    	return MJPEG_AVI_RETURN_ERROR;     
    
    if(fwrite(&RiffAviChunkLength,1,4,AVIFileHandle->filePtr) != 4) 
    	return MJPEG_AVI_RETURN_ERROR; 
    
    if(fseek(AVIFileHandle->filePtr,AVIFileHandle->ListmoviChunkOffset + 4, SEEK_SET) != 0) 
    	return MJPEG_AVI_RETURN_ERROR;         	     
    	
    if(fwrite(&ListMoviChunkLength,1,4,AVIFileHandle->filePtr) != 4) 
    	return MJPEG_AVI_RETURN_ERROR;          
	
    if(fseek(AVIFileHandle->filePtr,AVIFileHandle->avihChunkOffset + 8, SEEK_SET) != 0)        
        return MJPEG_AVI_RETURN_ERROR;          
    
    if(fwrite(&AVIFileHandle->avih,1,sizeof(MJPEG_AVI_MainAVIHeader),AVIFileHandle->filePtr) != 
        sizeof(MJPEG_AVI_MainAVIHeader)) 
        return MJPEG_AVI_RETURN_ERROR;    

    IndexEntry.dwChunkOffset = 228;
        
    if (fseek(AVIFileHandle->filePtr,232,SEEK_SET) != 0) 
    	return MJPEG_AVI_RETURN_ERROR;           
    	
    IndexEntry.ckid = lIndexEntry.ckid;      
    IndexEntry.dwFlags = 0;        
    ltharray = (uint32 *) malloc(AVIFileHandle->avih.dwTotalFrames * 4);

    for(lFRN=0;lFRN < AVIFileHandle->avih.dwTotalFrames;lFRN++) 
    {
    	if (fread(&ltharray[lFRN] , 1, 4, AVIFileHandle->filePtr) != 4) 
    		return MJPEG_AVI_RETURN_ERROR;
    	IndexEntry.dwChunkOffset  += ltharray[lFRN] + 8;
    	if (fseek(AVIFileHandle->filePtr,IndexEntry.dwChunkOffset + 4,SEEK_SET) != 0) 
    		return MJPEG_AVI_RETURN_ERROR;    
    }

    IndexEntry.dwChunkOffset = 228;
    
    if (fseek(AVIFileHandle->filePtr,lIndexEntry.dwChunkOffset,SEEK_SET) != 0) 
    	return MJPEG_AVI_RETURN_ERROR;        
    
    if (fwrite(indexhead, 1, 8, AVIFileHandle->filePtr) != 8) 
    	return MJPEG_AVI_RETURN_ERROR;       
    
    lIndexEntry.dwChunkOffset += 8;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美视频一区二区| www.亚洲在线| 91精品国产综合久久精品图片| 自拍av一区二区三区| 91久久精品日日躁夜夜躁欧美| 亚洲精品视频免费看| 欧美色中文字幕| 天使萌一区二区三区免费观看| 欧美性生活久久| 日韩激情视频在线观看| 欧美mv和日韩mv的网站| 国产露脸91国语对白| 国产精品久久久久三级| 91成人国产精品| 免费成人你懂的| 久久看人人爽人人| 日本乱码高清不卡字幕| 日韩福利电影在线| 久久欧美中文字幕| 一本大道久久a久久综合| 婷婷丁香激情综合| 久久久久久久综合色一本| 99精品国产视频| 日本vs亚洲vs韩国一区三区| 久久精品视频免费| 一本到三区不卡视频| 蜜臀av一级做a爰片久久| 国产亚洲一区二区三区四区| 91免费看视频| 老司机一区二区| 国产精品久久久99| 欧美专区在线观看一区| 免费在线看成人av| 亚洲婷婷综合久久一本伊一区| 欧美精品视频www在线观看| 国产成人日日夜夜| 亚洲国产精品影院| 国产午夜精品一区二区三区视频| 欧美在线视频你懂得| 国产精品一区二区不卡| 日韩综合一区二区| 国产精品女上位| 91精品国产丝袜白色高跟鞋| 粉嫩av亚洲一区二区图片| 亚洲国产精品久久久久婷婷884| 欧美成人综合网站| 欧美亚洲国产bt| 丁香婷婷深情五月亚洲| 日日摸夜夜添夜夜添国产精品 | 在线观看免费一区| 国产一区二区三区黄视频 | 亚洲色图一区二区| 久久色中文字幕| 欧美日韩国产高清一区二区| 成人中文字幕在线| 美女任你摸久久| 亚洲一区二区黄色| 综合激情成人伊人| 中文字幕不卡在线播放| 欧美刺激脚交jootjob| 欧美日韩情趣电影| 日本韩国欧美一区二区三区| 国产91精品一区二区| 久久99精品久久久久婷婷| 亚洲五码中文字幕| 亚洲综合精品自拍| 亚洲精品水蜜桃| 亚洲三级小视频| 中文字幕一区二区三区不卡| 久久久不卡网国产精品二区| 91精品中文字幕一区二区三区 | 在线视频观看一区| 成人一级片在线观看| 国产美女主播视频一区| 久久99热这里只有精品| 日韩高清欧美激情| 天天操天天色综合| 亚洲电影视频在线| 亚洲一区二区三区四区在线免费观看 | 国产精品色一区二区三区| 2020日本不卡一区二区视频| 精品国产免费视频| 日韩精品专区在线影院观看| 日韩欧美aaaaaa| 日韩欧美一二区| 精品sm在线观看| 欧美大黄免费观看| 精品欧美乱码久久久久久| 精品欧美一区二区在线观看| 精品噜噜噜噜久久久久久久久试看| 日韩精品最新网址| 久久久久久久av麻豆果冻| 中文在线一区二区 | 成人午夜电影久久影院| 国产麻豆精品95视频| 东方欧美亚洲色图在线| 成人黄色片在线观看| 成人免费视频免费观看| 91成人免费在线| 日韩一区二区在线观看| 久久精品一区二区三区av| 亚洲视频一区在线| 亚洲国产成人av| 老鸭窝一区二区久久精品| 国产麻豆欧美日韩一区| 97se狠狠狠综合亚洲狠狠| 91福利在线免费观看| 日韩欧美视频在线| 中文字幕精品一区| 一区二区三区中文在线| 日韩精品电影在线| 国产成人丝袜美腿| 欧美性猛片aaaaaaa做受| 日韩三级.com| 综合色天天鬼久久鬼色| 午夜成人免费视频| 丁香婷婷综合激情五月色| 91福利在线免费观看| 精品电影一区二区三区| 中文字幕中文字幕一区| 日av在线不卡| 91在线观看一区二区| 91.成人天堂一区| 亚洲国产精品成人久久综合一区| 一区二区三区 在线观看视频| 久久电影网电视剧免费观看| 9久草视频在线视频精品| 日韩免费在线观看| 亚洲欧美一区二区三区极速播放 | 亚洲精品日韩一| 久久91精品久久久久久秒播| 91在线视频在线| 欧美xxxxx牲另类人与| 亚洲一区二区三区四区在线免费观看| 久久精品久久久精品美女| 91在线视频播放地址| 日韩免费高清av| 一个色妞综合视频在线观看| 国产美女精品人人做人人爽| 欧美日韩免费观看一区三区| 中文字幕欧美激情一区| 另类小说视频一区二区| 一道本成人在线| 日本一区二区三区四区| 老司机精品视频导航| 欧美日韩在线免费视频| 亚洲婷婷综合久久一本伊一区 | 国产精品一区二区久久精品爱涩| 欧美日韩亚洲丝袜制服| 国产精品家庭影院| 国产一本一道久久香蕉| 欧美一区二区黄| 亚洲免费观看高清完整版在线观看 | 蜜臀av亚洲一区中文字幕| 色偷偷成人一区二区三区91| 欧美国产在线观看| 精品一区二区在线视频| 欧美一级久久久| 亚洲狠狠爱一区二区三区| 99久久久久久99| 国产精品初高中害羞小美女文| 国产成人午夜精品影院观看视频| 精品区一区二区| 久久av老司机精品网站导航| 日韩一区二区在线观看| 日韩成人一级片| 88在线观看91蜜桃国自产| 亚洲一区二区黄色| 欧美性猛交xxxx黑人交| 亚洲在线免费播放| 欧美视频你懂的| 亚洲成人综合网站| 91精品国产综合久久蜜臀| 日韩av中文在线观看| 538在线一区二区精品国产| 图片区小说区区亚洲影院| 欧美日韩一区二区在线观看 | 国产亚洲欧美日韩俺去了| 国产米奇在线777精品观看| 久久精品视频免费| 波多野结衣精品在线| 国产精品久久久久久久午夜片| 99国产精品久久| 一区二区三区四区av| 欧美日本在线看| 奇米精品一区二区三区四区| 欧美成人aa大片| 成人综合婷婷国产精品久久蜜臀 | 91视频在线观看| 亚洲精品免费看| 欧美蜜桃一区二区三区| 日韩福利视频导航| 久久久久久久久久久电影| 99久久精品国产毛片| 亚洲福利视频一区| 久久美女高清视频| 91丨九色丨蝌蚪丨老版| 午夜久久久影院| 久久精品人人做人人综合| 99久久精品国产毛片|