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

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

?? yuv2rgb_altivec.c.svn-base

?? ffmpeg最新源碼
?? SVN-BASE
?? 第 1 頁 / 共 3 頁
字號:
    img = in[0];    out = (vector unsigned char *)(oplanes[0]+srcSliceY*outstrides[0]);    for (i=0;i<h;i++) {        for (j=0;j<w/16;j++) {            uyvy = vec_ld (0, img);            U = (vector signed short)                vec_perm (uyvy, (vector unsigned char)AVV(0), demux_u);            V = (vector signed short)                vec_perm (uyvy, (vector unsigned char)AVV(0), demux_v);            Y = (vector signed short)                vec_perm (uyvy, (vector unsigned char)AVV(0), demux_y);            cvtyuvtoRGB (c, Y,U,V,&R0,&G0,&B0);            uyvy = vec_ld (16, img);            U = (vector signed short)                vec_perm (uyvy, (vector unsigned char)AVV(0), demux_u);            V = (vector signed short)                vec_perm (uyvy, (vector unsigned char)AVV(0), demux_v);            Y = (vector signed short)                vec_perm (uyvy, (vector unsigned char)AVV(0), demux_y);            cvtyuvtoRGB (c, Y,U,V,&R1,&G1,&B1);            R  = vec_packclp (R0,R1);            G  = vec_packclp (G0,G1);            B  = vec_packclp (B0,B1);            //      vec_mstbgr24 (R,G,B, out);            out_rgba (R,G,B,out);            img += 32;        }    }    return srcSliceH;}/* Ok currently the acceleration routine only supports   inputs of widths a multiple of 16   and heights a multiple 2   So we just fall back to the C codes for this.*/SwsFunc yuv2rgb_init_altivec (SwsContext *c){    if (!(c->flags & SWS_CPU_CAPS_ALTIVEC))        return NULL;    /*      and this seems not to matter too much I tried a bunch of      videos with abnormal widths and MPlayer crashes elsewhere.      mplayer -vo x11 -rawvideo on:w=350:h=240 raw-350x240.eyuv      boom with X11 bad match.    */    if ((c->srcW & 0xf) != 0)    return NULL;    switch (c->srcFormat) {    case PIX_FMT_YUV410P:    case PIX_FMT_YUV420P:    /*case IMGFMT_CLPL:        ??? */    case PIX_FMT_GRAY8:    case PIX_FMT_NV12:    case PIX_FMT_NV21:        if ((c->srcH & 0x1) != 0)            return NULL;        switch(c->dstFormat){        case PIX_FMT_RGB24:            av_log(c, AV_LOG_WARNING, "ALTIVEC: Color Space RGB24\n");            return altivec_yuv2_rgb24;        case PIX_FMT_BGR24:            av_log(c, AV_LOG_WARNING, "ALTIVEC: Color Space BGR24\n");            return altivec_yuv2_bgr24;        case PIX_FMT_ARGB:            av_log(c, AV_LOG_WARNING, "ALTIVEC: Color Space ARGB\n");            return altivec_yuv2_argb;        case PIX_FMT_ABGR:            av_log(c, AV_LOG_WARNING, "ALTIVEC: Color Space ABGR\n");            return altivec_yuv2_abgr;        case PIX_FMT_RGBA:            av_log(c, AV_LOG_WARNING, "ALTIVEC: Color Space RGBA\n");            return altivec_yuv2_rgba;        case PIX_FMT_BGRA:            av_log(c, AV_LOG_WARNING, "ALTIVEC: Color Space BGRA\n");            return altivec_yuv2_bgra;        default: return NULL;        }        break;    case PIX_FMT_UYVY422:        switch(c->dstFormat){        case PIX_FMT_BGR32:            av_log(c, AV_LOG_WARNING, "ALTIVEC: Color Space UYVY -> RGB32\n");            return altivec_uyvy_rgb32;        default: return NULL;        }        break;    }    return NULL;}void yuv2rgb_altivec_init_tables (SwsContext *c, const int inv_table[4],int brightness,int contrast, int saturation){    union {        signed short tmp[8] __attribute__ ((aligned(16)));        vector signed short vec;    } buf;    buf.tmp[0] =  ((0xffffLL) * contrast>>8)>>9;                        //cy    buf.tmp[1] =  -256*brightness;                                      //oy    buf.tmp[2] =  (inv_table[0]>>3) *(contrast>>16)*(saturation>>16);   //crv    buf.tmp[3] =  (inv_table[1]>>3) *(contrast>>16)*(saturation>>16);   //cbu    buf.tmp[4] = -((inv_table[2]>>1)*(contrast>>16)*(saturation>>16));  //cgu    buf.tmp[5] = -((inv_table[3]>>1)*(contrast>>16)*(saturation>>16));  //cgv    c->CSHIFT = (vector unsigned short)vec_splat_u16(2);    c->CY   = vec_splat ((vector signed short)buf.vec, 0);    c->OY   = vec_splat ((vector signed short)buf.vec, 1);    c->CRV  = vec_splat ((vector signed short)buf.vec, 2);    c->CBU  = vec_splat ((vector signed short)buf.vec, 3);    c->CGU  = vec_splat ((vector signed short)buf.vec, 4);    c->CGV  = vec_splat ((vector signed short)buf.vec, 5);#if 0    {    int i;    char *v[6]={"cy","oy","crv","cbu","cgu","cgv"};    for (i=0; i<6; i++)        printf("%s %d ", v[i],buf.tmp[i] );        printf("\n");    }#endif    return;}voidaltivec_yuv2packedX (SwsContext *c,                     int16_t *lumFilter, int16_t **lumSrc, int lumFilterSize,                     int16_t *chrFilter, int16_t **chrSrc, int chrFilterSize,                     uint8_t *dest, int dstW, int dstY){    int i,j;    vector signed short X,X0,X1,Y0,U0,V0,Y1,U1,V1,U,V;    vector signed short R0,G0,B0,R1,G1,B1;    vector unsigned char R,G,B;    vector unsigned char *out,*nout;    vector signed short   RND = vec_splat_s16(1<<3);    vector unsigned short SCL = vec_splat_u16(4);    unsigned long scratch[16] __attribute__ ((aligned (16)));    vector signed short *YCoeffs, *CCoeffs;    YCoeffs = c->vYCoeffsBank+dstY*lumFilterSize;    CCoeffs = c->vCCoeffsBank+dstY*chrFilterSize;    out = (vector unsigned char *)dest;    for (i=0; i<dstW; i+=16){        Y0 = RND;        Y1 = RND;        /* extract 16 coeffs from lumSrc */        for (j=0; j<lumFilterSize; j++) {            X0 = vec_ld (0,  &lumSrc[j][i]);            X1 = vec_ld (16, &lumSrc[j][i]);            Y0 = vec_mradds (X0, YCoeffs[j], Y0);            Y1 = vec_mradds (X1, YCoeffs[j], Y1);        }        U = RND;        V = RND;        /* extract 8 coeffs from U,V */        for (j=0; j<chrFilterSize; j++) {            X  = vec_ld (0, &chrSrc[j][i/2]);            U  = vec_mradds (X, CCoeffs[j], U);            X  = vec_ld (0, &chrSrc[j][i/2+2048]);            V  = vec_mradds (X, CCoeffs[j], V);        }        /* scale and clip signals */        Y0 = vec_sra (Y0, SCL);        Y1 = vec_sra (Y1, SCL);        U  = vec_sra (U,  SCL);        V  = vec_sra (V,  SCL);        Y0 = vec_clip_s16 (Y0);        Y1 = vec_clip_s16 (Y1);        U  = vec_clip_s16 (U);        V  = vec_clip_s16 (V);        /* now we have          Y0= y0 y1 y2 y3 y4 y5 y6 y7     Y1= y8 y9 y10 y11 y12 y13 y14 y15          U= u0 u1 u2 u3 u4 u5 u6 u7      V= v0 v1 v2 v3 v4 v5 v6 v7          Y0= y0 y1 y2 y3 y4 y5 y6 y7    Y1= y8 y9 y10 y11 y12 y13 y14 y15          U0= u0 u0 u1 u1 u2 u2 u3 u3    U1= u4 u4 u5 u5 u6 u6 u7 u7          V0= v0 v0 v1 v1 v2 v2 v3 v3    V1= v4 v4 v5 v5 v6 v6 v7 v7        */        U0 = vec_mergeh (U,U);        V0 = vec_mergeh (V,V);        U1 = vec_mergel (U,U);        V1 = vec_mergel (V,V);        cvtyuvtoRGB (c, Y0,U0,V0,&R0,&G0,&B0);        cvtyuvtoRGB (c, Y1,U1,V1,&R1,&G1,&B1);        R  = vec_packclp (R0,R1);        G  = vec_packclp (G0,G1);        B  = vec_packclp (B0,B1);        switch(c->dstFormat) {            case PIX_FMT_ABGR:  out_abgr  (R,G,B,out); break;            case PIX_FMT_BGRA:  out_bgra  (R,G,B,out); break;            case PIX_FMT_RGBA:  out_rgba  (R,G,B,out); break;            case PIX_FMT_ARGB:  out_argb  (R,G,B,out); break;            case PIX_FMT_RGB24: out_rgb24 (R,G,B,out); break;            case PIX_FMT_BGR24: out_bgr24 (R,G,B,out); break;            default:            {                /* If this is reached, the caller should have called yuv2packedXinC                   instead. */                static int printed_error_message;                if (!printed_error_message) {                    av_log(c, AV_LOG_ERROR, "altivec_yuv2packedX doesn't support %s output\n",                           sws_format_name(c->dstFormat));                    printed_error_message=1;                }                return;            }        }    }    if (i < dstW) {        i -= 16;        Y0 = RND;        Y1 = RND;        /* extract 16 coeffs from lumSrc */        for (j=0; j<lumFilterSize; j++) {            X0 = vec_ld (0,  &lumSrc[j][i]);            X1 = vec_ld (16, &lumSrc[j][i]);            Y0 = vec_mradds (X0, YCoeffs[j], Y0);            Y1 = vec_mradds (X1, YCoeffs[j], Y1);        }        U = RND;        V = RND;        /* extract 8 coeffs from U,V */        for (j=0; j<chrFilterSize; j++) {            X  = vec_ld (0, &chrSrc[j][i/2]);            U  = vec_mradds (X, CCoeffs[j], U);            X  = vec_ld (0, &chrSrc[j][i/2+2048]);            V  = vec_mradds (X, CCoeffs[j], V);        }        /* scale and clip signals */        Y0 = vec_sra (Y0, SCL);        Y1 = vec_sra (Y1, SCL);        U  = vec_sra (U,  SCL);        V  = vec_sra (V,  SCL);        Y0 = vec_clip_s16 (Y0);        Y1 = vec_clip_s16 (Y1);        U  = vec_clip_s16 (U);        V  = vec_clip_s16 (V);        /* now we have           Y0= y0 y1 y2 y3 y4 y5 y6 y7     Y1= y8 y9 y10 y11 y12 y13 y14 y15           U = u0 u1 u2 u3 u4 u5 u6 u7     V = v0 v1 v2 v3 v4 v5 v6 v7           Y0= y0 y1 y2 y3 y4 y5 y6 y7    Y1= y8 y9 y10 y11 y12 y13 y14 y15           U0= u0 u0 u1 u1 u2 u2 u3 u3    U1= u4 u4 u5 u5 u6 u6 u7 u7           V0= v0 v0 v1 v1 v2 v2 v3 v3    V1= v4 v4 v5 v5 v6 v6 v7 v7        */        U0 = vec_mergeh (U,U);        V0 = vec_mergeh (V,V);        U1 = vec_mergel (U,U);        V1 = vec_mergel (V,V);        cvtyuvtoRGB (c, Y0,U0,V0,&R0,&G0,&B0);        cvtyuvtoRGB (c, Y1,U1,V1,&R1,&G1,&B1);        R  = vec_packclp (R0,R1);        G  = vec_packclp (G0,G1);        B  = vec_packclp (B0,B1);        nout = (vector unsigned char *)scratch;        switch(c->dstFormat) {            case PIX_FMT_ABGR:  out_abgr  (R,G,B,nout); break;            case PIX_FMT_BGRA:  out_bgra  (R,G,B,nout); break;            case PIX_FMT_RGBA:  out_rgba  (R,G,B,nout); break;            case PIX_FMT_ARGB:  out_argb  (R,G,B,nout); break;            case PIX_FMT_RGB24: out_rgb24 (R,G,B,nout); break;            case PIX_FMT_BGR24: out_bgr24 (R,G,B,nout); break;            default:                /* Unreachable, I think. */                av_log(c, AV_LOG_ERROR, "altivec_yuv2packedX doesn't support %s output\n",                       sws_format_name(c->dstFormat));                return;        }        memcpy (&((uint32_t*)dest)[i], scratch, (dstW-i)/4);    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
极品少妇一区二区三区精品视频| ㊣最新国产の精品bt伙计久久| 91精品国产综合久久福利| 欧美中文字幕不卡| 欧美一a一片一级一片| 97久久精品人人澡人人爽| 91网站在线播放| 欧美视频一区二区三区在线观看 | 成人99免费视频| 91蝌蚪porny| 欧美一区二区女人| 99精品黄色片免费大全| 成人精品视频一区| 成人黄色国产精品网站大全在线免费观看 | 国产一区二区三区免费看| 成人性生交大片免费看中文| 色吊一区二区三区| 欧美日韩成人高清| 久久久午夜精品| 99久久99久久精品免费观看| 这里只有精品视频在线观看| 国产精品视频九色porn| 一片黄亚洲嫩模| 国产日韩欧美综合一区| 精品国精品国产尤物美女| 欧美欧美午夜aⅴ在线观看| 日韩一二三区视频| 视频在线在亚洲| 一本大道久久a久久精二百| 亚洲bt欧美bt精品777| 奇米一区二区三区| 91麻豆精东视频| 精品电影一区二区三区| 亚洲无人区一区| 成人精品免费视频| 91精品久久久久久蜜臀| 1区2区3区国产精品| 国产在线看一区| 欧美日韩亚洲综合一区二区三区 | 亚洲成人在线网站| 国产99久久久国产精品| 日韩写真欧美这视频| 一区二区三区欧美亚洲| 国产精品白丝jk黑袜喷水| 欧美一卡二卡三卡四卡| 亚洲国产你懂的| 91蜜桃网址入口| 中文字幕成人av| 国产乱人伦偷精品视频免下载| 欧美一级免费观看| 亚洲一区二区欧美| 色久综合一二码| 亚洲天天做日日做天天谢日日欢| 成人一区二区三区| 久久精品一级爱片| 韩国女主播一区| 日韩欧美国产电影| 奇米一区二区三区| 欧美一区二区三区婷婷月色| 亚洲综合激情另类小说区| 91亚洲精品乱码久久久久久蜜桃| 亚洲国产精品成人久久综合一区| 久久97超碰色| 精品国产一区二区三区忘忧草 | 久久尤物电影视频在线观看| 蜜桃精品在线观看| 日韩欧美不卡一区| 麻豆精品精品国产自在97香蕉 | 91香蕉视频在线| 国产精品大尺度| 国产精品色哟哟| 91免费在线视频观看| 午夜精品aaa| 久久综合久久99| 91视频国产资源| 蓝色福利精品导航| 中文字幕在线不卡一区| 94色蜜桃网一区二区三区| 精品亚洲免费视频| 69久久99精品久久久久婷婷| 国产精品久久网站| 成人福利视频网站| 亚洲欧洲性图库| 91女人视频在线观看| ...xxx性欧美| 欧美亚洲另类激情小说| 夜夜操天天操亚洲| 欧美日韩精品高清| 麻豆一区二区三| 26uuu色噜噜精品一区二区| 国产精品主播直播| 国产亚洲欧美激情| 国产精品白丝av| 国产精品久久久久久久久果冻传媒| 99国产精品一区| 亚洲午夜羞羞片| 日韩一区二区免费在线电影| 国产一区福利在线| 国产精品欧美极品| 欧美性受xxxx| 蜜臀av性久久久久av蜜臀妖精| 亚洲精品一区二区三区蜜桃下载 | 成a人片亚洲日本久久| 亚洲人成在线播放网站岛国| 欧美日韩中文字幕一区二区| 美女精品自拍一二三四| 欧美精品一区二区久久婷婷| 岛国精品在线观看| 日韩久久久精品| 日日夜夜免费精品| 26uuu成人网一区二区三区| 成人aaaa免费全部观看| 五月婷婷色综合| 久久理论电影网| 日本久久一区二区| 久久99日本精品| 1000部国产精品成人观看| 538prom精品视频线放| 国产电影一区在线| 亚洲成人精品一区| 国产午夜精品一区二区三区四区| 色婷婷av久久久久久久| 黄色日韩网站视频| 国产精品国产自产拍高清av| 欧美日产国产精品| 成人av网站在线观看| 日韩av中文字幕一区二区三区| 国产日韩欧美激情| 欧美日韩免费不卡视频一区二区三区| 国产精品亚洲人在线观看| 亚洲国产成人精品视频| 日本一区二区成人在线| 91精品国产丝袜白色高跟鞋| 99综合电影在线视频| 免费在线观看精品| 成人免费一区二区三区在线观看 | 久久国产精品99精品国产| 亚洲欧洲另类国产综合| 欧美精品第1页| 成人福利视频在线看| 亚洲电影在线播放| 在线视频你懂得一区| 国产91精品精华液一区二区三区| 香蕉久久夜色精品国产使用方法| 国产精品免费看片| 精品久久久久一区二区国产| 欧美无乱码久久久免费午夜一区| 成人综合婷婷国产精品久久 | 91同城在线观看| 精品一区二区日韩| 国产精品青草综合久久久久99| 日韩一级片网址| 欧美网站大全在线观看| 不卡视频免费播放| 国产在线播放一区三区四| 天天综合色天天| 一区二区三区中文字幕| 国产精品欧美一级免费| 久久人人爽爽爽人久久久| 日韩一级免费一区| 欧美日韩成人综合天天影院| 亚洲色图欧美偷拍| 国产宾馆实践打屁股91| 国产日产欧美一区| 国产中文一区二区三区| 欧美电影一区二区三区| 亚洲欧美日韩国产中文在线| 国产精品自在欧美一区| 精品美女在线观看| 狠狠色狠狠色综合系列| 精品少妇一区二区三区日产乱码| 五月天视频一区| 欧美日韩亚洲另类| 久久精品国产一区二区三 | 欧美日韩一区成人| 99久久99久久精品免费观看| 成人综合在线网站| 成人午夜电影网站| 高清不卡一二三区| 亚洲成人av一区二区| 2020日本不卡一区二区视频| 欧美大胆人体bbbb| 日韩视频中午一区| 欧美一区二区三区人| 91麻豆精品国产综合久久久久久| 欧美蜜桃一区二区三区| 欧美色偷偷大香| 欧美日韩三级一区二区| 欧美三级日韩三级| 欧美老人xxxx18| 欧美一区二区免费| 精品区一区二区| 久久精品一区二区三区不卡| 国产无人区一区二区三区| 日本一区二区免费在线| 中文字幕第一区综合| 国产精品久久久久久久久免费樱桃 | 欧美v国产在线一区二区三区| 日韩一区二区三区四区五区六区| 日韩欧美国产一区在线观看|