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

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

?? imdct.c

?? 從FFMPEG轉(zhuǎn)換而來(lái)的H264解碼程序,VC下編譯..
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/*
 * imdct.c
 * Copyright (C) 2000-2002 Michel Lespinasse <walken@zoy.org>
 * Copyright (C) 1999-2000 Aaron Holtzman <aholtzma@ess.engr.uvic.ca>
 *
 * The ifft algorithms in this file have been largely inspired by Dan
 * Bernstein's work, djbfft, available at http://cr.yp.to/djbfft.html
 *
 * This file is part of a52dec, a free ATSC A-52 stream decoder.
 * See http://liba52.sourceforge.net/ for updates.
 *
 * a52dec is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * a52dec 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 General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 * SSE optimizations from Michael Niedermayer (michaelni@gmx.at)
 * 3DNOW optimizations from Nick Kurshev <nickols_k@mail.ru>
 *   michael did port them from libac3 (untested, perhaps totally broken)
 * AltiVec optimizations from Romain Dolbeau (romain@dolbeau.org)
 */

#include "config.h"

#include <math.h>
#include <stdio.h>
#ifndef M_PI
#define M_PI 3.1415926535897932384626433832795029
#endif
#include <inttypes.h>

#include "a52.h"
#include "a52_internal.h"
#define FF_CPU_ONLY
#include "../../Tconfig.h"
#include "../../csimd.h"
#include "mangle.h"

using namespace csimd;

void (* a52_imdct_256) (sample_t *data, sample_t *delay, sample_t bias);
void (* a52_imdct_512) (sample_t *data, sample_t *delay, sample_t bias);

typedef struct complex_s {
    sample_t real;
    sample_t imag;
} complex_t;

static uint8_t fftorder[] = {
      0,128, 64,192, 32,160,224, 96, 16,144, 80,208,240,112, 48,176,
      8,136, 72,200, 40,168,232,104,248,120, 56,184, 24,152,216, 88,
      4,132, 68,196, 36,164,228,100, 20,148, 84,212,244,116, 52,180,
    252,124, 60,188, 28,156,220, 92, 12,140, 76,204,236,108, 44,172,
      2,130, 66,194, 34,162,226, 98, 18,146, 82,210,242,114, 50,178,
     10,138, 74,202, 42,170,234,106,250,122, 58,186, 26,154,218, 90,
    254,126, 62,190, 30,158,222, 94, 14,142, 78,206,238,110, 46,174,
      6,134, 70,198, 38,166,230,102,246,118, 54,182, 22,150,214, 86
};

/* Root values for IFFT */
static sample_t roots16[3];
static sample_t roots32[7];
static sample_t roots64[15];
static sample_t roots128[31];

#ifdef __GNUC__
  #define attribute_used __attribute__((used))
  #define attribute_aligned __attribute__((aligned(16)))
#else
  #define attribute_used
  #define attribute_aligned __declspec(align(16))
#endif

/* 128 point bit-reverse LUT */
static const uint8_t attribute_aligned attribute_used bit_reverse_512[] = {
	0x00, 0x40, 0x20, 0x60, 0x10, 0x50, 0x30, 0x70,
	0x08, 0x48, 0x28, 0x68, 0x18, 0x58, 0x38, 0x78,
	0x04, 0x44, 0x24, 0x64, 0x14, 0x54, 0x34, 0x74,
	0x0c, 0x4c, 0x2c, 0x6c, 0x1c, 0x5c, 0x3c, 0x7c,
	0x02, 0x42, 0x22, 0x62, 0x12, 0x52, 0x32, 0x72,
	0x0a, 0x4a, 0x2a, 0x6a, 0x1a, 0x5a, 0x3a, 0x7a,
	0x06, 0x46, 0x26, 0x66, 0x16, 0x56, 0x36, 0x76,
	0x0e, 0x4e, 0x2e, 0x6e, 0x1e, 0x5e, 0x3e, 0x7e,
	0x01, 0x41, 0x21, 0x61, 0x11, 0x51, 0x31, 0x71,
	0x09, 0x49, 0x29, 0x69, 0x19, 0x59, 0x39, 0x79,
	0x05, 0x45, 0x25, 0x65, 0x15, 0x55, 0x35, 0x75,
	0x0d, 0x4d, 0x2d, 0x6d, 0x1d, 0x5d, 0x3d, 0x7d,
	0x03, 0x43, 0x23, 0x63, 0x13, 0x53, 0x33, 0x73,
	0x0b, 0x4b, 0x2b, 0x6b, 0x1b, 0x5b, 0x3b, 0x7b,
	0x07, 0x47, 0x27, 0x67, 0x17, 0x57, 0x37, 0x77,
	0x0f, 0x4f, 0x2f, 0x6f, 0x1f, 0x5f, 0x3f, 0x7f};

