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

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

?? utility.c

?? H264EncPlayer,H264協議解碼與播放代碼
?? C
字號:
/*****************************************************************************
 *
 *  T264 AVC CODEC
 *
 *  Copyright(C) 2004-2005 llcc <lcgate1@yahoo.com.cn>
 *               2004-2005 visionany <visionany@yahoo.com.cn>
 *      2005.1.13 CloudWu modify PIA_u_wxh_c() function
 *  This program 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.
 *
 *  This program 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
 *
 ****************************************************************************/

#define Q_BITS          15
#define DQ_BITS         6
#define DQ_ROUND        (1<<(DQ_BITS-1))

#include "stdio.h"
#include "portab.h"
#ifndef CHIP_DM642
#include "malloc.h"
#endif
#include "utility.h"
#ifndef CHIP_DM642
#include "memory.h"
#endif
//
// from xvid
//
void* 
T264_malloc(int32_t size, int32_t alignment)
{
    uint8_t *mem_ptr;

    if (!alignment) {

        /* We have not to satisfy any alignment */
        if ((mem_ptr = (uint8_t *) malloc(size + 1)) != NULL) {

            /* Store (mem_ptr - "real allocated memory") in *(mem_ptr-1) */
            *mem_ptr = (uint8_t)1;

            /* Return the mem_ptr pointer */
            return ((void *)(mem_ptr+1));
        }
    } else {
        uint8_t *tmp;

        /* Allocate the required size memory + alignment so we
        * can realign the data if necessary */
        if ((tmp = (uint8_t *) malloc(size + alignment)) != NULL) {

            /* Align the tmp pointer */
            mem_ptr =
                (uint8_t *) ((uint32_t) (tmp + alignment - 1) &
                (~(uint32_t) (alignment - 1)));

            /* Special case where malloc have already satisfied the alignment
            * We must add alignment to mem_ptr because we must store
            * (mem_ptr - tmp) in *(mem_ptr-1)
            * If we do not add alignment to mem_ptr then *(mem_ptr-1) points
            * to a forbidden memory space */
            if (mem_ptr == tmp)
                mem_ptr += alignment;

            /* (mem_ptr - tmp) is stored in *(mem_ptr-1) so we are able to retrieve
            * the real malloc block allocated and free it in xvid_free */
            *(mem_ptr - 1) = (uint8_t) (mem_ptr - tmp);

            /* Return the aligned pointer */
            return ((void *)mem_ptr);
        }
    }

    return(NULL);
}

void 
T264_free(void* p)
{
    uint8_t *ptr;

    if (p == NULL)
        return;

    /* Aligned pointer */
    ptr = p;

    /* *(ptr - 1) holds the offset to the real allocated block
    * we sub that offset os we free the real pointer */
    ptr -= *(ptr - 1);

    /* Free the memory */
    free(ptr);
}

void
expand8to16_c(uint8_t* src, int32_t src_stride, int32_t quarter_width, int32_t quarter_height, int16_t* dst)
{
    int32_t i, j;

    for(i = 0 ; i < quarter_height * 4 ; i ++)
    {
        for(j = 0 ; j < quarter_width ; j ++)
        {
            dst[i * quarter_width * 4 + j * 4 + 0] = src[0 + j * 4];
            dst[i * quarter_width * 4 + j * 4 + 1] = src[1 + j * 4];
            dst[i * quarter_width * 4 + j * 4 + 2] = src[2 + j * 4];
            dst[i * quarter_width * 4 + j * 4 + 3] = src[3 + j * 4];
        }
        src += src_stride;
    }
}

void
expand8to16sub_c(uint8_t* pred, int32_t quarter_width, int32_t quarter_height, int16_t* dst, uint8_t* src, int32_t src_stride)
{
    int32_t i, j, k;
    uint8_t* start_p;
    uint8_t* start_s;
    
    for(i = 0 ; i < quarter_height ; i ++)
    {
        for(j = 0 ; j < quarter_width ; j ++)
        {
            start_p = pred + i * quarter_width * 4 * 4 + j * 4;
            start_s = src + i * src_stride * 4 + j * 4;
            for(k = 0 ; k < 4 ; k ++)
            {
                dst[0] = start_s[0] - start_p[0];
                dst[1] = start_s[1] - start_p[1];
                dst[2] = start_s[2] - start_p[2];
                dst[3] = start_s[3] - start_p[3];

                dst     += 4;
                start_p += 4 * quarter_width;
                start_s += src_stride;
            }
        }
    }
}

