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

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

?? jas_stream.c

?? This code demonstrate Fast Wavelet Transform. Executable and can be run on Visual C++ platform
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* * Copyright (c) 1999-2000 Image Power, Inc. and the University of *   British Columbia. * Copyright (c) 2001-2003 Michael David Adams. * All rights reserved. *//* __START_OF_JASPER_LICENSE__ *  * JasPer License Version 2.0 *  * Copyright (c) 1999-2000 Image Power, Inc. * Copyright (c) 1999-2000 The University of British Columbia * Copyright (c) 2001-2003 Michael David Adams *  * All rights reserved. *  * Permission is hereby granted, free of charge, to any person (the * "User") obtaining a copy of this software and associated documentation * files (the "Software"), to deal in the Software without restriction, * including without limitation the rights to use, copy, modify, merge, * publish, distribute, and/or sell copies of the Software, and to permit * persons to whom the Software is furnished to do so, subject to the * following conditions: *  * 1.  The above copyright notices and this permission notice (which * includes the disclaimer below) shall be included in all copies or * substantial portions of the Software. *  * 2.  The name of a copyright holder shall not be used to endorse or * promote products derived from the Software without specific prior * written permission. *  * THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS * LICENSE.  NO USE OF THE SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER * THIS DISCLAIMER.  THE SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS * "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.  IN NO * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.  NO ASSURANCES ARE * PROVIDED BY THE COPYRIGHT HOLDERS THAT THE SOFTWARE DOES NOT INFRINGE * THE PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OF ANY OTHER ENTITY. * EACH COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY TO THE USER FOR CLAIMS * BROUGHT BY ANY OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL * PROPERTY RIGHTS OR OTHERWISE.  AS A CONDITION TO EXERCISING THE RIGHTS * GRANTED HEREUNDER, EACH USER HEREBY ASSUMES SOLE RESPONSIBILITY TO SECURE * ANY OTHER INTELLECTUAL PROPERTY RIGHTS NEEDED, IF ANY.  THE SOFTWARE * IS NOT FAULT-TOLERANT AND IS NOT INTENDED FOR USE IN MISSION-CRITICAL * SYSTEMS, SUCH AS THOSE USED IN THE OPERATION OF NUCLEAR FACILITIES, * AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL * SYSTEMS, DIRECT LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH * THE FAILURE OF THE SOFTWARE OR SYSTEM COULD LEAD DIRECTLY TO DEATH, * PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH * RISK ACTIVITIES").  THE COPYRIGHT HOLDERS SPECIFICALLY DISCLAIM ANY * EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. *  * __END_OF_JASPER_LICENSE__ *//* * I/O Stream Library * * $Id$ *//******************************************************************************\* Includes.\******************************************************************************/#include <assert.h>#if defined(HAVE_FCNTL_H)#include <fcntl.h>#endif#include <stdlib.h>#include <stdarg.h>#include <stdio.h>#include <ctype.h>#if defined(HAVE_UNISTD_H)#include <unistd.h>#endif#if defined(WIN32) || defined(HAVE_IO_H)#include <io.h>#endif#include "jasper/jas_types.h"#include "jasper/jas_stream.h"#include "jasper/jas_malloc.h"#include "jasper/jas_math.h"/******************************************************************************\* Local function prototypes.\******************************************************************************/static int jas_strtoopenmode(const char *s);static void jas_stream_destroy(jas_stream_t *stream);static jas_stream_t *jas_stream_create(void);static void jas_stream_initbuf(jas_stream_t *stream, int bufmode, char *buf,  int bufsize);static int mem_read(jas_stream_obj_t *obj, char *buf, int cnt);static int mem_write(jas_stream_obj_t *obj, char *buf, int cnt);static long mem_seek(jas_stream_obj_t *obj, long offset, int origin);static int mem_close(jas_stream_obj_t *obj);static int sfile_read(jas_stream_obj_t *obj, char *buf, int cnt);static int sfile_write(jas_stream_obj_t *obj, char *buf, int cnt);static long sfile_seek(jas_stream_obj_t *obj, long offset, int origin);static int sfile_close(jas_stream_obj_t *obj);static int file_read(jas_stream_obj_t *obj, char *buf, int cnt);static int file_write(jas_stream_obj_t *obj, char *buf, int cnt);static long file_seek(jas_stream_obj_t *obj, long offset, int origin);static int file_close(jas_stream_obj_t *obj);/******************************************************************************\* Local data.\******************************************************************************/static jas_stream_ops_t jas_stream_fileops = {	file_read,	file_write,	file_seek,	file_close};static jas_stream_ops_t jas_stream_sfileops = {	sfile_read,	sfile_write,	sfile_seek,	sfile_close};static jas_stream_ops_t jas_stream_memops = {	mem_read,	mem_write,	mem_seek,	mem_close};/******************************************************************************\* Code for opening and closing streams.\******************************************************************************/static jas_stream_t *jas_stream_create(){	jas_stream_t *stream;	if (!(stream = jas_malloc(sizeof(jas_stream_t)))) {		return 0;	}	stream->openmode_ = 0;	stream->bufmode_ = 0;	stream->flags_ = 0;	stream->bufbase_ = 0;	stream->bufstart_ = 0;	stream->bufsize_ = 0;	stream->ptr_ = 0;	stream->cnt_ = 0;	stream->ops_ = 0;	stream->obj_ = 0;	stream->rwcnt_ = 0;	stream->rwlimit_ = -1;	return stream;}jas_stream_t *jas_stream_memopen(char *buf, int bufsize){	jas_stream_t *stream;	jas_stream_memobj_t *obj;	if (!(stream = jas_stream_create())) {		return 0;	}	/* A stream associated with a memory buffer is always opened	for both reading and writing in binary mode. */	stream->openmode_ = JAS_STREAM_READ | JAS_STREAM_WRITE | JAS_STREAM_BINARY;	/* Since the stream data is already resident in memory, buffering	is not necessary. */	/* But... It still may be faster to use buffering anyways. */	jas_stream_initbuf(stream, JAS_STREAM_FULLBUF, 0, 0);	/* Select the operations for a memory stream. */	stream->ops_ = &jas_stream_memops;	/* Allocate memory for the underlying memory stream object. */	if (!(obj = jas_malloc(sizeof(jas_stream_memobj_t)))) {		jas_stream_destroy(stream);		return 0;	}	stream->obj_ = (void *) obj;	/* Initialize a few important members of the memory stream object. */	obj->myalloc_ = 0;	obj->buf_ = 0;	/* If the buffer size specified is nonpositive, then the buffer	is allocated internally and automatically grown as needed. */	if (bufsize <= 0) {		obj->bufsize_ = 1024;		obj->growable_ = 1;	} else {		obj->bufsize_ = bufsize;		obj->growable_ = 0;	}	if (buf) {		obj->buf_ = (unsigned char *) buf;	} else {		obj->buf_ = jas_malloc(obj->bufsize_ * sizeof(char));		obj->myalloc_ = 1;	}	if (!obj->buf_) {		jas_stream_close(stream);		return 0;	}	if (bufsize > 0 && buf) {		/* If a buffer was supplied by the caller and its length is positive,		  make the associated buffer data appear in the stream initially. */		obj->len_ = bufsize;	} else {		/* The stream is initially empty. */		obj->len_ = 0;	}	obj->pos_ = 0;		return stream;}jas_stream_t *jas_stream_fopen(const char *filename, const char *mode){	jas_stream_t *stream;	jas_stream_fileobj_t *obj;	int openflags;	/* Allocate a stream object. */	if (!(stream = jas_stream_create())) {		return 0;	}	/* Parse the mode string. */	stream->openmode_ = jas_strtoopenmode(mode);	/* Determine the correct flags to use for opening the file. */	if ((stream->openmode_ & JAS_STREAM_READ) &&	  (stream->openmode_ & JAS_STREAM_WRITE)) {		openflags = O_RDWR;	} else if (stream->openmode_ & JAS_STREAM_READ) {		openflags = O_RDONLY;	} else if (stream->openmode_ & JAS_STREAM_WRITE) {		openflags = O_WRONLY;	} else {		openflags = 0;	}	if (stream->openmode_ & JAS_STREAM_APPEND) {		openflags |= O_APPEND;	}	if (stream->openmode_ & JAS_STREAM_BINARY) {		openflags |= O_BINARY;	}	if (stream->openmode_ & JAS_STREAM_CREATE) {		openflags |= O_CREAT | O_TRUNC;	}	/* Allocate space for the underlying file stream object. */	if (!(obj = jas_malloc(sizeof(jas_stream_fileobj_t)))) {		jas_stream_destroy(stream);		return 0;	}	obj->fd = -1;	obj->flags = 0;	obj->pathname[0] = '\0';	stream->obj_ = (void *) obj;	/* Select the operations for a file stream object. */	stream->ops_ = &jas_stream_fileops;	/* Open the underlying file. */	if ((obj->fd = open(filename, openflags, JAS_STREAM_PERMS)) < 0) {		jas_stream_destroy(stream);		return 0;	}	/* By default, use full buffering for this type of stream. */	jas_stream_initbuf(stream, JAS_STREAM_FULLBUF, 0, 0);	return stream;}jas_stream_t *jas_stream_freopen(const char *path, const char *mode, FILE *fp){	jas_stream_t *stream;	int openflags;	/* Eliminate compiler warning about unused variable. */	path = 0;	/* Allocate a stream object. */	if (!(stream = jas_stream_create())) {		return 0;	}	/* Parse the mode string. */	stream->openmode_ = jas_strtoopenmode(mode);	/* Determine the correct flags to use for opening the file. */	if ((stream->openmode_ & JAS_STREAM_READ) &&	  (stream->openmode_ & JAS_STREAM_WRITE)) {		openflags = O_RDWR;	} else if (stream->openmode_ & JAS_STREAM_READ) {		openflags = O_RDONLY;	} else if (stream->openmode_ & JAS_STREAM_WRITE) {		openflags = O_WRONLY;	} else {		openflags = 0;	}	if (stream->openmode_ & JAS_STREAM_APPEND) {		openflags |= O_APPEND;	}	if (stream->openmode_ & JAS_STREAM_BINARY) {		openflags |= O_BINARY;	}	if (stream->openmode_ & JAS_STREAM_CREATE) {		openflags |= O_CREAT | O_TRUNC;	}	stream->obj_ = JAS_CAST(void *, fp);	/* Select the operations for a file stream object. */	stream->ops_ = &jas_stream_sfileops;	/* By default, use full buffering for this type of stream. */	jas_stream_initbuf(stream, JAS_STREAM_FULLBUF, 0, 0);	return stream;}jas_stream_t *jas_stream_tmpfile(){	jas_stream_t *stream;	jas_stream_fileobj_t *obj;	if (!(stream = jas_stream_create())) {		return 0;	}	/* A temporary file stream is always opened for both reading and	writing in binary mode. */	stream->openmode_ = JAS_STREAM_READ | JAS_STREAM_WRITE | JAS_STREAM_BINARY;	/* Allocate memory for the underlying temporary file object. */	if (!(obj = jas_malloc(sizeof(jas_stream_fileobj_t)))) {		jas_stream_destroy(stream);		return 0;	}	obj->fd = -1;	obj->flags = 0;	obj->pathname[0] = '\0';	stream->obj_ = obj;	/* Choose a file name. */	tmpnam(obj->pathname);	/* Open the underlying file. */	if ((obj->fd = open(obj->pathname, O_CREAT | O_EXCL | O_RDWR | O_TRUNC | O_BINARY,	  JAS_STREAM_PERMS)) < 0) {		jas_stream_destroy(stream);		return 0;	}	/* Unlink the file so that it will disappear if the program	terminates abnormally. */	/* Under UNIX, one can unlink an open file and continue to do I/O	on it.  Not all operating systems support this functionality, however.	For example, under Microsoft Windows the unlink operation will fail,	since the file is open. */	if (unlink(obj->pathname)) {		/* We will try unlinking the file again after it is closed. */		obj->flags |= JAS_STREAM_FILEOBJ_DELONCLOSE;	}	/* Use full buffering. */	jas_stream_initbuf(stream, JAS_STREAM_FULLBUF, 0, 0);	stream->ops_ = &jas_stream_fileops;	return stream;}jas_stream_t *jas_stream_fdopen(int fd, const char *mode){	jas_stream_t *stream;	jas_stream_fileobj_t *obj;	/* Allocate a stream object. */	if (!(stream = jas_stream_create())) {		return 0;	}	/* Parse the mode string. */	stream->openmode_ = jas_strtoopenmode(mode);#if defined(WIN32)	/* Argh!!!  Someone ought to banish text mode (i.e., O_TEXT) to the	  greatest depths of purgatory! */	/* Ensure that the file descriptor is in binary mode, if the caller	  has specified the binary mode flag.  Arguably, the caller ought to	  take care of this, but text mode is a ugly wart anyways, so we save	  the caller some grief by handling this within the stream library. */	/* This ugliness is mainly for the benefit of those who run the	  JasPer software under Windows from shells that insist on opening	  files in text mode.  For example, in the Cygwin environment,	  shells often open files in text mode when I/O redirection is	  used.  Grr... */	if (stream->openmode_ & JAS_STREAM_BINARY) {		setmode(fd, O_BINARY);	}#endif	/* Allocate space for the underlying file stream object. */	if (!(obj = jas_malloc(sizeof(jas_stream_fileobj_t)))) {		jas_stream_destroy(stream);		return 0;	}	obj->fd = fd;	obj->flags = 0;	obj->pathname[0] = '\0';	stream->obj_ = (void *) obj;	/* Do not close the underlying file descriptor when the stream is	closed. */	obj->flags |= JAS_STREAM_FILEOBJ_NOCLOSE;	/* By default, use full buffering for this type of stream. */	jas_stream_initbuf(stream, JAS_STREAM_FULLBUF, 0, 0);	/* Select the operations for a file stream object. */	stream->ops_ = &jas_stream_fileops;	return stream;}static void jas_stream_destroy(jas_stream_t *stream){	/* If the memory for the buffer was allocated with malloc, free	this memory. */	if ((stream->bufmode_ & JAS_STREAM_FREEBUF) && stream->bufbase_) {		jas_free(stream->bufbase_);		stream->bufbase_ = 0;	}	jas_free(stream);}int jas_stream_close(jas_stream_t *stream){	/* Flush buffer if necessary. */	jas_stream_flush(stream);	/* Close the underlying stream object. */	(*stream->ops_->close_)(stream->obj_);	jas_stream_destroy(stream);	return 0;}/******************************************************************************\* Code for reading and writing streams.\******************************************************************************/int jas_stream_getc_func(jas_stream_t *stream){	assert(stream->ptr_ - stream->bufbase_ <= stream->bufsize_ +	  JAS_STREAM_MAXPUTBACK);	return jas_stream_getc_macro(stream);}int jas_stream_putc_func(jas_stream_t *stream, int c){	assert(stream->ptr_ - stream->bufstart_ <= stream->bufsize_);	return jas_stream_putc_macro(stream, c);}int jas_stream_ungetc(jas_stream_t *stream, int c){	if (!stream->ptr_ || stream->ptr_ == stream->bufbase_) {		return -1;	}	/* Reset the EOF indicator (since we now have at least one character	  to read). */	stream->flags_ &= ~JAS_STREAM_EOF;	--stream->rwcnt_;	--stream->ptr_;	++stream->cnt_;	*stream->ptr_ = c;	return 0;}int jas_stream_read(jas_stream_t *stream, void *buf, int cnt){	int n;	int c;	char *bufptr;	bufptr = buf;	n = 0;	while (n < cnt) {		if ((c = jas_stream_getc(stream)) == EOF) {			return n;		}		*bufptr++ = c;		++n;	}	return n;}int jas_stream_write(jas_stream_t *stream, const void *buf, int cnt){	int n;	const char *bufptr;	bufptr = buf;	n = 0;	while (n < cnt) {		if (jas_stream_putc(stream, *bufptr) == EOF) {			return n;		}		++bufptr;		++n;	}	return n;}/* Note: This function uses a fixed size buffer.  Therefore, it cannot  handle invocations that will produce more output than can be held  by the buffer. */int jas_stream_printf(jas_stream_t *stream, const char *fmt, ...){	va_list ap;	char buf[4096];	int ret;	va_start(ap, fmt);	ret = vsprintf(buf, fmt, ap);	jas_stream_puts(stream, buf);	va_end(ap);	return ret;}int jas_stream_puts(jas_stream_t *stream, const char *s){	while (*s != '\0') {		if (jas_stream_putc_macro(stream, *s) == EOF) {			return -1;		}		++s;	}	return 0;}char *jas_stream_gets(jas_stream_t *stream, char *buf, int bufsize){	int c;	char *bufptr;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美在线高清| 成人黄色电影在线| 婷婷一区二区三区| 亚洲已满18点击进入久久| 成人免费一区二区三区视频| 国产精品麻豆久久久| 国产女人18毛片水真多成人如厕 | 精品播放一区二区| 日韩免费视频一区| 精品久久久久久无| 国产亲近乱来精品视频| 欧美国产丝袜视频| 专区另类欧美日韩| 亚洲成人在线网站| 美女视频免费一区| 国产一区二区三区精品欧美日韩一区二区三区 | 日韩精品欧美成人高清一区二区| 午夜精品福利久久久| 日本女优在线视频一区二区| 免费在线看一区| 国产一区二区网址| 成人精品视频一区二区三区| 91在线观看视频| 欧美三级乱人伦电影| 日韩女优毛片在线| 国产精品久久久久久亚洲毛片| 亚洲欧美一区二区三区久本道91 | 国产福利视频一区二区三区| 丰满白嫩尤物一区二区| 91无套直看片红桃| 欧美精品少妇一区二区三区 | 日韩激情av在线| 国产主播一区二区三区| 白白色亚洲国产精品| 欧美日韩高清在线播放| 日韩视频永久免费| 国产精品美女一区二区在线观看| 亚洲午夜久久久| 黄一区二区三区| 91在线观看成人| 91精品国产综合久久福利软件 | 久久99国内精品| 成人av先锋影音| 欧美高清hd18日本| 久久久99免费| 亚洲精品久久久蜜桃| 美女视频黄频大全不卡视频在线播放| 国产高清亚洲一区| 精品视频一区三区九区| 国产欧美精品区一区二区三区 | 国产欧美精品一区aⅴ影院 | 欧美亚洲国产一卡| 精品成人一区二区| 亚洲小说欧美激情另类| 国产美女视频91| 欧美日韩性生活| 国产欧美精品一区二区色综合| 亚洲国产精品自拍| 粉嫩av一区二区三区在线播放| 欧美午夜在线一二页| 中文字幕免费观看一区| 日韩精品亚洲一区二区三区免费| jlzzjlzz亚洲日本少妇| 日韩欧美资源站| 亚洲乱码国产乱码精品精小说| 精品一区二区三区在线播放| 在线免费观看日本一区| 国产拍欧美日韩视频二区| 日韩不卡一区二区| 一本大道久久a久久精二百 | 国模少妇一区二区三区| 欧美日韩高清影院| 亚洲日本一区二区| 国产成人h网站| 精品国产亚洲一区二区三区在线观看| 亚洲综合久久av| 国产91丝袜在线18| 日韩一区二区麻豆国产| 亚洲综合图片区| 99久久精品国产观看| 国产片一区二区| 国内欧美视频一区二区| 日韩欧美黄色影院| 日韩不卡一区二区三区| 欧美日韩不卡在线| 亚洲最新在线观看| 色嗨嗨av一区二区三区| 中文一区二区完整视频在线观看| 狠狠久久亚洲欧美| 日韩欧美亚洲国产精品字幕久久久| 天堂影院一区二区| 欧美日韩精品一区二区三区四区| 亚洲精品免费电影| 色999日韩国产欧美一区二区| 中文字幕一区二区三区精华液| 国产成人亚洲综合a∨猫咪| 久久色.com| 国产精品一区二区在线播放| 精品国产一区a| 国产真实乱子伦精品视频| 精品处破学生在线二十三| 久久精品999| 久久综合久久久久88| 国产精品一区二区男女羞羞无遮挡 | 不卡的av在线播放| 国产无一区二区| 成人教育av在线| 国产精品少妇自拍| 91亚洲男人天堂| 亚洲一区二区三区国产| 欧美综合在线视频| 性做久久久久久久免费看| 欧美视频精品在线观看| 五月天久久比比资源色| 欧美一卡二卡在线| 国产在线播放一区三区四| 久久亚洲精品小早川怜子| 成人永久看片免费视频天堂| 国产精品美日韩| 日本大香伊一区二区三区| 亚洲一区二区三区不卡国产欧美| 欧美精选一区二区| 麻豆精品国产传媒mv男同| 精品国产精品网麻豆系列| 国产高清久久久| 亚洲视频免费在线| 欧美日韩美女一区二区| 看电视剧不卡顿的网站| 中文欧美字幕免费| 91伊人久久大香线蕉| 日欧美一区二区| 久久免费精品国产久精品久久久久| 成人在线视频首页| 亚洲国产日日夜夜| 久久你懂得1024| 一本久久a久久免费精品不卡| 午夜一区二区三区在线观看| 日韩一二三四区| 不卡欧美aaaaa| 三级影片在线观看欧美日韩一区二区| 欧美xxxxxxxxx| 色一情一乱一乱一91av| 日本最新不卡在线| 中文一区二区在线观看| 欧美午夜精品久久久久久孕妇| 久久狠狠亚洲综合| 国产精品福利一区二区三区| 欧美精品日韩一区| 大白屁股一区二区视频| 亚洲国产综合人成综合网站| 久久女同性恋中文字幕| 欧美专区在线观看一区| 国产大陆精品国产| 亚洲成人综合视频| 中文字幕精品一区二区精品绿巨人| 欧美亚洲一区二区三区四区| 国产成人无遮挡在线视频| 亚洲综合免费观看高清在线观看| 久久综合五月天婷婷伊人| 欧美天天综合网| 国产美女视频一区| 日韩在线播放一区二区| 综合久久综合久久| 日韩欧美国产高清| 色老头久久综合| 成人免费的视频| 美女视频黄免费的久久| 亚洲与欧洲av电影| 国产精品沙发午睡系列990531| 日韩欧美中文一区| 欧美日韩三级视频| 99精品热视频| 国产一区二区三区日韩| 日本v片在线高清不卡在线观看| 欧美日韩二区三区| 国产精品国产精品国产专区不片| 日韩欧美国产系列| 欧美三级乱人伦电影| 91在线精品一区二区三区| 久久99精品一区二区三区三区| 亚洲无人区一区| 日韩理论片在线| 国产日产欧美一区| 亚洲精品一区二区三区在线观看| 欧美日韩一区 二区 三区 久久精品| 成人ar影院免费观看视频| 国产在线精品免费av| 免费成人在线观看视频| 午夜精品爽啪视频| 亚洲午夜精品网| 亚洲精品ww久久久久久p站| 亚洲国产精品成人综合| 久久人人97超碰com| 精品久久久三级丝袜| 日韩久久久久久| 欧美大片在线观看一区| 日韩欧美一二区| 日韩欧美国产三级电影视频| 91精品国产色综合久久ai换脸| 欧美日韩午夜影院|