// NOTE: SSE needs 16byte alignment or it will segfault
//
static float attribute_aligned sseSinCos1c[256];
static float attribute_aligned sseSinCos1d[256];
static const float attribute_used attribute_aligned ps111_1[4]={1,1,1,-1};
//static float attribute_aligned sseW0[4];
static float attribute_aligned sseW1[8];
static float attribute_aligned sseW2[16];
static float attribute_aligned sseW3[32];
static float attribute_aligned sseW4[64];
static float attribute_aligned sseW5[128];
static float attribute_aligned sseW6[256];
static float attribute_aligned *sseW[7]=
       {NULL /*sseW0*/,sseW1,sseW2,sseW3,sseW4,sseW5,sseW6};
static float attribute_aligned sseWindow[512];

/* Twiddle factor LUT */
static complex_t attribute_aligned w_1[1];
static complex_t attribute_aligned w_2[2];
static complex_t attribute_aligned w_4[4];
static complex_t attribute_aligned w_8[8];
static complex_t attribute_aligned w_16[16];
static complex_t attribute_aligned w_32[32];
static complex_t attribute_aligned w_64[64];
static complex_t attribute_aligned * w[7] = {w_1, w_2, w_4, w_8, w_16, w_32, w_64};

/* Twiddle factors for IMDCT */
static sample_t attribute_aligned xcos1[128];
static sample_t attribute_aligned xsin1[128];
static sample_t attribute_aligned xcos2[64];
static sample_t attribute_aligned xsin2[64];