void
contract16to8_c(int16_t* src, int32_t quarter_width, int32_t quarter_height, uint8_t* dst, int32_t dst_stride)
{
    int32_t i, j;

    for(i = 0 ; i < quarter_height * 4 ; i ++)
    {
        for(j = 0 ; j < quarter_width ; j ++)
        {
            int16_t tmp;
            tmp = src[i * quarter_width * 4 + j * 4 + 0];
            dst[0 + j * 4] = CLIP1(tmp);
            tmp = src[i * quarter_width * 4 + j * 4 + 1];
            dst[1 + j * 4] = CLIP1(tmp);
            tmp = src[i * quarter_width * 4 + j * 4 + 2];
            dst[2 + j * 4] = CLIP1(tmp);
            tmp = src[i * quarter_width * 4 + j * 4 + 3];
            dst[3 + j * 4] = CLIP1(tmp);
        }
        dst += dst_stride;
    }
}

void	//assigned
contract16to8add_c(int16_t* src, int32_t quarter_width, int32_t quarter_height, uint8_t* pred, uint8_t* dst, int32_t dst_stride)
{
    int32_t i, j, k;
    uint8_t* start_p;
    uint8_t* start_d;

    for(i = 0 ; i < quarter_height ; i ++)
    {
        for(j = 0 ; j < quarter_width ; j ++)
        {
            start_p = pred + i * quarter_width * 4 * 4 + j * 4;
            start_d = dst + i * dst_stride * 4 + j * 4;
            for(k = 0 ; k < 4 ; k ++)
            {
                int16_t tmp;

                tmp = src[0] + start_p[0];
                start_d[0] = CLIP1(tmp);
                tmp = src[1] + start_p[1];
                start_d[1] = CLIP1(tmp);
                tmp = src[2] + start_p[2];
                start_d[2] = CLIP1(tmp);
                tmp = src[3] + start_p[3];
                start_d[3] = CLIP1(tmp);

                //tmp = (src[0] + (start_p[0] << DQ_BITS) + DQ_ROUND) >> DQ_BITS;
                //start_d[0] = CLIP1(tmp);
                //tmp = (src[1] + (start_p[1] << DQ_BITS) + DQ_ROUND) >> DQ_BITS;
                //start_d[1] = CLIP1(tmp);
                //tmp = (src[2] + (start_p[2] << DQ_BITS) + DQ_ROUND) >> DQ_BITS;
                //start_d[2] = CLIP1(tmp);
                //tmp = (src[3] + (start_p[3] << DQ_BITS) + DQ_ROUND) >> DQ_BITS;
                //start_d[3] = CLIP1(tmp);

                src     += 4;
                start_p += 4 * quarter_width;
                start_d += dst_stride;
            }
        }
    }
}

void
memcpy_stride_u_c(void* src, int32_t width, int32_t height, int32_t src_stride, void* dst, int32_t dst_stride)
{
    int32_t i;
    uint8_t* s = src;
    uint8_t* d = dst;

    for(i = 0 ; i < height ; i ++)
    {
        memcpy(d, s, width);
        s += src_stride;
        d += dst_stride;
    }
}

static __inline uint32_t
T264_sad_u_c(uint8_t* src, int32_t src_stride, uint8_t* data, int32_t width, int32_t height, int32_t dst_stride)
{
    int32_t i, j;
    uint32_t sad;

    sad = 0;
    for(i = 0 ; i < height ; i ++)
    {
        for(j = 0 ; j < width ; j ++)
        {
            int32_t tmp = data[j] - src[j];
            sad += ABS(tmp);
        }
        src  += src_stride;
        data += dst_stride;
    }

    return sad;
}

