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

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

?? encamrwb.c

?? G.711,G.723.1,G.726,G.729,GSM CODEC C/C++ code
?? C
?? 第 1 頁 / 共 3 頁
字號:
/*/////////////////////////////////////////////////////////////////////////////
//
//                  INTEL CORPORATION PROPRIETARY INFORMATION
//     This software is supplied under the terms of a license agreement or
//     nondisclosure agreement with Intel Corporation and may not be copied
//     or disclosed except in accordance with the terms of that agreement.
//          Copyright(c) 2005 Intel Corporation. All Rights Reserved.
//
//     Intel(R) Integrated Performance Primitives
//     USC - Unified Speech Codec interface library
//
// By downloading and installing USC codec, you hereby agree that the
// accompanying Materials are being provided to you under the terms and
// conditions of the End User License Agreement for the Intel(R) Integrated
// Performance Primitives product previously accepted by you. Please refer
// to the file ipplic.htm located in the root directory of your Intel(R) IPP
// product installation for more information.
//
// A speech coding standards promoted by ITU, ETSI, 3GPP and other
// organizations. Implementations of these standards, or the standard enabled
// platforms may require licenses from various entities, including
// Intel Corporation.
//
//
// Purpose: AMRWB speech codec encoder API functions.
//
*/

#include "ownamrwb.h"

static short ownSynthesis(short *pLPCQuantvec, short *pExc, short valQNew,
                          const unsigned short *pSynthSignal, AMRWBEncoder_Obj *st);
static void ownPrms2Bits(const short* pPrms, unsigned char *pBitstream, AMRWB_Rate_t rate);



AMRWB_CODECFUN( APIAMRWB_Status, apiAMRWBEncoder_GetSize,
         (AMRWBEncoder_Obj* encoderObj, unsigned int *pCodecSize))
{
   if(NULL == encoderObj)
      return APIAMRWB_StsBadArgErr;
   if(NULL == pCodecSize)
      return APIAMRWB_StsBadArgErr;
   if(encoderObj->objPrm.iKey != DEC_KEY)
      return APIAMRWB_StsNotInitialized;

   *pCodecSize = encoderObj->objPrm.iObjSize;
   return APIAMRWB_StsNoErr;
}

AMRWB_CODECFUN( APIAMRWB_Status, apiAMRWBEncoder_Alloc,
         (const AMRWBEnc_Params *amrwb_Params, unsigned int *pCodecSize))
{
   int hpfltsize;
   HighPassFIRGetSize_AMRWB_16s_ISfs(&hpfltsize);
   *pCodecSize=sizeof(AMRWBEncoder_Obj);
   *pCodecSize += (2*hpfltsize);
   ippsHighPassFilterGetSize_AMRWB_16s(2, &hpfltsize);
   *pCodecSize += (3*hpfltsize);
   ippsHighPassFilterGetSize_AMRWB_16s(3, &hpfltsize);
   *pCodecSize += hpfltsize;
   ippsVADGetSize_AMRWB_16s(&hpfltsize);
   *pCodecSize += hpfltsize;

   return APIAMRWB_StsNoErr;
}

static void InitEncoder(AMRWBEncoder_Obj* encoderObj)
{
   ippsZero_16s(encoderObj->asiExcOld, PITCH_LAG_MAX + INTERPOL_LEN);
   ippsZero_16s(encoderObj->asiSynthesis, LP_ORDER);
   ippsZero_16s(encoderObj->asiIsfQuantPast, LP_ORDER);

   encoderObj->siSpeechWgt = 0;
   encoderObj->siTiltCode = 0;
   encoderObj->siFrameFirst = 1;

   encoderObj->asiGainPitchClip[0] = MAX_DISTANCE_ISF;
   encoderObj->asiGainPitchClip[1] = MIN_GAIN_PITCH;

   encoderObj->iNoiseEnhancerThres = 0;

   return;
}

