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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? sbc.c

?? bluetooth 開發(fā)應用bluez-utils-2.23
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* * *  Bluetooth low-complexity, subband codec (SBC) library * *  Copyright (C) 2004-2005  Marcel Holtmann <marcel@holtmann.org> *  Copyright (C) 2004-2005  Henryk Ploetz <henryk@ploetzli.ch> * * *  This library is free software; you can redistribute it and/or *  modify it under the terms of the GNU Lesser General Public *  License as published by the Free Software Foundation; either *  version 2.1 of the License, or (at your option) any later version. * *  This library is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU *  Lesser General Public License for more details. * *  You should have received a copy of the GNU Lesser General Public *  License along with this library; if not, write to the Free Software *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA * */#ifdef HAVE_CONFIG_H#include <config.h>#endif#include <errno.h>#include <malloc.h>#include <string.h>#include <sys/types.h>#include "sbc.h"/* A2DP specification: Appendix B, page 69 */static const int sbc_offset4[4][4] = {	{ -1, 0, 0, 0 },	{ -2, 0, 0, 1 },	{ -2, 0, 0, 1 },	{ -2, 0, 0, 1 }};/* A2DP specification: Appendix B, page 69 */static const int sbc_offset8[4][8] = {	{ -2, 0, 0, 0, 0, 0, 0, 1 },	{ -3, 0, 0, 0, 0, 0, 1, 2 },	{ -4, 0, 0, 0, 0, 0, 1, 2 },	{ -4, 0, 0, 0, 0, 0, 1, 2 }};/* A2DP specification: Appendix B, page 70 */static const float sbc_proto_4_40[40] = {	 0.00000000E+00,  5.36548976E-04,  1.49188357E-03,  2.73370904E-03,	 3.83720193E-03,  3.89205149E-03,  1.86581691E-03, -3.06012286E-03,	 1.09137620E-02,  2.04385087E-02,  2.88757392E-02,  3.21939290E-02,	 2.58767811E-02,  6.13245186E-03, -2.88217274E-02, -7.76463494E-02,	 1.35593274E-01,  1.94987841E-01,  2.46636662E-01,  2.81828203E-01,	 2.94315332E-01,  2.81828203E-01,  2.46636662E-01,  1.94987841E-01,	-1.35593274E-01, -7.76463494E-02, -2.88217274E-02,  6.13245186E-03,	 2.58767811E-02,  3.21939290E-02,  2.88757392E-02,  2.04385087E-02,	-1.09137620E-02, -3.06012286E-03,  1.86581691E-03,  3.89205149E-03,	 3.83720193E-03,  2.73370904E-03,  1.49188357E-03,  5.36548976E-04};/* A2DP specification: Appendix B, page 70 */static const float sbc_proto_8_80[80] = {	 0.00000000E+00,  1.56575398E-04,  3.43256425E-04,  5.54620202E-04,	 8.23919506E-04,  1.13992507E-03,  1.47640169E-03,  1.78371725E-03,	 2.01182542E-03,  2.10371989E-03,  1.99454554E-03,  1.61656283E-03,	 9.02154502E-04, -1.78805361E-04, -1.64973098E-03, -3.49717454E-03,	 5.65949473E-03,  8.02941163E-03,  1.04584443E-02,  1.27472335E-02,	 1.46525263E-02,  1.59045603E-02,  1.62208471E-02,  1.53184106E-02,	 1.29371806E-02,  8.85757540E-03,  2.92408442E-03, -4.91578024E-03,	-1.46404076E-02, -2.61098752E-02, -3.90751381E-02, -5.31873032E-02,	 6.79989431E-02,  8.29847578E-02,  9.75753918E-02,  1.11196689E-01,	 1.23264548E-01,  1.33264415E-01,  1.40753505E-01,  1.45389847E-01,	 1.46955068E-01,  1.45389847E-01,  1.40753505E-01,  1.33264415E-01,	 1.23264548E-01,  1.11196689E-01,  9.75753918E-02,  8.29847578E-02,	-6.79989431E-02, -5.31873032E-02, -3.90751381E-02, -2.61098752E-02,	-1.46404076E-02, -4.91578024E-03,  2.92408442E-03,  8.85757540E-03,	 1.29371806E-02,  1.53184106E-02,  1.62208471E-02,  1.59045603E-02,	 1.46525263E-02,  1.27472335E-02,  1.04584443E-02,  8.02941163E-03,	-5.65949473E-03, -3.49717454E-03, -1.64973098E-03, -1.78805361E-04,	 9.02154502E-04,  1.61656283E-03,  1.99454554E-03,  2.10371989E-03,	 2.01182542E-03,  1.78371725E-03,  1.47640169E-03,  1.13992507E-03,	 8.23919506E-04,  5.54620202E-04,  3.43256425E-04,  1.56575398E-04};/* Precomputed: synmatrix4[k][i] = cos( (i+0.5) * (k+2.0) * pi/4.0 ) */static const float synmatrix4[8][4] =  {	{  0.707106781186548, -0.707106781186547, -0.707106781186548,  0.707106781186547 },	{  0.38268343236509,  -0.923879532511287,  0.923879532511287, -0.38268343236509  },	{  0,                  0,                  0,                  0                 },	{ -0.38268343236509,   0.923879532511287, -0.923879532511287,  0.382683432365091 },	{ -0.707106781186547,  0.707106781186548,  0.707106781186547, -0.707106781186547 },	{ -0.923879532511287, -0.38268343236509,   0.382683432365091,  0.923879532511288 },	{ -1,                 -1,                 -1,                 -1                 },	{ -0.923879532511287, -0.382683432365091,  0.38268343236509,   0.923879532511287 }};/* Precomputed: synmatrix8[k][i] = cos( (i+0.5) * (k+4.0) * pi/8.0 ) */static const float synmatrix8[16][8] = {	{  0.707106781186548, -0.707106781186547, -0.707106781186548,  0.707106781186547,	   0.707106781186548, -0.707106781186547, -0.707106781186547,  0.707106781186547 },	{  0.555570233019602, -0.98078528040323,   0.195090322016128,  0.831469612302545,	  -0.831469612302545, -0.195090322016128,  0.980785280403231, -0.555570233019602 },	{  0.38268343236509,  -0.923879532511287,  0.923879532511287, -0.38268343236509,	  -0.382683432365091,  0.923879532511287, -0.923879532511286,  0.38268343236509  },	{  0.195090322016128, -0.555570233019602,  0.831469612302545, -0.980785280403231,	   0.98078528040323,  -0.831469612302545,  0.555570233019602, -0.195090322016129 },	{  0,                  0,                  0,                  0,	   0,                  0,                  0,                  0                 },	{ -0.195090322016128,  0.555570233019602, -0.831469612302545,  0.98078528040323,	  -0.980785280403231,  0.831469612302545, -0.555570233019603,  0.19509032201613  },	{ -0.38268343236509,   0.923879532511287, -0.923879532511287,  0.382683432365091,	   0.38268343236509,  -0.923879532511287,  0.923879532511288, -0.382683432365091 },	{ -0.555570233019602,  0.98078528040323,  -0.195090322016128, -0.831469612302545,	   0.831469612302545,  0.195090322016128, -0.98078528040323,   0.555570233019606 },	{ -0.707106781186547,  0.707106781186548,  0.707106781186547, -0.707106781186547,	  -0.707106781186546,  0.707106781186548,  0.707106781186546, -0.707106781186548 },	{ -0.831469612302545,  0.195090322016129,  0.980785280403231,  0.555570233019602,	  -0.555570233019603, -0.98078528040323,  -0.195090322016128,  0.831469612302547 },	{ -0.923879532511287, -0.38268343236509,   0.382683432365091,  0.923879532511288,	   0.923879532511287,  0.382683432365089, -0.382683432365091, -0.923879532511287 },	{ -0.98078528040323,  -0.831469612302545, -0.555570233019602, -0.195090322016129,	   0.19509032201613,   0.555570233019606,  0.831469612302547,  0.980785280403231 },	{ -1,                 -1,                 -1,                 -1,	  -1,                 -1,                 -1,                 -1                 },	{ -0.98078528040323,  -0.831469612302546, -0.555570233019603, -0.19509032201613,	   0.195090322016128,  0.555570233019604,  0.831469612302545,  0.98078528040323  },	{ -0.923879532511287, -0.382683432365091,  0.38268343236509,   0.923879532511287,	   0.923879532511288,  0.382683432365088, -0.382683432365089, -0.923879532511285 },	{ -0.831469612302545,  0.195090322016127,  0.98078528040323,   0.555570233019603,	  -0.555570233019601, -0.98078528040323,  -0.195090322016131,  0.831469612302545 }};/* Precomputed: anamatrix4[i][k] = cos( (i+0.5) * (k-2) * pi/4 ) */static const float anamatrix4[4][8] = {	{  0.707106781186548,  0.923879532511287,  1,                  0.923879532511287,	   0.707106781186548,  0.38268343236509,   0,                 -0.38268343236509  },	{ -0.707106781186547,  0.38268343236509,   1,                  0.38268343236509,	  -0.707106781186547, -0.923879532511287,  0,                  0.923879532511287 },	{ -0.707106781186548, -0.38268343236509,   1,                 -0.38268343236509,	  -0.707106781186548,  0.923879532511287,  0,                 -0.923879532511287 },	{  0.707106781186547, -0.923879532511287,  1,                 -0.923879532511287,	   0.707106781186547, -0.38268343236509,   0,                  0.382683432365091 }};/* Precomputed: anamatrix8[i][k] = cos( (i+0.5) * (k-4) * pi/8) */static const float anamatrix8[8][16] = {	{  0.923879532511287,  0.98078528040323,   1,                  0.98078528040323,	   0.923879532511287,  0.831469612302545,  0.707106781186548,  0.555570233019602,	   0.38268343236509,   0.195090322016128,  0,                 -0.195090322016128,	  -0.38268343236509,  -0.555570233019602, -0.707106781186547, -0.831469612302545 },	{  0.38268343236509,   0.831469612302545,  1,                  0.831469612302545,	   0.38268343236509,  -0.195090322016128, -0.707106781186547, -0.98078528040323,	  -0.923879532511287, -0.555570233019602,  0,                  0.555570233019602,	   0.923879532511287,  0.98078528040323,   0.707106781186548,  0.195090322016129 },	{ -0.38268343236509,   0.555570233019602,  1,                  0.555570233019602,	  -0.38268343236509,  -0.98078528040323,  -0.707106781186548,  0.195090322016128,	   0.923879532511287,  0.831469612302545,  0,                 -0.831469612302545,	  -0.923879532511287, -0.195090322016128,  0.707106781186547,  0.980785280403231 },	{ -0.923879532511287,  0.195090322016128,  1,                  0.195090322016128,	  -0.923879532511287, -0.555570233019602,  0.707106781186547,  0.831469612302545,	  -0.38268343236509,  -0.980785280403231,  0,                  0.98078528040323,	   0.382683432365091, -0.831469612302545, -0.707106781186547,  0.555570233019602 },	{ -0.923879532511287, -0.195090322016128,  1,                 -0.195090322016128,	  -0.923879532511287,  0.555570233019602,  0.707106781186548, -0.831469612302545,	  -0.382683432365091,  0.98078528040323,   0,                 -0.980785280403231,	   0.38268343236509,   0.831469612302545, -0.707106781186546, -0.555570233019603 },	{ -0.38268343236509,  -0.555570233019602,  1,                 -0.555570233019602,	  -0.38268343236509,   0.98078528040323,  -0.707106781186547, -0.195090322016128,	   0.923879532511287, -0.831469612302545,  0,                  0.831469612302545,	  -0.923879532511287,  0.195090322016128,  0.707106781186548, -0.98078528040323  },	{  0.38268343236509,  -0.831469612302545,  1,                 -0.831469612302545,	   0.38268343236509,   0.195090322016129, -0.707106781186547,  0.980785280403231,	  -0.923879532511286,  0.555570233019602,  0,                 -0.555570233019603,	   0.923879532511288, -0.98078528040323,   0.707106781186546, -0.195090322016128 },	{  0.923879532511287, -0.98078528040323,   1,                 -0.98078528040323,	   0.923879532511287, -0.831469612302545,  0.707106781186547, -0.555570233019602,	   0.38268343236509,  -0.195090322016129,  0,                  0.19509032201613,	  -0.382683432365091,  0.555570233019606, -0.707106781186548,  0.831469612302547 }};#define fabs(x) ((x) < 0 ? (-x) : (x))#define SBC_SYNCWORD 0x9C/* sampling frequency */#define SBC_FS_16	0x00#define SBC_FS_32	0x01#define SBC_FS_44	0x02#define SBC_FS_48	0x03/* nrof_blocks */#define SBC_NB_4	0x00#define SBC_NB_8	0x01#define SBC_NB_12	0x02#define SBC_NB_16	0x03/* channel mode */#define SBC_CM_MONO		0x00#define SBC_CM_DUAL_CHANNEL	0x01#define SBC_CM_STEREO		0x02#define SBC_CM_JOINT_STEREO	0x03/* allocation mode */#define SBC_AM_LOUDNESS		0x00#define SBC_AM_SNR		0x01/* subbands */#define SBC_SB_4	0x00#define SBC_SB_8	0x01/* This structure contains an unpacked SBC frame.    Yes, there is probably quite some unused space herein */struct sbc_frame {	double sampling_frequency;	/* in kHz */	u_int8_t blocks;	enum {		MONO		= SBC_CM_MONO,		DUAL_CHANNEL	= SBC_CM_DUAL_CHANNEL,		STEREO		= SBC_CM_STEREO,		JOINT_STEREO	= SBC_CM_JOINT_STEREO	} channel_mode;	u_int8_t channels;	enum {		LOUDNESS	= SBC_AM_LOUDNESS,		SNR		= SBC_AM_SNR	} allocation_method;	u_int8_t subbands;	u_int8_t bitpool;	u_int8_t join;				/* bit number x set means joint stereo has been used in subband x */	u_int8_t scale_factor[2][8];		/* only the lower 4 bits of every element are to be used */	u_int16_t audio_sample[16][2][8];	/* raw integer subband samples in the frame */	double sb_sample[16][2][8];		/* modified subband samples */	double pcm_sample[2][16*8];		/* original pcm audio samples */};struct sbc_decoder_state {	int subbands;	float S[2][8];				/* Subband samples */	float X[2][8];				/* Audio samples */	float V[2][160], U[2][80], W[2][80];	/* Vectors */};struct sbc_encoder_state {	int subbands;	float S[2][8];				/* Subband samples */	float X[2][80], Y[2][16], Z[2][80];	/* Vectors */};/* * Calculates the CRC-8 of the first len bits in data */static const u_int8_t crc_table[256] = {	0x00, 0x1D, 0x3A, 0x27, 0x74, 0x69, 0x4E, 0x53,	0xE8, 0xF5, 0xD2, 0xCF, 0x9C, 0x81, 0xA6, 0xBB,	0xCD, 0xD0, 0xF7, 0xEA, 0xB9, 0xA4, 0x83, 0x9E,	0x25, 0x38, 0x1F, 0x02, 0x51, 0x4C, 0x6B, 0x76,	0x87, 0x9A, 0xBD, 0xA0, 0xF3, 0xEE, 0xC9, 0xD4,	0x6F, 0x72, 0x55, 0x48, 0x1B, 0x06, 0x21, 0x3C,	0x4A, 0x57, 0x70, 0x6D, 0x3E, 0x23, 0x04, 0x19,	0xA2, 0xBF, 0x98, 0x85, 0xD6, 0xCB, 0xEC, 0xF1,	0x13, 0x0E, 0x29, 0x34, 0x67, 0x7A, 0x5D, 0x40,	0xFB, 0xE6, 0xC1, 0xDC, 0x8F, 0x92, 0xB5, 0xA8,	0xDE, 0xC3, 0xE4, 0xF9, 0xAA, 0xB7, 0x90, 0x8D,	0x36, 0x2B, 0x0C, 0x11, 0x42, 0x5F, 0x78, 0x65,	0x94, 0x89, 0xAE, 0xB3, 0xE0, 0xFD, 0xDA, 0xC7,	0x7C, 0x61, 0x46, 0x5B, 0x08, 0x15, 0x32, 0x2F,	0x59, 0x44, 0x63, 0x7E, 0x2D, 0x30, 0x17, 0x0A,	0xB1, 0xAC, 0x8B, 0x96, 0xC5, 0xD8, 0xFF, 0xE2,	0x26, 0x3B, 0x1C, 0x01, 0x52, 0x4F, 0x68, 0x75,	0xCE, 0xD3, 0xF4, 0xE9, 0xBA, 0xA7, 0x80, 0x9D,	0xEB, 0xF6, 0xD1, 0xCC, 0x9F, 0x82, 0xA5, 0xB8,	0x03, 0x1E, 0x39, 0x24, 0x77, 0x6A, 0x4D, 0x50,	0xA1, 0xBC, 0x9B, 0x86, 0xD5, 0xC8, 0xEF, 0xF2,	0x49, 0x54, 0x73, 0x6E, 0x3D, 0x20, 0x07, 0x1A,	0x6C, 0x71, 0x56, 0x4B, 0x18, 0x05, 0x22, 0x3F,	0x84, 0x99, 0xBE, 0xA3, 0xF0, 0xED, 0xCA, 0xD7,	0x35, 0x28, 0x0F, 0x12, 0x41, 0x5C, 0x7B, 0x66,	0xDD, 0xC0, 0xE7, 0xFA, 0xA9, 0xB4, 0x93, 0x8E,	0xF8, 0xE5, 0xC2, 0xDF, 0x8C, 0x91, 0xB6, 0xAB,	0x10, 0x0D, 0x2A, 0x37, 0x64, 0x79, 0x5E, 0x43,	0xB2, 0xAF, 0x88, 0x95, 0xC6, 0xDB, 0xFC, 0xE1,	0x5A, 0x47, 0x60, 0x7D, 0x2E, 0x33, 0x14, 0x09,	0x7F, 0x62, 0x45, 0x58, 0x0B, 0x16, 0x31, 0x2C,	0x97, 0x8A, 0xAD, 0xB0, 0xE3, 0xFE, 0xD9, 0xC4};static u_int8_t sbc_crc8(const u_int8_t * data, size_t len){	u_int8_t crc = 0x0f;	size_t i;	u_int8_t octet;	for (i = 0; i < len / 8; i++)		crc = crc_table[crc ^ data[i]];	octet = data[i];	for (i = 0; i < len % 8; i++) {		char bit = ((octet ^ crc) & 0x80) >> 7;		crc = ((crc & 0x7f) << 1) ^ (bit ? 0x1d : 0);		octet = octet << 1;	}	return crc;}/* * Code straight from the spec to calculate the bits array  * Takes a pointer to the frame in question, a pointer to the bits array and the sampling frequency (as 2 bit integer) */static void sbc_calculate_bits(const struct sbc_frame *frame, int (*bits)[8], u_int8_t sf){	if (frame->channel_mode == MONO || frame->channel_mode == DUAL_CHANNEL) {		int bitneed[2][8], loudness, max_bitneed, bitcount, slicecount, bitslice;		int ch, sb;		for (ch = 0; ch < frame->channels; ch++) {			if (frame->allocation_method == SNR) {				for (sb = 0; sb < frame->subbands; sb++) {					bitneed[ch][sb] = frame->scale_factor[ch][sb];				}			} else {				for (sb = 0; sb < frame->subbands; sb++) {					if (frame->scale_factor[ch][sb] == 0) {						bitneed[ch][sb] = -5;					} else {						if (frame->subbands == 4) {							loudness = frame->scale_factor[ch][sb] - sbc_offset4[sf][sb];						} else {							loudness = frame->scale_factor[ch][sb] - sbc_offset8[sf][sb];						}						if (loudness > 0) {							bitneed[ch][sb] = loudness / 2;						} else {							bitneed[ch][sb] = loudness;						}					}				}			}			max_bitneed = 0;			for (sb = 0; sb < frame->subbands; sb++) {				if (bitneed[ch][sb] > max_bitneed)					max_bitneed = bitneed[ch][sb];			}			bitcount = 0;			slicecount = 0;			bitslice = max_bitneed + 1;			do {				bitslice--;				bitcount += slicecount;				slicecount = 0;				for (sb = 0; sb < frame->subbands; sb++) {					if ((bitneed[ch][sb] > bitslice + 1) && (bitneed[ch][sb] < bitslice + 16)) {						slicecount++;					} else if (bitneed[ch][sb] == bitslice + 1) {						slicecount += 2;					}				}			} while (bitcount + slicecount < frame->bitpool);			if (bitcount + slicecount == frame->bitpool) {				bitcount += slicecount;				bitslice--;			}			for (sb = 0; sb < frame->subbands; sb++) {				if (bitneed[ch][sb] < bitslice + 2) {					bits[ch][sb] = 0;				} else {					bits[ch][sb] = bitneed[ch][sb] - bitslice;					if (bits[ch][sb] > 16)						bits[ch][sb] = 16;				}			}			sb = 0;			while (bitcount < frame->bitpool && sb < frame->subbands) {				if ((bits[ch][sb] >= 2) && (bits[ch][sb] < 16)) {					bits[ch][sb]++;					bitcount++;				} else if ((bitneed[ch][sb] == bitslice + 1) && (frame->bitpool > bitcount + 1)) {					bits[ch][sb] = 2;					bitcount += 2;				}				sb++;			}			sb = 0;			while (bitcount < frame->bitpool && sb < frame->subbands) {				if (bits[ch][sb] < 16) {					bits[ch][sb]++;					bitcount++;				}				sb++;			}		}	} else if (frame->channel_mode == STEREO || frame->channel_mode == JOINT_STEREO) {		int bitneed[2][8], loudness, max_bitneed, bitcount, slicecount, bitslice;		int ch, sb;		if (frame->allocation_method == SNR) {			for (ch = 0; ch < 2; ch++) {				for (sb = 0; sb < frame->subbands; sb++) {					bitneed[ch][sb] = frame->scale_factor[ch][sb];				}			}		} else {			for (ch = 0; ch < 2; ch++) {				for (sb = 0; sb < frame->subbands; sb++) {					if (frame->scale_factor[ch][sb] == 0) {						bitneed[ch][sb] = -5;					} else {						if (frame->subbands == 4) {							loudness = frame->scale_factor[ch][sb] - sbc_offset4[sf][sb];						} else {							loudness = frame->scale_factor[ch][sb] - sbc_offset8[sf][sb];						}						if (loudness > 0) {							bitneed[ch][sb] = loudness / 2;						} else {							bitneed[ch][sb] = loudness;						}					}				}			}		}		max_bitneed = 0;		for (ch = 0; ch < 2; ch++) {			for (sb = 0; sb < frame->subbands; sb++) {				if (bitneed[ch][sb] > max_bitneed)					max_bitneed = bitneed[ch][sb];			}		}		bitcount = 0;		slicecount = 0;		bitslice = max_bitneed + 1;		do {			bitslice--;			bitcount += slicecount;			slicecount = 0;			for (ch = 0; ch < 2; ch++) {				for (sb = 0; sb < frame->subbands; sb++) {					if ((bitneed[ch][sb] > bitslice + 1) && (bitneed[ch][sb] < bitslice + 16)) {						slicecount++;					} else if (bitneed[ch][sb] == bitslice + 1) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲大尺度视频在线观看| 日韩精品一区二区三区中文不卡| 国内精品国产三级国产a久久| 图片区小说区区亚洲影院| 亚洲第一综合色| 青青国产91久久久久久| 日本女优在线视频一区二区| 一区二区三区在线影院| 国产精品久久久久三级| 欧美日韩国产高清一区二区| 国产suv精品一区二区三区| 久久91精品国产91久久小草| 午夜激情久久久| 日韩二区三区四区| 日本欧美大码aⅴ在线播放| 蜜臀av在线播放一区二区三区| 亚洲综合一区二区精品导航| 亚洲五码中文字幕| 亚洲综合丝袜美腿| 天天色图综合网| 蜜桃av噜噜一区| 国产精品一区二区久久精品爱涩| 激情欧美日韩一区二区| 国产精品一区二区在线播放 | 亚洲国产精品久久一线不卡| 亚洲一区二区三区四区在线观看 | 午夜精品久久久久久久久久| 午夜精品成人在线视频| 国产一区二区三区综合| 91蜜桃网址入口| 日韩片之四级片| 国产日韩欧美精品一区| 一区二区三区在线观看视频| 蜜臀久久久99精品久久久久久| 国产成人亚洲综合a∨婷婷图片| 欧美精品少妇一区二区三区| 精品国产乱子伦一区| 亚洲精品国产第一综合99久久| 日产欧产美韩系列久久99| 曰韩精品一区二区| 国产麻豆精品theporn| 99re这里都是精品| 日韩一区二区精品| 国产精品久久久爽爽爽麻豆色哟哟| 亚洲精选视频在线| 青青国产91久久久久久| 91麻豆.com| 久久蜜臀精品av| 亚洲一区二区黄色| 91一区一区三区| 亚洲特级片在线| 91丨porny丨户外露出| 日韩免费观看高清完整版| 亚洲精品欧美二区三区中文字幕| 国产69精品久久99不卡| 欧美tickle裸体挠脚心vk| 亚洲国产另类av| 欧美日韩久久久| 亚洲一区二区黄色| 欧美日韩大陆一区二区| 香蕉久久一区二区不卡无毒影院 | 奇米888四色在线精品| 一本大道av伊人久久综合| www国产精品av| 国产成人无遮挡在线视频| 国产视频在线观看一区二区三区| 国产麻豆欧美日韩一区| 亚洲欧美福利一区二区| 一本大道综合伊人精品热热 | 精品一区二区三区在线观看国产| 精品国产一区二区三区忘忧草 | 日本在线不卡视频| 精品久久一区二区| 国产精品国产a级| 在线这里只有精品| 一区二区三区资源| 在线不卡欧美精品一区二区三区| 天天操天天干天天综合网| 久久精品一区二区三区不卡 | 91香蕉视频污| 日韩精品亚洲一区| 国产欧美日韩精品在线| 99国产精品国产精品久久| 免费成人在线观看| 亚洲图片你懂的| 精品电影一区二区| 欧美少妇性性性| 91理论电影在线观看| 国产成人aaa| 另类欧美日韩国产在线| 视频一区在线播放| 中文字幕一区二区三区在线播放| 欧美精品三级日韩久久| 91视频免费看| 91福利在线观看| 99久久久无码国产精品| 成人av电影在线播放| 午夜成人免费电影| 亚洲一二三四在线| 亚洲女人****多毛耸耸8| 精品久久国产字幕高潮| 制服丝袜亚洲精品中文字幕| 欧美精三区欧美精三区| 欧美日韩一区二区三区不卡| 99久久伊人精品| 91国偷自产一区二区开放时间 | 日日摸夜夜添夜夜添国产精品| 亚洲精品视频一区二区| 亚洲成人777| 久久99最新地址| 亚洲一区二区四区蜜桃| 午夜精品一区二区三区三上悠亚| 国产精品另类一区| 亚洲色图丝袜美腿| 亚洲无人区一区| 免播放器亚洲一区| 激情综合亚洲精品| 99视频热这里只有精品免费| 在线欧美一区二区| 欧美videos大乳护士334| 国产欧美久久久精品影院| 亚洲视频一区在线观看| 日韩电影一二三区| 国产乱人伦精品一区二区在线观看 | 亚洲成a人v欧美综合天堂| 激情综合网最新| 在线观看欧美黄色| 欧美激情一区三区| 免费美女久久99| 91精品1区2区| 最新中文字幕一区二区三区| 免费黄网站欧美| 欧美日韩欧美一区二区| 国产丝袜在线精品| 免费美女久久99| 欧美日本国产一区| 亚洲欧美电影院| 99久久国产综合色|国产精品| 日韩一区二区影院| 免费的成人av| 在线不卡a资源高清| 婷婷国产在线综合| 欧美亚洲丝袜传媒另类| 亚洲一区影音先锋| 欧美综合欧美视频| 亚洲国产欧美另类丝袜| 色婷婷精品大在线视频 | 精品一区二区免费视频| 欧美一区二区三级| 亚洲伦理在线免费看| 成人精品视频一区二区三区尤物| 欧美日韩国产精品成人| 日韩avvvv在线播放| 日韩精品一区在线观看| 国产在线国偷精品免费看| 久久精品亚洲精品国产欧美| 国产69精品一区二区亚洲孕妇| 国产精品拍天天在线| 波多野结衣视频一区| 亚洲伊人伊色伊影伊综合网| 69久久99精品久久久久婷婷| 国内精品国产成人| 亚洲九九爱视频| 久久嫩草精品久久久久| av亚洲精华国产精华精华| 一区二区日韩电影| 日韩视频一区二区三区在线播放 | 国产成人免费高清| 国产日韩高清在线| 色诱亚洲精品久久久久久| 日本在线不卡一区| 亚洲欧美色综合| 2023国产精品自拍| 欧美在线综合视频| 成人av电影免费在线播放| 日韩精品久久理论片| 亚洲欧美自拍偷拍色图| 精品国产亚洲在线| 欧美熟乱第一页| 91欧美一区二区| 国产精品一区二区久久精品爱涩| 五月天视频一区| 一区二区三区电影在线播| 国产精品久久久久久久久快鸭| 欧美不卡一区二区三区四区| 欧美裸体bbwbbwbbw| 在线观看www91| 在线欧美小视频| 在线视频国内一区二区| 亚洲色图色小说| 日韩欧美一区二区免费| 成人av在线资源| 日本久久电影网| 91精品国产综合久久久久久久 | 国产精品视频你懂的| 亚洲欧美一区二区三区极速播放 | 久久亚洲综合色一区二区三区| 精品国产麻豆免费人成网站| 亚洲日本va在线观看| 日韩二区三区四区|