//copied from JM,by cloud wu
static __inline 
uint32_t _satd_4x4_dif_c(int16_t* diff)
{
  int32_t k, satd = 0, m[16], dd, d[16];
    
    /*===== hadamard transform =====*/
    m[ 0] = diff[ 0] + diff[12];
    m[ 4] = diff[ 4] + diff[ 8];
    m[ 8] = diff[ 4] - diff[ 8];
    m[12] = diff[ 0] - diff[12];
    m[ 1] = diff[ 1] + diff[13];
    m[ 5] = diff[ 5] + diff[ 9];
    m[ 9] = diff[ 5] - diff[ 9];
    m[13] = diff[ 1] - diff[13];
    m[ 2] = diff[ 2] + diff[14];
    m[ 6] = diff[ 6] + diff[10];
    m[10] = diff[ 6] - diff[10];
    m[14] = diff[ 2] - diff[14];
    m[ 3] = diff[ 3] + diff[15];
    m[ 7] = diff[ 7] + diff[11];
    m[11] = diff[ 7] - diff[11];
    m[15] = diff[ 3] - diff[15];
    
    d[ 0] = m[ 0] + m[ 4];
    d[ 8] = m[ 0] - m[ 4];
    d[ 4] = m[ 8] + m[12];
    d[12] = m[12] - m[ 8];
    d[ 1] = m[ 1] + m[ 5];
    d[ 9] = m[ 1] - m[ 5];
    d[ 5] = m[ 9] + m[13];
    d[13] = m[13] - m[ 9];
    d[ 2] = m[ 2] + m[ 6];
    d[10] = m[ 2] - m[ 6];
    d[ 6] = m[10] + m[14];
    d[14] = m[14] - m[10];
    d[ 3] = m[ 3] + m[ 7];
    d[11] = m[ 3] - m[ 7];
    d[ 7] = m[11] + m[15];
    d[15] = m[15] - m[11];
    
    m[ 0] = d[ 0] + d[ 3];
    m[ 1] = d[ 1] + d[ 2];
    m[ 2] = d[ 1] - d[ 2];
    m[ 3] = d[ 0] - d[ 3];
    m[ 4] = d[ 4] + d[ 7];
    m[ 5] = d[ 5] + d[ 6];
    m[ 6] = d[ 5] - d[ 6];
    m[ 7] = d[ 4] - d[ 7];
    m[ 8] = d[ 8] + d[11];
    m[ 9] = d[ 9] + d[10];
    m[10] = d[ 9] - d[10];
    m[11] = d[ 8] - d[11];
    m[12] = d[12] + d[15];
    m[13] = d[13] + d[14];
    m[14] = d[13] - d[14];
    m[15] = d[12] - d[15];
    
    d[ 0] = m[ 0] + m[ 1];
    d[ 1] = m[ 0] - m[ 1];
    d[ 2] = m[ 2] + m[ 3];
    d[ 3] = m[ 3] - m[ 2];
    d[ 4] = m[ 4] + m[ 5];
    d[ 5] = m[ 4] - m[ 5];
    d[ 6] = m[ 6] + m[ 7];
    d[ 7] = m[ 7] - m[ 6];
    d[ 8] = m[ 8] + m[ 9];
    d[ 9] = m[ 8] - m[ 9];
    d[10] = m[10] + m[11];
    d[11] = m[11] - m[10];
    d[12] = m[12] + m[13];
    d[13] = m[12] - m[13];
    d[14] = m[14] + m[15];
    d[15] = m[15] - m[14];
    
    /*===== sum up =====*/
    for (dd=d[k=0]; k<16; dd=d[++k])
    {
      satd += (dd < 0 ? -dd : dd);
    }
    satd = ((satd+1)>>1);

    return satd;
}

static __inline uint32_t
T264_satd_u_c(uint8_t* src, int32_t src_stride, uint8_t* data, int32_t width, int32_t height, int32_t dst_stride)
{
    int32_t i, j, n, m;
    uint32_t sad;
    int16_t tmp[16];

    sad = 0;
    for(i = 0 ; i < height ; i += 4)
    {
        for(j = 0 ; j < width ; j += 4)
        {
            uint8_t* tmp_s = src + i * src_stride + j;
            uint8_t* tmp_d = data+ i * dst_stride + j;
            for(n = 0 ; n < 4 ; n ++)
            {
                for(m = 0 ; m < 4 ; m ++)
                    tmp[n * 4 + m] = tmp_d[m] - tmp_s[m];
                tmp_d += dst_stride;
                tmp_s += src_stride;
            }

            sad += _satd_4x4_dif_c(tmp);
        }
    }

    return sad;
}