AMRWB_CODECFUN( APIAMRWB_Status, apiAMRWBEncoder_Init,
         (AMRWBEncoder_Obj* encoderObj, int mode))
{
   int hpfltsize;

   InitEncoder(encoderObj);

   encoderObj->pSHPFIRState = (HighPassFIRState_AMRWB_16s_ISfs *)((char*)encoderObj + sizeof(AMRWBEncoder_Obj));
   HighPassFIRGetSize_AMRWB_16s_ISfs(&hpfltsize);
   encoderObj->pSHPFIRState2 = (HighPassFIRState_AMRWB_16s_ISfs *)((char*)encoderObj->pSHPFIRState + hpfltsize);
   encoderObj->pSHPFiltStateSgnlIn = (IppsHighPassFilterState_AMRWB_16s *)((char*)encoderObj->pSHPFIRState2 + hpfltsize);
   ippsHighPassFilterGetSize_AMRWB_16s(2, &hpfltsize);
   encoderObj->pSHPFiltStateSgnlOut = (IppsHighPassFilterState_AMRWB_16s *)((char*)encoderObj->pSHPFiltStateSgnlIn + hpfltsize);
   encoderObj->pSHPFiltStateSgnl400 = (IppsHighPassFilterState_AMRWB_16s *)((char*)encoderObj->pSHPFiltStateSgnlOut + hpfltsize);
   encoderObj->pSHPFiltStateWsp = (IppsHighPassFilterState_AMRWB_16s *)((char*)encoderObj->pSHPFiltStateSgnl400 + hpfltsize);
   ippsHighPassFilterGetSize_AMRWB_16s(3, &hpfltsize);
   encoderObj->pSVadState = (IppsVADState_AMRWB_16s *)((char*)encoderObj->pSHPFiltStateWsp + hpfltsize);

   /* Static vectors to zero */

   ippsZero_16s(encoderObj->asiSpeechOld, SPEECH_SIZE - FRAME_SIZE);
   ippsZero_16s(encoderObj->asiWspOld, (PITCH_LAG_MAX / OPL_DECIM));
   ippsZero_16s(encoderObj->asiWspDecimate, 3);

   /* routines initialization */

   ippsZero_16s(encoderObj->asiSpeechDecimate, 2 * NB_COEF_DOWN);
   ippsHighPassFilterInit_AMRWB_16s((short*)ACoeffHP50Tbl, (short*)BCoeffHP50Tbl, 2, encoderObj->pSHPFiltStateSgnlIn);
   ippsZero_16s(encoderObj->asiLevinsonMem, 32);
   ippsSet_16s(-14336, encoderObj->asiGainQuant, PRED_ORDER);
   ippsHighPassFilterInit_AMRWB_16s((short*)ACoeffTbl, (short*)BCoeffTbl, 3, encoderObj->pSHPFiltStateWsp);

   /* isp initialization */

   ippsCopy_16s(IspInitTbl, encoderObj->asiIspOld, LP_ORDER);
   ippsCopy_16s(IspInitTbl, encoderObj->asiIspQuantOld, LP_ORDER);

   /* variable initialization */

   encoderObj->siPreemph = 0;
   encoderObj->siWsp = 0;
   encoderObj->siScaleFactorOld = 15;
   encoderObj->asiScaleFactorMax[0] = 15;
   encoderObj->asiScaleFactorMax[1] = 15;
   encoderObj->siWspOldMax = 0;
   encoderObj->siWspOldShift = 0;

   /* pitch ol initialization */

   encoderObj->siMedianOld = 40;
   encoderObj->siOpenLoopGain = 0;
   encoderObj->siAdaptiveParam = 0;
   encoderObj->siWeightFlag = 0;
   ippsSet_16s(40, encoderObj->asiPitchLagOld, 5);
   ippsZero_16s(encoderObj->asiHypassFiltWspOld, (FRAME_SIZE / 2) / OPL_DECIM + (PITCH_LAG_MAX / OPL_DECIM));

   ippsZero_16s(encoderObj->asiSynthHighFilt, LP_ORDER);
   ippsZero_16s((short*)encoderObj->aiSynthMem, LP_ORDER * 2);

   ippsHighPassFilterInit_AMRWB_16s((short*)ACoeffHP50Tbl, (short*)BCoeffHP50Tbl, 2, encoderObj->pSHPFiltStateSgnlOut);
   HighPassFIRInit_AMRWB_16s_ISfs((short*)Fir6k_7kTbl, 2, encoderObj->pSHPFIRState);
   ippsHighPassFilterInit_AMRWB_16s((short*)ACoeffHP400Tbl, (short*)BCoeffHP400Tbl, 2, encoderObj->pSHPFiltStateSgnl400);

   ippsCopy_16s(IsfInitTbl, encoderObj->asiIsfOld, LP_ORDER);

   encoderObj->siDeemph = 0;

   encoderObj->siHFSeed = RND_INIT;

   HighPassFIRInit_AMRWB_16s_ISfs((short*)Fir6k_7kTbl, 2, encoderObj->pSHPFIRState2);
   encoderObj->siAlphaGain = IPP_MAX_16S;

   encoderObj->siVadHist = 0;
   encoderObj->iDtx = mode;

   ippsVADInit_AMRWB_16s(encoderObj->pSVadState);
   encoderObj->siToneFlag = 0;
   ownDTXEncReset(&encoderObj->dtxEncState, (short*)IsfInitTbl);
   encoderObj->siScaleExp = 0;

   return APIAMRWB_StsNoErr;
}