/* Windowing function for Modified DCT - Thank you acroread */
static const sample_t imdct_window[] = {
	0.00014, 0.00024, 0.00037, 0.00051, 0.00067, 0.00086, 0.00107, 0.00130,
	0.00157, 0.00187, 0.00220, 0.00256, 0.00297, 0.00341, 0.00390, 0.00443,
	0.00501, 0.00564, 0.00632, 0.00706, 0.00785, 0.00871, 0.00962, 0.01061,
	0.01166, 0.01279, 0.01399, 0.01526, 0.01662, 0.01806, 0.01959, 0.02121,
	0.02292, 0.02472, 0.02662, 0.02863, 0.03073, 0.03294, 0.03527, 0.03770,
	0.04025, 0.04292, 0.04571, 0.04862, 0.05165, 0.05481, 0.05810, 0.06153,
	0.06508, 0.06878, 0.07261, 0.07658, 0.08069, 0.08495, 0.08935, 0.09389,
	0.09859, 0.10343, 0.10842, 0.11356, 0.11885, 0.12429, 0.12988, 0.13563,
	0.14152, 0.14757, 0.15376, 0.16011, 0.16661, 0.17325, 0.18005, 0.18699,
	0.19407, 0.20130, 0.20867, 0.21618, 0.22382, 0.23161, 0.23952, 0.24757,
	0.25574, 0.26404, 0.27246, 0.28100, 0.28965, 0.29841, 0.30729, 0.31626,
	0.32533, 0.33450, 0.34376, 0.35311, 0.36253, 0.37204, 0.38161, 0.39126,
	0.40096, 0.41072, 0.42054, 0.43040, 0.44030, 0.45023, 0.46020, 0.47019,
	0.48020, 0.49022, 0.50025, 0.51028, 0.52031, 0.53033, 0.54033, 0.55031,
	0.56026, 0.57019, 0.58007, 0.58991, 0.59970, 0.60944, 0.61912, 0.62873,
	0.63827, 0.64774, 0.65713, 0.66643, 0.67564, 0.68476, 0.69377, 0.70269,
	0.71150, 0.72019, 0.72877, 0.73723, 0.74557, 0.75378, 0.76186, 0.76981,
	0.77762, 0.78530, 0.79283, 0.80022, 0.80747, 0.81457, 0.82151, 0.82831,
	0.83496, 0.84145, 0.84779, 0.85398, 0.86001, 0.86588, 0.87160, 0.87716,
	0.88257, 0.88782, 0.89291, 0.89785, 0.90264, 0.90728, 0.91176, 0.91610,
	0.92028, 0.92432, 0.92822, 0.93197, 0.93558, 0.93906, 0.94240, 0.94560,
	0.94867, 0.95162, 0.95444, 0.95713, 0.95971, 0.96217, 0.96451, 0.96674,
	0.96887, 0.97089, 0.97281, 0.97463, 0.97635, 0.97799, 0.97953, 0.98099,
	0.98236, 0.98366, 0.98488, 0.98602, 0.98710, 0.98811, 0.98905, 0.98994,
	0.99076, 0.99153, 0.99225, 0.99291, 0.99353, 0.99411, 0.99464, 0.99513,
	0.99558, 0.99600, 0.99639, 0.99674, 0.99706, 0.99736, 0.99763, 0.99788,
	0.99811, 0.99831, 0.99850, 0.99867, 0.99882, 0.99895, 0.99908, 0.99919,
	0.99929, 0.99938, 0.99946, 0.99953, 0.99959, 0.99965, 0.99969, 0.99974,
	0.99978, 0.99981, 0.99984, 0.99986, 0.99988, 0.99990, 0.99992, 0.99993,
	0.99994, 0.99995, 0.99996, 0.99997, 0.99998, 0.99998, 0.99998, 0.99999,
	0.99999, 0.99999, 0.99999, 1.00000, 1.00000, 1.00000, 1.00000, 1.00000,
	1.00000, 1.00000, 1.00000, 1.00000, 1.00000, 1.00000, 1.00000, 1.00000 };

/* Twiddle factors for IMDCT */
static complex_t pre1[128];
static complex_t post1[64];
static complex_t pre2[64];
static complex_t post2[32];

static sample_t a52_imdct_window[256];

static void (* ifft128) (complex_t * buf);
static void (* ifft64) (complex_t * buf);

static inline void ifft2 (complex_t * buf)
{
    sample_t r, i;

    r = buf[0].real;
    i = buf[0].imag;
    buf[0].real += buf[1].real;
    buf[0].imag += buf[1].imag;
    buf[1].real = r - buf[1].real;
    buf[1].imag = i - buf[1].imag;
}

static inline void ifft4 (complex_t * buf)
{
    sample_t tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7, tmp8;

    tmp1 = buf[0].real + buf[1].real;
    tmp2 = buf[3].real + buf[2].real;
    tmp3 = buf[0].imag + buf[1].imag;
    tmp4 = buf[2].imag + buf[3].imag;
    tmp5 = buf[0].real - buf[1].real;
    tmp6 = buf[0].imag - buf[1].imag;
    tmp7 = buf[2].imag - buf[3].imag;
    tmp8 = buf[3].real - buf[2].real;

    buf[0].real = tmp1 + tmp2;
    buf[0].imag = tmp3 + tmp4;
    buf[2].real = tmp1 - tmp2;
    buf[2].imag = tmp3 - tmp4;
    buf[1].real = tmp5 + tmp7;
    buf[1].imag = tmp6 + tmp8;
    buf[3].real = tmp5 - tmp7;
    buf[3].imag = tmp6 - tmp8;
}