#define SADFUNC(w, h, base)    \
uint32_t                    \
T264_##base##_u_##w##x##h##_c(uint8_t* src, int32_t src_stride, uint8_t* data, int32_t dst_stride)  \
{   \
    return T264_##base##_u_c(src, src_stride, data, w, h, dst_stride); \
}

SADFUNC(16, 16, sad)
SADFUNC(16, 8,  sad)
SADFUNC(8,  16, sad)
SADFUNC(8,  8,  sad)
SADFUNC(8,  4,  sad)
SADFUNC(4,  8,  sad)
SADFUNC(4,  4,  sad)

SADFUNC(16, 16, satd)
SADFUNC(16, 8,  satd)
SADFUNC(8,  16, satd)
SADFUNC(8,  8,  satd)
SADFUNC(8,  4,  satd)
SADFUNC(4,  8,  satd)
SADFUNC(4,  4,  satd)

/**********************************************************************************
 *
 *  Based on the FUNCTION T264_satd_u_c()
 *  use SATD for 16x16 Intra
 *  Thomascatlee@163.com
 *
 *********************************************************************************/

uint32_t
T264_satd_i16x16_u_c(uint8_t* src, int32_t src_stride, uint8_t* data, int32_t dst_stride)
{
    return T264_satd_u_c(src,src_stride,  data, 16,16,dst_stride);    
/*    int32_t i, j, n, m, k;
    uint32_t sad;
    int16_t tmp[16];
    int16_t s_dc[16];
    int16_t s[4];

    sad = 0;
    k = 0;
    for(i = 0 ; i < 16 ; i += 4)
    {
        for(j = 0 ; j < 16 ; j += 4)
        {
            uint8_t* tmp_s = src + i * src_stride + j;
            uint8_t* tmp_d = data+ i * dst_stride + j;
            for(n = 0 ; n < 4 ; n ++)
            {
                for(m = 0 ; m < 4 ; m ++)
                    tmp[n * 4 + m] = tmp_d[m] - tmp_s[m];
                tmp_d += dst_stride;
                tmp_s += src_stride;
            }

            for(n = 0 ; n < 4 ; n ++)
            {
                s[0] = tmp[0 * 4 + n] + tmp[3 * 4 + n];
                s[3] = tmp[0 * 4 + n] - tmp[3 * 4 + n];
                s[1] = tmp[1 * 4 + n] + tmp[2 * 4 + n];
                s[2] = tmp[1 * 4 + n] - tmp[2 * 4 + n];

                tmp[0 * 4 + n] = s[0] + s[1];
                tmp[2 * 4 + n] = s[0] - s[1];
                tmp[1 * 4 + n] = s[3] + s[2];
                tmp[3 * 4 + n] = s[3] - s[2];
            }
            
            //  Add for get DC coeff
            n = 0;
            s[0] = tmp[n * 4 + 0] + tmp[n * 4 + 3];
            s[3] = tmp[n * 4 + 0] - tmp[n * 4 + 3];
            s[1] = tmp[n * 4 + 1] + tmp[n * 4 + 2];
            s[2] = tmp[n * 4 + 1] - tmp[n * 4 + 2];
            s_dc[k] = ((s[0] + s[1]) >> 2);
            sad += ABS(s[0] - s[1]);
            sad += ABS(s[3] + s[2]);
            sad += ABS(s[3] - s[2]);
            k++;
            
            for(n = 1 ; n < 4 ; n ++)
            {
                s[0] = tmp[n * 4 + 0] + tmp[n * 4 + 3];
                s[3] = tmp[n * 4 + 0] - tmp[n * 4 + 3];
                s[1] = tmp[n * 4 + 1] + tmp[n * 4 + 2];
                s[2] = tmp[n * 4 + 1] - tmp[n * 4 + 2];
                sad += ABS(s[0] + s[1]);
                sad += ABS(s[0] - s[1]);
                sad += ABS(s[3] + s[2]);
                sad += ABS(s[3] - s[2]);
             }

           

        }
    }

    //  Hadamard of DC coeff 
    for(n = 0 ; n < 4 ; n ++)
    {
      s[0] = s_dc[0 * 4 + n] + s_dc[3 * 4 + n];
      s[3] = s_dc[0 * 4 + n] - s_dc[3 * 4 + n];
      s[1] = s_dc[1 * 4 + n] + s_dc[2 * 4 + n];
      s[2] = s_dc[1 * 4 + n] - s_dc[2 * 4 + n];
      
      tmp[0 * 4 + n] = s[0] + s[1];
      tmp[2 * 4 + n] = s[0] - s[1];
      tmp[1 * 4 + n] = s[3] + s[2];
      tmp[3 * 4 + n] = s[3] - s[2];
    }
    for(n = 0 ; n < 4 ; n ++)
    {
      s[0] = tmp[n * 4 + 0] + tmp[n * 4 + 3];
      s[3] = tmp[n * 4 + 0] - tmp[n * 4 + 3];
      s[1] = tmp[n * 4 + 1] + tmp[n * 4 + 2];
      s[2] = tmp[n * 4 + 1] - tmp[n * 4 + 2];
      sad += ABS(s[0] + s[1]);
      sad += ABS(s[0] - s[1]);
      sad += ABS(s[3] + s[2]);
      sad += ABS(s[3] - s[2]);
    }

    return sad >> 1;
*/
}