AMRWB_CODECFUN( APIAMRWB_Status, apiAMRWBEncoder_Mode,
               (AMRWBEncoder_Obj* encoderObj, int mode)) {
    if(encoderObj->iDtx != mode) encoderObj->iDtx = mode;
    return APIAMRWB_StsNoErr;
}

AMRWB_CODECFUN( APIAMRWB_Status, apiAMRWBEncode,
         (AMRWBEncoder_Obj* encoderObj, const unsigned short* src,
          unsigned char* dst, AMRWB_Rate_t *rate, int Vad ))
{
    /* Coder states */
    AMRWBEncoder_Obj *st;

    /* Speech vector */
    IPP_ALIGNED_ARRAY(16, short, pSpeechOldvec, SPEECH_SIZE);
    short *pSpeechNew, *pSpeech, *pWindow;

    /* Weighted speech vector */
    IPP_ALIGNED_ARRAY(16, short, pWgtSpchOldvec, FRAME_SIZE + (PITCH_LAG_MAX / OPL_DECIM));
    short *pWgtSpch;

    /* Excitation vector */
    IPP_ALIGNED_ARRAY(16, short, pExcOldvec, (FRAME_SIZE + 1) + PITCH_LAG_MAX + INTERPOL_LEN);
    short *pExc;

    /* LPC coefficients */

    IPP_ALIGNED_ARRAY(16, int, pAutoCorrvec, LP_ORDER + 1);
    IPP_ALIGNED_ARRAY(16, short, pRCvec, LP_ORDER);
    IPP_ALIGNED_ARRAY(16, short, pLPCvec, LP_ORDER + 1);
    IPP_ALIGNED_ARRAY(16, short, pIspvec, LP_ORDER);
    IPP_ALIGNED_ARRAY(16, short, pIspQuantvec, LP_ORDER);
    IPP_ALIGNED_ARRAY(16, short, pIsfvec, LP_ORDER);
    short *pLPCUnQuant, *pLPCQuant;
    IPP_ALIGNED_ARRAY(16, short, pLPCUnQuantvec, NUMBER_SUBFRAME*(LP_ORDER+1));
    IPP_ALIGNED_ARRAY(16, short, pLPCQuantvec, NUMBER_SUBFRAME*(LP_ORDER+1));

    /* Other vectors */

    IPP_ALIGNED_ARRAY(16, short, pAdptTgtPitch, SUBFRAME_SIZE);
    IPP_ALIGNED_ARRAY(16, short, pAdptTgtCdbk, SUBFRAME_SIZE);
    IPP_ALIGNED_ARRAY(16, short, pCorrvec, SUBFRAME_SIZE);
    IPP_ALIGNED_ARRAY(16, short, pResidvec, SUBFRAME_SIZE);

    IPP_ALIGNED_ARRAY(16, short, pImpRespPitchvec, SUBFRAME_SIZE);
    IPP_ALIGNED_ARRAY(16, short, pImpRespCdbkvec, SUBFRAME_SIZE);
    IPP_ALIGNED_ARRAY(16, short, pFixCdbkvec, SUBFRAME_SIZE);
    IPP_ALIGNED_ARRAY(16, short, pFixCdbkExcvec, SUBFRAME_SIZE);
    IPP_ALIGNED_ARRAY(16, short, pFltAdptvec, SUBFRAME_SIZE);
    IPP_ALIGNED_ARRAY(16, short, pFltAdpt2vec, SUBFRAME_SIZE);
    IPP_ALIGNED_ARRAY(16, short, pErrQuant, LP_ORDER + SUBFRAME_SIZE);
    IPP_ALIGNED_ARRAY(16, short, pSynthvec, SUBFRAME_SIZE);
    IPP_ALIGNED_ARRAY(16, short, pExc2vec, FRAME_SIZE);
    IPP_ALIGNED_ARRAY(16, short, pVadvec, FRAME_SIZE);

    /* Scalars */

    short valSubFrame, valSelect, valClipFlag, valVadFlag;
    short valPitchLag, valFracPitchLag;
    short pOpenLoopLag[2],pPitchLagBounds[2];
    short valPitchGain, valScaleCodeGain, pGainCoeff[4], pGainCoeff2[4];
    short tmp, valGainCoeff, valAdptGain, valExp, valQNew, valShift, max;
    short valVoiceFac;

    int i, z, valCodeGain, valMax;

    short valStabFac, valFac, valCodeGainLow;
    short pSrcCoeff[2];

    short valCorrGain;
    int valSize, subFrame;
    IppSpchBitRate irate = Mode2RateTbl[*rate];
    IppSpchBitRate valCodecMode = irate;
    short *pHPWgtSpch;
    IPP_ALIGNED_ARRAY(16, short, pPrmvec, MAX_PARAM_SIZE);
    short *pPrm = pPrmvec;

    st = encoderObj;

    pSpeechNew = pSpeechOldvec + SPEECH_SIZE - FRAME_SIZE - UP_SAMPL_FILT_DELAY;
    pSpeech = pSpeechOldvec + SPEECH_SIZE - FRAME_SIZE - SUBFRAME_SIZE;
    pWindow = pSpeechOldvec + SPEECH_SIZE - WINDOW_SIZE;

    pExc = pExcOldvec + PITCH_LAG_MAX + INTERPOL_LEN;
    pWgtSpch = pWgtSpchOldvec + (PITCH_LAG_MAX / OPL_DECIM);

    /* copy coder memory state into working space (internal memory for DSP) */

    ippsCopy_16s(st->asiSpeechOld, pSpeechOldvec, SPEECH_SIZE - FRAME_SIZE);
    ippsCopy_16s(st->asiWspOld, pWgtSpchOldvec, PITCH_LAG_MAX / OPL_DECIM);
    ippsCopy_16s(st->asiExcOld, pExcOldvec, PITCH_LAG_MAX + INTERPOL_LEN);

    /* Down sampling signal from 16kHz to 12.8kHz */

    ownDecimation_AMRWB_16s((short*)src, L_FRAME16k, pSpeechNew, st->asiSpeechDecimate);

    /* last UP_SAMPL_FILT_DELAY samples for autocorrelation window */
    ippsCopy_16s(st->asiSpeechDecimate, pFixCdbkvec, 2*DOWN_SAMPL_FILT_DELAY);
    ippsZero_16s(pErrQuant, DOWN_SAMPL_FILT_DELAY);            /* set next sample to zero */
    ownDecimation_AMRWB_16s(pErrQuant, DOWN_SAMPL_FILT_DELAY, pSpeechNew + FRAME_SIZE, pFixCdbkvec);

    /* Perform 50Hz HP filtering of input signal */

    ippsHighPassFilter_AMRWB_16s_ISfs(pSpeechNew, FRAME_SIZE, st->pSHPFiltStateSgnlIn, 14);

    /* last UP_SAMPL_FILT_DELAY samples for autocorrelation window */
    ippsHighPassFilterGetSize_AMRWB_16s(2, &valSize);
    ippsCopy_8u((const Ipp8u*)st->pSHPFiltStateSgnlIn, (Ipp8u*)pFixCdbkvec, valSize);
    ippsHighPassFilter_AMRWB_16s_ISfs(pSpeechNew + FRAME_SIZE, UP_SAMPL_FILT_DELAY, (IppsHighPassFilterState_AMRWB_16s *)pFixCdbkvec, 14);

    /* get max of new preemphased samples (FRAME_SIZE+UP_SAMPL_FILT_DELAY) */

    z = pSpeechNew[0] << 15;
    z -= st->siPreemph * PREEMPH_FACTOR;
    valMax = Abs_32s(z);

    for (i = 1; i < FRAME_SIZE + UP_SAMPL_FILT_DELAY; i++)
    {
        z  = pSpeechNew[i] << 15;
        z -= pSpeechNew[i - 1] * PREEMPH_FACTOR;
        z  = Abs_32s(z);
        if (z > valMax) valMax = z;
    }

    /* get scaling factor for new and previous samples */
    tmp = (short)(valMax >> 16);

    if (tmp == 0)
    {
        valShift = MAX_SCALE_FACTOR;
    } else
    {
        valShift = Exp_16s(tmp) - 1;
        if (valShift < 0) valShift = 0;
        if (valShift > MAX_SCALE_FACTOR) valShift = MAX_SCALE_FACTOR;
    }
    valQNew = valShift;

    if (valQNew > st->asiScaleFactorMax[0]) valQNew = st->asiScaleFactorMax[0];
    if (valQNew > st->asiScaleFactorMax[1]) valQNew = st->asiScaleFactorMax[1];
    valExp = valQNew - st->siScaleFactorOld;
    st->siScaleFactorOld = valQNew;
    st->asiScaleFactorMax[1] = st->asiScaleFactorMax[0];
    st->asiScaleFactorMax[0] = valShift;

    /* preemphasis with scaling (FRAME_SIZE+UP_SAMPL_FILT_DELAY) */

    tmp = pSpeechNew[FRAME_SIZE - 1];

    ippsPreemphasize_AMRWB_16s_ISfs(PREEMPH_FACTOR, pSpeechNew, FRAME_SIZE + UP_SAMPL_FILT_DELAY, 15-valQNew, &st->siPreemph);

    st->siPreemph = tmp;

    /* scale previous samples and memory */

    ownScaleSignal_AMRWB_16s_ISfs(pSpeechOldvec, SPEECH_SIZE - FRAME_SIZE - UP_SAMPL_FILT_DELAY, valExp);
    ownScaleSignal_AMRWB_16s_ISfs(pExcOldvec, PITCH_LAG_MAX + INTERPOL_LEN, valExp);

    ownScaleSignal_AMRWB_16s_ISfs(st->asiSynthesis, LP_ORDER, valExp);
    ownScaleSignal_AMRWB_16s_ISfs(st->asiWspDecimate, 3, valExp);
    ownScaleSignal_AMRWB_16s_ISfs(&(st->siWsp), 1, valExp);
    ownScaleSignal_AMRWB_16s_ISfs(&(st->siSpeechWgt), 1, valExp);

     /*  Call VAD */

    ippsCopy_16s(pSpeechNew, pVadvec, FRAME_SIZE);
    ownScaleSignal_AMRWB_16s_ISfs(pVadvec, FRAME_SIZE, (short)(1 - valQNew));
    ippsVAD_AMRWB_16s(pVadvec, st->pSVadState, &encoderObj->siToneFlag, &valVadFlag);
    if (valVadFlag == 0)
        st->siVadHist += 1;
    else
        st->siVadHist = 0;

    /* DTX processing */

    if (Vad != 0)
    {
       short foo;
       short dtxMode = ~IPP_SPCHBR_DTX;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美人与z0zoxxxx视频| 日韩国产精品大片| 最新日韩在线视频| 国产精品美女久久久久av爽李琼| 亚洲精品一线二线三线无人区| 日韩一级高清毛片| 日韩欧美亚洲一区二区| 日韩女同互慰一区二区| 久久天天做天天爱综合色| 久久综合av免费| 国产偷国产偷精品高清尤物 | 国产精品视频yy9299一区| 欧美极品美女视频| 17c精品麻豆一区二区免费| 亚洲欧洲韩国日本视频| 亚洲精品乱码久久久久| 亚洲一区电影777| 日本成人中文字幕在线视频| 久久99国产精品免费| 精品一区二区在线看| 国产久卡久卡久卡久卡视频精品| 国产电影一区在线| a级高清视频欧美日韩| 91亚洲精品乱码久久久久久蜜桃 | 日韩欧美国产三级电影视频| 久久综合av免费| 亚洲欧洲精品天堂一级 | 国产精品1区2区3区| 成人av网址在线| 欧美影视一区在线| 欧美一级黄色录像| 日本一区二区三区电影| 亚洲欧美日韩国产另类专区| 亚洲chinese男男1069| 久久66热re国产| 97久久精品人人做人人爽50路| 中文字幕欧美国产| 亚洲欧洲av另类| 亚洲免费观看高清| 青青草成人在线观看| 国产成人精品www牛牛影视| 91论坛在线播放| 精品日韩99亚洲| 成人免费在线视频观看| 午夜激情综合网| 成人app在线观看| 欧美日韩一级片在线观看| 久久综合久久99| 亚洲影院理伦片| 激情欧美一区二区| 色婷婷国产精品综合在线观看| 亚洲精品一线二线三线无人区| 依依成人精品视频| 国产乱码精品一区二区三区av | 日韩一区二区三区精品视频| 午夜精品123| 不卡的看片网站| 日韩一级片在线观看| 亚洲精品乱码久久久久久久久| 激情亚洲综合在线| 欧美日韩色综合| 国产精品国产成人国产三级| 日本视频一区二区三区| 99久久精品99国产精品| 久久精品水蜜桃av综合天堂| 亚洲自拍偷拍综合| 成人短视频下载| www精品美女久久久tv| 午夜激情久久久| 在线亚洲精品福利网址导航| 国产三级欧美三级日产三级99| 日日摸夜夜添夜夜添亚洲女人| 99久久久国产精品免费蜜臀| 久久久久久久综合| 蜜臀久久久久久久| 欧美色综合天天久久综合精品| 国产精品理论片| 国产成人免费在线视频| 精品欧美乱码久久久久久| 视频一区二区三区中文字幕| 日本久久电影网| 国产精品美女一区二区在线观看| 激情综合网激情| 欧美不卡一区二区三区| 日日夜夜精品视频免费 | 一区二区三区鲁丝不卡| www.亚洲免费av| 国产欧美日韩在线| 国产精品 日产精品 欧美精品| 欧美va亚洲va在线观看蝴蝶网| 免费高清在线视频一区·| 欧美日韩视频在线一区二区| 亚洲午夜久久久久中文字幕久| 99在线精品一区二区三区| 国产精品成人在线观看| 成人免费不卡视频| 欧美高清一级片在线观看| 成人黄色电影在线| 中文字幕日韩av资源站| 99久久久久久| 亚洲中国最大av网站| 欧美午夜片在线观看| 亚洲成人久久影院| 91超碰这里只有精品国产| 青青草原综合久久大伊人精品| 欧美一区二区不卡视频| 麻豆91在线看| 国产亚洲自拍一区| 国产69精品久久777的优势| 欧美激情一区二区三区四区| 高清免费成人av| 亚洲日本在线看| 精品视频一区 二区 三区| 亚洲不卡一区二区三区| 91精品国产综合久久精品性色| 日本免费在线视频不卡一不卡二| 精品奇米国产一区二区三区| 国产高清在线精品| 免费观看久久久4p| 久久久夜色精品亚洲| yourporn久久国产精品| 亚洲一级不卡视频| 日韩一区二区免费在线电影| 九色综合狠狠综合久久| 国产日韩视频一区二区三区| 91女神在线视频| 五月天激情小说综合| 欧美mv日韩mv国产| 不卡在线观看av| 亚洲v日本v欧美v久久精品| 日韩精品中文字幕在线不卡尤物| 国产酒店精品激情| 亚洲精品国产一区二区精华液| 欧美视频完全免费看| 久久99久国产精品黄毛片色诱| 久久久久免费观看| 欧美最猛性xxxxx直播| 麻豆国产精品视频| 国产精品每日更新| 欧美日韩国产a| 国产一二精品视频| 亚洲综合色在线| 久久亚洲一级片| 色噜噜夜夜夜综合网| 免费在线一区观看| 亚洲欧洲精品一区二区精品久久久| 欧美精品乱码久久久久久| 国产精品一级片在线观看| 亚洲国产毛片aaaaa无费看| 欧美一区二区三区喷汁尤物| 99视频热这里只有精品免费| 秋霞影院一区二区| 亚洲欧洲三级电影| 欧美成人伊人久久综合网| 色噜噜狠狠成人网p站| 蜜桃av一区二区| 亚洲女同一区二区| 精品sm捆绑视频| 欧美影院一区二区三区| 国产黄色精品视频| 午夜视频久久久久久| 国产精品理论片在线观看| 日韩西西人体444www| 91丨国产丨九色丨pron| 黑人精品欧美一区二区蜜桃| 亚洲一区二区在线观看视频 | 午夜电影一区二区| 中文字幕欧美日本乱码一线二线 | 日韩国产高清在线| 亚洲欧美另类小说| 久久精子c满五个校花| 欧美一区二区三区白人| 色综合久久中文字幕综合网| 国产一区二区在线视频| 偷偷要91色婷婷| 亚洲综合色婷婷| 亚洲嫩草精品久久| 热久久国产精品| 一区二区三区蜜桃网| 18成人在线观看| 中文一区二区完整视频在线观看 | 亚洲国产欧美日韩另类综合| 中文字幕欧美一| 久久久久久久久蜜桃| 日韩一级在线观看| 欧美日韩国产高清一区二区| 91免费国产在线观看| 成人h动漫精品| 国产激情视频一区二区三区欧美| 久久国产精品99精品国产| 天天色天天爱天天射综合| 一级特黄大欧美久久久| 亚洲人成精品久久久久| 亚洲欧洲精品一区二区三区| 欧美激情中文字幕| 国产欧美视频在线观看| 欧美国产乱子伦| 亚洲国产成人在线| 国产精品久久久久久久久免费丝袜| 久久婷婷国产综合国色天香 |