/* the basic split-radix ifft butterfly */

#define BUTTERFLY(a0,a1,a2,a3,wr,wi) do {	\
    tmp5 = a2.real * wr + a2.imag * wi;		\
    tmp6 = a2.imag * wr - a2.real * wi;		\
    tmp7 = a3.real * wr - a3.imag * wi;		\
    tmp8 = a3.imag * wr + a3.real * wi;		\
    tmp1 = tmp5 + tmp7;				\
    tmp2 = tmp6 + tmp8;				\
    tmp3 = tmp6 - tmp8;				\
    tmp4 = tmp7 - tmp5;				\
    a2.real = a0.real - tmp1;			\
    a2.imag = a0.imag - tmp2;			\
    a3.real = a1.real - tmp3;			\
    a3.imag = a1.imag - tmp4;			\
    a0.real += tmp1;				\
    a0.imag += tmp2;				\
    a1.real += tmp3;				\
    a1.imag += tmp4;				\
} while (0)

/* split-radix ifft butterfly, specialized for wr=1 wi=0 */

#define BUTTERFLY_ZERO(a0,a1,a2,a3) do {	\
    tmp1 = a2.real + a3.real;			\
    tmp2 = a2.imag + a3.imag;			\
    tmp3 = a2.imag - a3.imag;			\
    tmp4 = a3.real - a2.real;			\
    a2.real = a0.real - tmp1;			\
    a2.imag = a0.imag - tmp2;			\
    a3.real = a1.real - tmp3;			\
    a3.imag = a1.imag - tmp4;			\
    a0.real += tmp1;				\
    a0.imag += tmp2;				\
    a1.real += tmp3;				\
    a1.imag += tmp4;				\
} while (0)

/* split-radix ifft butterfly, specialized for wr=wi */

#define BUTTERFLY_HALF(a0,a1,a2,a3,w) do {	\
    tmp5 = (a2.real + a2.imag) * w;		\
    tmp6 = (a2.imag - a2.real) * w;		\
    tmp7 = (a3.real - a3.imag) * w;		\
    tmp8 = (a3.imag + a3.real) * w;		\
    tmp1 = tmp5 + tmp7;				\
    tmp2 = tmp6 + tmp8;				\
    tmp3 = tmp6 - tmp8;				\
    tmp4 = tmp7 - tmp5;				\
    a2.real = a0.real - tmp1;			\
    a2.imag = a0.imag - tmp2;			\
    a3.real = a1.real - tmp3;			\
    a3.imag = a1.imag - tmp4;			\
    a0.real += tmp1;				\
    a0.imag += tmp2;				\
    a1.real += tmp3;				\
    a1.imag += tmp4;				\
} while (0)

static inline void ifft8 (complex_t * buf)
{
    sample_t tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7, tmp8;

    ifft4 (buf);
    ifft2 (buf + 4);
    ifft2 (buf + 6);
    BUTTERFLY_ZERO (buf[0], buf[2], buf[4], buf[6]);
    BUTTERFLY_HALF (buf[1], buf[3], buf[5], buf[7], roots16[1]);
}

static void ifft_pass (complex_t * buf, sample_t * weight, int n)
{
    complex_t * buf1;
    complex_t * buf2;
    complex_t * buf3;
    sample_t tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7, tmp8;
    int i;

    buf++;
    buf1 = buf + n;
    buf2 = buf + 2 * n;
    buf3 = buf + 3 * n;

    BUTTERFLY_ZERO (buf[-1], buf1[-1], buf2[-1], buf3[-1]);

    i = n - 1;

    do {
	BUTTERFLY (buf[0], buf1[0], buf2[0], buf3[0], weight[n], weight[2*i]);
	buf++;
	buf1++;
	buf2++;
	buf3++;
	weight++;
    } while (--i);
}