//calculate non-zero counts for an array v[i_count]
int32_t 
array_non_zero_count(int16_t *v, int32_t i_count)
{
    int32_t i;
    int32_t i_nz;

    for( i = 0, i_nz = 0; i < i_count; i++ )
    {
        if( v[i] )
        {
            i_nz++;
        }
    }
    return i_nz;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美中文一区| 欧美色国产精品| 久久众筹精品私拍模特| 久久精品99国产精品| 久久蜜臀精品av| 丁香六月久久综合狠狠色| 中文字幕一区不卡| 色香蕉成人二区免费| 亚洲福中文字幕伊人影院| 4438成人网| 国产精一品亚洲二区在线视频| 国产欧美日韩久久| 日本高清视频一区二区| 丝袜亚洲精品中文字幕一区| 欧美成人bangbros| 成人高清在线视频| 石原莉奈一区二区三区在线观看| 精品久久久影院| 99re热视频这里只精品| 香蕉av福利精品导航| 久久欧美一区二区| 欧美性视频一区二区三区| 免费成人在线播放| 亚洲同性gay激情无套| 欧美人狂配大交3d怪物一区 | 中文字幕一区二| 欧洲一区二区三区在线| 久草这里只有精品视频| 亚洲欧美成人一区二区三区| 欧美一级片在线| 99久久99久久久精品齐齐| 青椒成人免费视频| 中文字幕中文字幕一区二区| 欧美一区午夜精品| 99免费精品在线| 理论片日本一区| 亚洲影视资源网| 国产日韩欧美精品综合| 欧美剧情片在线观看| 成人精品免费视频| 美女看a上一区| 亚洲综合激情网| 国产日韩精品一区二区三区| 欧美精品久久久久久久多人混战| 成人av资源在线观看| 六月丁香综合在线视频| 亚洲成人资源网| 中文字幕一区三区| 久久蜜桃香蕉精品一区二区三区| 欧美色精品在线视频| 色偷偷久久人人79超碰人人澡| 国产精品一区二区三区网站| 日韩电影免费在线看| 一区二区不卡在线视频 午夜欧美不卡在 | 国产一区在线观看视频| 一区二区在线看| 国产精品久久99| 久久久久久久综合狠狠综合| 欧美一级在线视频| 欧美精品成人一区二区三区四区| 92精品国产成人观看免费| 春色校园综合激情亚洲| 国产不卡视频在线观看| 久久精品国产精品亚洲精品| 日韩av电影一区| 亚洲成av人综合在线观看| 亚洲一区av在线| 亚洲在线观看免费视频| 亚洲欧美日韩一区二区| 中文字幕亚洲综合久久菠萝蜜| 国产精品丝袜一区| 国产精品天美传媒沈樵| 国产精品久久毛片| 一区在线播放视频| 亚洲欧洲日产国码二区| 136国产福利精品导航| 国产精品超碰97尤物18| 国产精品久久久久久一区二区三区| 欧美国产一区视频在线观看| 欧美高清在线一区二区| 中文成人综合网| 亚洲欧洲精品成人久久奇米网| 国产精品午夜电影| 亚洲美女免费在线| 亚洲第四色夜色| 青娱乐精品视频| 精品一区二区精品| 国产成人免费视频一区| 不卡av在线免费观看| 91一区二区在线| 在线观看区一区二| 91精品国产麻豆国产自产在线 | 久久久久久日产精品| 国产亚洲成aⅴ人片在线观看 | 国产亚洲精品免费| 国产精品系列在线| 一区二区三区色| 日韩激情一区二区| 国产一区二区在线免费观看| 国产91精品精华液一区二区三区 | 欧美剧情电影在线观看完整版免费励志电影| 亚洲精品videosex极品| 亚洲成国产人片在线观看| 青青草国产成人99久久| 国产成人午夜99999| 91久久国产综合久久| 欧美大片国产精品| 中文字幕中文字幕一区二区 | 欧美一区二区视频在线观看2022| 欧美www视频| 亚洲日本青草视频在线怡红院| 亚洲一区中文在线| 狠狠色狠狠色综合日日91app| a在线欧美一区| 日韩欧美一区二区不卡| 国产精品久久久久久亚洲伦| 亚洲bt欧美bt精品777| 国产精品亚洲第一区在线暖暖韩国| 一本久久a久久免费精品不卡| 日韩一级大片在线| 亚洲精品欧美激情| 国产在线观看免费一区| 欧美日免费三级在线| 国产欧美精品日韩区二区麻豆天美| 亚洲卡通欧美制服中文| 国内久久精品视频| 欧美亚洲愉拍一区二区| 久久精品免视看| 天天色综合成人网| 91丝袜美女网| 日本一区二区三级电影在线观看| 午夜精品福利久久久| 99在线精品一区二区三区| 精品久久久久久久久久久院品网| 亚洲欧美视频一区| 国产成人8x视频一区二区| 91精品国产综合久久久久久漫画| 一区在线观看免费| 成人午夜视频免费看| 欧美成人三级电影在线| 亚洲成人精品影院| 91在线观看一区二区| 国产亚洲综合在线| 精久久久久久久久久久| 欧美精品99久久久**| 一区二区日韩电影| 色又黄又爽网站www久久| 国产亚洲欧美一级| 国产在线视频精品一区| 日韩欧美中文字幕一区| 日韩电影在线免费观看| 欧美日韩在线电影| 亚洲国产一区二区视频| 色丁香久综合在线久综合在线观看| 国产精品久久久久久久午夜片| 国产精品一品二品| 精品国产乱码久久| 精彩视频一区二区| 精品sm捆绑视频| 久久福利资源站| 精品美女在线播放| 蜜臀精品久久久久久蜜臀| 欧美男男青年gay1069videost | 日韩一区二区免费视频| 舔着乳尖日韩一区| 911精品产国品一二三产区| 亚洲aⅴ怡春院| 欧美一区二区福利视频| 极品瑜伽女神91| ww亚洲ww在线观看国产| 国产麻豆成人精品| 欧美国产一区在线| 91在线国产福利| 亚洲一区二区三区视频在线播放| 欧美日韩一区二区三区在线看| 亚洲国产精品天堂| 欧美肥妇bbw| 久久97超碰国产精品超碰| 国产日韩av一区| 91小视频免费看| 亚洲一区二区三区视频在线播放| 欧美人牲a欧美精品| 精品一区二区三区在线视频| 国产日韩欧美一区二区三区乱码 | 91精品办公室少妇高潮对白| 亚洲国产视频在线| 日韩一区二区精品葵司在线| 另类人妖一区二区av| 国产日韩欧美精品综合| 91视频.com| 日本vs亚洲vs韩国一区三区二区| 精品国产青草久久久久福利| 粉嫩aⅴ一区二区三区四区五区| 成人免费小视频| 欧美伦理视频网站| 国产毛片精品视频| 亚洲精品国产一区二区精华液| 7777女厕盗摄久久久| 国产99久久久国产精品潘金| 一区二区三区中文字幕在线观看|