static void ifft16 (complex_t * buf)
{
    ifft8 (buf);
    ifft4 (buf + 8);
    ifft4 (buf + 12);
    ifft_pass (buf, roots16 - 4, 4);
}

static void ifft32 (complex_t * buf)
{
    ifft16 (buf);
    ifft8 (buf + 16);
    ifft8 (buf + 24);
    ifft_pass (buf, roots32 - 8, 8);
}


static void ifft64_c (complex_t * buf)
{
    ifft32 (buf);
    ifft16 (buf + 32);
    ifft16 (buf + 48);
    ifft_pass (buf, roots64 - 16, 16);
}


static void ifft128_c (complex_t * buf)
{
    ifft32 (buf);
    ifft16 (buf + 32);
    ifft16 (buf + 48);
    ifft_pass (buf, roots64 - 16, 16);

    ifft32 (buf + 64);
    ifft32 (buf + 96);
    ifft_pass (buf, roots128 - 32, 32);
}

static void a52_imdct_512_C (sample_t * data, sample_t * delay, sample_t bias)
{
    int i, k;
    sample_t t_r, t_i, a_r, a_i, b_r, b_i, w_1, w_2;
    const sample_t * window = a52_imdct_window;
    complex_t buf[128];

    for (i = 0; i < 128; i++) {
	k = fftorder[i];
	t_r = pre1[i].real;
	t_i = pre1[i].imag;

	buf[i].real = t_i * data[255-k] + t_r * data[k];
	buf[i].imag = t_r * data[255-k] - t_i * data[k];
    }

    ifft128 (buf);

    /* Post IFFT complex multiply plus IFFT complex conjugate*/
    /* Window and convert to real valued signal */
    for (i = 0; i < 64; i++) {
	/* y[n] = z[n] * (xcos1[n] + j * xsin1[n]) ; */
	t_r = post1[i].real;
	t_i = post1[i].imag;

	a_r = t_r * buf[i].real     + t_i * buf[i].imag;
	a_i = t_i * buf[i].real     - t_r * buf[i].imag;
	b_r = t_i * buf[127-i].real + t_r * buf[127-i].imag;
	b_i = t_r * buf[127-i].real - t_i * buf[127-i].imag;

	w_1 = window[2*i];
	w_2 = window[255-2*i];
	data[2*i]     = delay[2*i] * w_2 - a_r * w_1 + bias;
	data[255-2*i] = delay[2*i] * w_1 + a_r * w_2 + bias;
	delay[2*i] = a_i;

	w_1 = window[2*i+1];
	w_2 = window[254-2*i];
	data[2*i+1]   = delay[2*i+1] * w_2 + b_r * w_1 + bias;
	data[254-2*i] = delay[2*i+1] * w_1 - b_r * w_2 + bias;
	delay[2*i+1] = b_i;
    }
}

void
imdct_do_512_sse(sample_t data[],sample_t delay[], sample_t bias)
{
    int m;
    int two_m;
    int two_m_plus_one;

    sample_t *data_ptr;
    sample_t *delay_ptr;

    complex_t attribute_aligned buf[128];

    /* 512 IMDCT with source and dest data in 'data' */
    /* see the c version (dct_do_512()), its allmost identical, just in C */

    /* Pre IFFT complex multiply plus IFFT cmplx conjugate */
    /* Bit reversed shuffling */
    {
		int esi=0;
		const uint8_t *eax=bit_reverse_512;
		__m128 xmm0,xmm1,xmm2;
		for (int edi=1008;edi>=0;esi+=16,eax+=2,edi-=16) {
		    movlps ((uint8_t*)data+ esi, xmm0);		 // XXXI
		    movhps (8+(uint8_t*)data+ edi, xmm0);		 // RXXI
		    movlps (8+(uint8_t*)data+ esi, xmm1);		 // XXXi
		    movhps ((uint8_t*)data+ edi, xmm1);		 // rXXi
		    xmm0=_mm_shuffle_ps(xmm0,xmm1,0x33); //shufps (0x33, xmm1, xmm0);		 // irIR
		    movaps ((uint8_t*)sseSinCos1c+esi, xmm2);
		    mulps (xmm0, xmm2);
		    xmm0=_mm_shuffle_ps(xmm0,xmm0,0xB1); //shufps $0xB1, xmm0, xmm0		 // riRI
		    mulps ((uint8_t*)sseSinCos1d+esi, xmm0);
		    subps (xmm0, xmm2);
		    //movzbl (eax), edx
		    //movzbl 1(eax), ebp
		    movlps (xmm2, (uint8_t*)buf+ eax[0]*8);
		    movhps (xmm2, (uint8_t*)buf+ eax[1]*8);
		}
	}


    /* FFT Merge */
/* unoptimized variant
    for (m=1; m < 7; m++) {
	if(m)

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精选午夜久久久乱码6080| 欧美老年两性高潮| 日韩一区欧美二区| 国产精品免费视频网站| 欧美伦理电影网| 91视频在线观看免费| 国产精品乡下勾搭老头1| 五月综合激情网| 中文字幕一区二区三区视频| 日韩视频一区在线观看| 色婷婷激情久久| 成人精品亚洲人成在线| 国产美女av一区二区三区| 亚洲3atv精品一区二区三区| 1024成人网色www| 久久久久久免费网| 日韩美女在线视频| 欧美理论片在线| 欧美做爰猛烈大尺度电影无法无天| 国产在线播放一区三区四| 日韩高清不卡在线| 五月天国产精品| 亚洲综合免费观看高清完整版 | 91亚洲国产成人精品一区二区三| 韩国女主播一区二区三区| 石原莉奈在线亚洲三区| 亚洲一区二区三区在线| 亚洲视频小说图片| 中文字幕一区二区日韩精品绯色| 久久精品一二三| 久久久av毛片精品| 欧美激情中文字幕一区二区| 26uuu久久综合| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 国产精品久线观看视频| 国产午夜精品一区二区 | 91麻豆精品国产91久久久久| 欧洲人成人精品| 欧美三级电影网站| 欧美日韩国产a| 欧美另类一区二区三区| 91精品婷婷国产综合久久性色| 欧美日韩免费视频| 欧美精选午夜久久久乱码6080| 欧美日韩色一区| 欧美一区二区免费视频| 日韩欧美国产麻豆| 国产亚洲欧美中文| 国产精品久久久久三级| 亚洲美女屁股眼交3| 一区二区免费看| 日韩精品一二区| 麻豆精品蜜桃视频网站| 国产美女在线观看一区| 成人午夜视频免费看| 91在线小视频| 欧美少妇bbb| 日韩天堂在线观看| 国产欧美一区二区三区鸳鸯浴| 欧美激情综合五月色丁香小说| 自拍偷拍亚洲欧美日韩| 一区二区不卡在线视频 午夜欧美不卡在| 亚洲已满18点击进入久久| 日韩中文字幕麻豆| 国产精品综合二区| 色八戒一区二区三区| 91精品国产高清一区二区三区 | 老色鬼精品视频在线观看播放| 国产一区二区三区在线观看免费| 成人国产在线观看| 欧美日韩视频在线观看一区二区三区 | 高清不卡一区二区| 91国在线观看| 欧美大片在线观看一区二区| 欧美国产日产图区| 亚洲大片在线观看| 国产成人99久久亚洲综合精品| 91免费观看视频| 欧美大片日本大片免费观看| 国产精品久久久久久亚洲毛片| 亚洲在线免费播放| 国产精品1区2区| 欧美绝品在线观看成人午夜影视| 久久久欧美精品sm网站| 一区二区三区精品视频| 国内精品视频666| 色94色欧美sute亚洲线路一久| 日韩女优制服丝袜电影| 亚洲女与黑人做爰| 国产精品一区二区三区网站| 欧美日韩一区不卡| 欧美国产成人精品| 日本sm残虐另类| 97se亚洲国产综合在线| 337p粉嫩大胆噜噜噜噜噜91av| 一区二区三区四区在线| 国产成人亚洲综合a∨婷婷| 欧美日韩精品专区| 国产精品私人影院| 久久综合综合久久综合| 91豆麻精品91久久久久久| 国产日韩精品视频一区| 美国三级日本三级久久99| 91黄视频在线| 成人免费一区二区三区视频| 精品影视av免费| 欧美高清视频不卡网| 亚洲乱码一区二区三区在线观看| 国产伦精品一区二区三区免费| 欧美挠脚心视频网站| 日韩伦理av电影| 粉嫩绯色av一区二区在线观看| 欧美一区二区在线免费播放| 一区二区欧美视频| 91亚洲国产成人精品一区二三| 欧美国产精品专区| 国产成人三级在线观看| 精品少妇一区二区三区免费观看| 亚洲福利电影网| 在线观看国产一区二区| 亚洲三级在线看| 91在线丨porny丨国产| 国产精品成人在线观看| 国产91精品久久久久久久网曝门| 精品国内片67194| 蜜臀av一区二区| 日韩欧美国产小视频| 蜜桃av噜噜一区| 日韩免费一区二区三区在线播放| 日韩—二三区免费观看av| 777亚洲妇女| 轻轻草成人在线| 日韩欧美高清dvd碟片| 麻豆成人久久精品二区三区红| 欧美一区永久视频免费观看| 免费在线成人网| 精品日韩欧美一区二区| 国产一区二区三区在线观看精品 | 欧美日韩一区高清| 亚洲成a人片综合在线| 欧美高清性hdvideosex| 日本欧美一区二区| 欧美r级在线观看| 国产精品亚洲成人| 国产精品久久久久久妇女6080| 不卡欧美aaaaa| 亚洲免费大片在线观看| 欧美日韩精品一区二区| 欧美aaaaaa午夜精品| 精品国产免费人成在线观看| 国产大片一区二区| 亚洲视频免费在线| 久久久久97国产精华液好用吗| 国产成人无遮挡在线视频| 日韩理论片在线| 欧美日韩夫妻久久| 精品一区二区三区免费观看| 久久精品一区二区| 色先锋资源久久综合| 婷婷久久综合九色国产成人| 欧美v亚洲v综合ⅴ国产v| 丁香天五香天堂综合| 一级特黄大欧美久久久| 日韩美女视频一区二区在线观看| 国产激情一区二区三区四区 | 久88久久88久久久| 国产精品天干天干在观线| 在线观看日韩精品| 蜜臂av日日欢夜夜爽一区| 中文字幕不卡三区| 精品视频在线看| 国产在线播放一区| 夜夜爽夜夜爽精品视频| 精品久久久久久久一区二区蜜臀| 丰满放荡岳乱妇91ww| 婷婷国产v国产偷v亚洲高清| 久久免费国产精品| 在线观看亚洲专区| 韩国精品主播一区二区在线观看| 1024国产精品| 精品久久久久久亚洲综合网 | 欧美撒尿777hd撒尿| 国产在线播放一区二区三区| 亚洲精品videosex极品| 欧美第一区第二区| 欧美亚洲尤物久久| 国产精品一区二区在线观看不卡| 亚洲尤物视频在线| 欧美激情资源网| 欧美一区二区高清| 91小视频在线免费看| 激情综合一区二区三区| 一区二区三区精品在线观看| 久久午夜色播影院免费高清| 欧美日韩亚洲另类| 99精品1区2区| 国产精品18久久久久久久久久久久 | 日精品一区二区三区| 美女一区二区三区| 亚洲一区二区视频在线观看|