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

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

?? yuv2rgb_vis.c.svn-base

?? ffmpeg最新源碼
?? SVN-BASE
字號:
/* * VIS optimized software YUV to RGB converter * Copyright (c) 2007 Denes Balatoni <dbalatoni@programozo.hu> * * This file is part of FFmpeg. * * FFmpeg 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. * * FFmpeg 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 FFmpeg; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */#include <inttypes.h>#include <stdlib.h>#include "swscale.h"#include "swscale_internal.h"#define YUV2RGB_INIT \    "wr %%g0, 0x10, %%gsr \n\t" \    "ldd [%5], %%f32      \n\t" \    "ldd [%5+8], %%f34    \n\t" \    "ldd [%5+16], %%f36   \n\t" \    "ldd [%5+24], %%f38   \n\t" \    "ldd [%5+32], %%f40   \n\t" \    "ldd [%5+40], %%f42   \n\t" \    "ldd [%5+48], %%f44   \n\t" \    "ldd [%5+56], %%f46   \n\t" \    "ldd [%5+64], %%f48   \n\t" \    "ldd [%5+72], %%f50   \n\t"#define YUV2RGB_KERNEL \    /* ^^^^ f0=Y f3=u f5=v */ \    "fmul8x16 %%f3, %%f48, %%f6   \n\t" \    "fmul8x16 %%f19, %%f48, %%f22 \n\t" \    "fmul8x16 %%f5, %%f44, %%f8   \n\t" \    "fmul8x16 %%f21, %%f44, %%f24 \n\t" \    "fmul8x16 %%f0, %%f42, %%f0   \n\t" \    "fmul8x16 %%f16, %%f42, %%f16 \n\t" \    "fmul8x16 %%f3, %%f50, %%f2   \n\t" \    "fmul8x16 %%f19, %%f50, %%f18 \n\t" \    "fmul8x16 %%f5, %%f46, %%f4   \n\t" \    "fmul8x16 %%f21, %%f46, %%f20 \n\t" \    \    "fpsub16 %%f6, %%f34, %%f6   \n\t" /* 1 */ \    "fpsub16 %%f22, %%f34, %%f22 \n\t" /* 1 */ \    "fpsub16 %%f8, %%f38, %%f8   \n\t" /* 3 */ \    "fpsub16 %%f24, %%f38, %%f24 \n\t" /* 3 */ \    "fpsub16 %%f0, %%f32, %%f0   \n\t" /* 0 */ \    "fpsub16 %%f16, %%f32, %%f16 \n\t" /* 0 */ \    "fpsub16 %%f2, %%f36, %%f2   \n\t" /* 2 */ \    "fpsub16 %%f18, %%f36, %%f18 \n\t" /* 2 */ \    "fpsub16 %%f4, %%f40, %%f4   \n\t" /* 4 */ \    "fpsub16 %%f20, %%f40, %%f20 \n\t" /* 4 */ \    \    "fpadd16 %%f0, %%f8, %%f8    \n\t" /* Gt */ \    "fpadd16 %%f16, %%f24, %%f24 \n\t" /* Gt */ \    "fpadd16 %%f0, %%f4, %%f4    \n\t" /* R */ \    "fpadd16 %%f16, %%f20, %%f20 \n\t" /* R */ \    "fpadd16 %%f0, %%f6, %%f6    \n\t" /* B */ \    "fpadd16 %%f16, %%f22, %%f22 \n\t" /* B */ \    "fpadd16 %%f8, %%f2, %%f2    \n\t" /* G */ \    "fpadd16 %%f24, %%f18, %%f18 \n\t" /* G */ \    \    "fpack16 %%f4, %%f4    \n\t" \    "fpack16 %%f20, %%f20  \n\t" \    "fpack16 %%f6, %%f6    \n\t" \    "fpack16 %%f22, %%f22  \n\t" \    "fpack16 %%f2, %%f2    \n\t" \    "fpack16 %%f18, %%f18  \n\t"static int vis_420P_ARGB32(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY,                           int srcSliceH, uint8_t* dst[], int dstStride[]){  int y, out1, out2, out3, out4, out5, out6;  for(y=0;y < srcSliceH;++y) {      asm volatile (          YUV2RGB_INIT          "wr %%g0, 0xd2, %%asi        \n\t" /* ASI_FL16_P */          "1:                          \n\t"          "ldda [%1] %%asi, %%f2       \n\t"          "ldda [%1+2] %%asi, %%f18    \n\t"          "ldda [%2] %%asi, %%f4       \n\t"          "ldda [%2+2] %%asi, %%f20    \n\t"          "ld [%0], %%f0               \n\t"          "ld [%0+4], %%f16            \n\t"          "fpmerge %%f3, %%f3, %%f2    \n\t"          "fpmerge %%f19, %%f19, %%f18 \n\t"          "fpmerge %%f5, %%f5, %%f4    \n\t"          "fpmerge %%f21, %%f21, %%f20 \n\t"          YUV2RGB_KERNEL          "fzero %%f0                  \n\t"          "fpmerge %%f4, %%f6, %%f8    \n\t"  // r,b,t1          "fpmerge %%f20, %%f22, %%f24 \n\t"  // r,b,t1          "fpmerge %%f0, %%f2, %%f10   \n\t"  // 0,g,t2          "fpmerge %%f0, %%f18, %%f26  \n\t"  // 0,g,t2          "fpmerge %%f10, %%f8, %%f4   \n\t"  // t2,t1,msb          "fpmerge %%f26, %%f24, %%f20 \n\t"  // t2,t1,msb          "fpmerge %%f11, %%f9, %%f6   \n\t"  // t2,t1,lsb          "fpmerge %%f27, %%f25, %%f22 \n\t"  // t2,t1,lsb          "std %%f4, [%3]              \n\t"          "std %%f20, [%3+16]          \n\t"          "std %%f6, [%3+8]            \n\t"          "std %%f22, [%3+24]          \n\t"          "add %0, 8, %0   \n\t"          "add %1, 4, %1   \n\t"          "add %2, 4, %2   \n\t"          "subcc %4, 8, %4 \n\t"          "bne 1b          \n\t"          "add %3, 32, %3  \n\t" //delay slot          : "=r" (out1), "=r" (out2), "=r" (out3), "=r" (out4), "=r" (out5), "=r" (out6)          : "0" (src[0]+(y+srcSliceY)*srcStride[0]), "1" (src[1]+((y+srcSliceY)>>1)*srcStride[1]),            "2" (src[2]+((y+srcSliceY)>>1)*srcStride[2]), "3" (dst[0]+(y+srcSliceY)*dstStride[0]),            "4" (c->dstW),            "5" (c->sparc_coeffs)      );  }  return srcSliceH;}static int vis_422P_ARGB32(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY,                           int srcSliceH, uint8_t* dst[], int dstStride[]){  int y, out1, out2, out3, out4, out5, out6;  for(y=0;y < srcSliceH;++y) {      asm volatile (          YUV2RGB_INIT          "wr %%g0, 0xd2, %%asi        \n\t" /* ASI_FL16_P */          "1:                          \n\t"          "ldda [%1] %%asi, %%f2       \n\t"          "ldda [%1+2] %%asi, %%f18    \n\t"          "ldda [%2] %%asi, %%f4       \n\t"          "ldda [%2+2] %%asi, %%f20    \n\t"          "ld [%0], %%f0               \n\t"          "ld [%0+4], %%f16            \n\t"          "fpmerge %%f3, %%f3, %%f2    \n\t"          "fpmerge %%f19, %%f19, %%f18 \n\t"          "fpmerge %%f5, %%f5, %%f4    \n\t"          "fpmerge %%f21, %%f21, %%f20 \n\t"          YUV2RGB_KERNEL          "fzero %%f0 \n\t"          "fpmerge %%f4, %%f6, %%f8    \n\t"  // r,b,t1          "fpmerge %%f20, %%f22, %%f24 \n\t"  // r,b,t1          "fpmerge %%f0, %%f2, %%f10   \n\t"  // 0,g,t2          "fpmerge %%f0, %%f18, %%f26  \n\t"  // 0,g,t2          "fpmerge %%f10, %%f8, %%f4   \n\t"  // t2,t1,msb          "fpmerge %%f26, %%f24, %%f20 \n\t"  // t2,t1,msb          "fpmerge %%f11, %%f9, %%f6   \n\t"  // t2,t1,lsb          "fpmerge %%f27, %%f25, %%f22 \n\t"  // t2,t1,lsb          "std %%f4, [%3]              \n\t"          "std %%f20, [%3+16]          \n\t"          "std %%f6, [%3+8]            \n\t"          "std %%f22, [%3+24]          \n\t"          "add %0, 8, %0   \n\t"          "add %1, 4, %1   \n\t"          "add %2, 4, %2   \n\t"          "subcc %4, 8, %4 \n\t"          "bne 1b          \n\t"          "add %3, 32, %3  \n\t" //delay slot          : "=r" (out1), "=r" (out2), "=r" (out3), "=r" (out4), "=r" (out5), "=r" (out6)          : "0" (src[0]+(y+srcSliceY)*srcStride[0]), "1" (src[1]+(y+srcSliceY)*srcStride[1]),            "2" (src[2]+(y+srcSliceY)*srcStride[2]), "3" (dst[0]+(y+srcSliceY)*dstStride[0]),            "4" (c->dstW),            "5" (c->sparc_coeffs)      );  }  return srcSliceH;}SwsFunc yuv2rgb_init_vis(SwsContext *c) {    c->sparc_coeffs[5]=c->yCoeff;    c->sparc_coeffs[6]=c->vgCoeff;    c->sparc_coeffs[7]=c->vrCoeff;    c->sparc_coeffs[8]=c->ubCoeff;    c->sparc_coeffs[9]=c->ugCoeff;    c->sparc_coeffs[0]=(((int16_t)c->yOffset*(int16_t)c->yCoeff >>11) & 0xffff) * 0x0001000100010001ULL;    c->sparc_coeffs[1]=(((int16_t)c->uOffset*(int16_t)c->ubCoeff>>11) & 0xffff) * 0x0001000100010001ULL;    c->sparc_coeffs[2]=(((int16_t)c->uOffset*(int16_t)c->ugCoeff>>11) & 0xffff) * 0x0001000100010001ULL;    c->sparc_coeffs[3]=(((int16_t)c->vOffset*(int16_t)c->vgCoeff>>11) & 0xffff) * 0x0001000100010001ULL;    c->sparc_coeffs[4]=(((int16_t)c->vOffset*(int16_t)c->vrCoeff>>11) & 0xffff) * 0x0001000100010001ULL;    if (c->dstFormat == PIX_FMT_RGB32 && c->srcFormat == PIX_FMT_YUV422P && (c->dstW & 7)==0) {        av_log(c, AV_LOG_INFO, "SPARC VIS accelerated YUV422P -> RGB32\n");        return vis_422P_ARGB32;    }    else if (c->dstFormat == PIX_FMT_RGB32 && c->srcFormat == PIX_FMT_YUV420P && (c->dstW & 7)==0) {        av_log(c, AV_LOG_INFO, "SPARC VIS accelerated YUV420P -> RGB32\n");        return vis_420P_ARGB32;    }    return NULL;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本一道波多野结衣一区二区| 精品视频免费在线| 亚洲18影院在线观看| **欧美大码日韩| 亚洲欧洲成人自拍| 亚洲国产精品激情在线观看| 国产精品久久免费看| 国产精品入口麻豆九色| 国产精品国产自产拍高清av | 久久爱www久久做| 天天综合日日夜夜精品| 捆绑变态av一区二区三区| 久久国产夜色精品鲁鲁99| 久久精品国产免费| 国产成人免费视频网站| 9人人澡人人爽人人精品| 91色九色蝌蚪| 欧美日韩极品在线观看一区| 日韩一区二区三区电影在线观看| 精品国产在天天线2019| 国产日韩欧美在线一区| 亚洲另类中文字| 久久精品国产77777蜜臀| 国产69精品久久久久777| 日本福利一区二区| 日韩美女在线视频| 国产精品乱人伦一区二区| 一区二区三区日本| 美女视频网站黄色亚洲| av在线播放一区二区三区| 在线看一区二区| 欧美mv和日韩mv国产网站| 国产精品网站导航| 免费xxxx性欧美18vr| www.亚洲色图.com| 日韩亚洲国产中文字幕欧美| 国产精品二三区| 久久国产免费看| 91日韩精品一区| 精品国产91久久久久久久妲己| 亚洲色图清纯唯美| 九九九精品视频| 欧美日韩亚洲国产综合| 国产精品日日摸夜夜摸av| 免费欧美日韩国产三级电影| 91免费在线看| 国产日韩欧美激情| 捆绑紧缚一区二区三区视频| 欧美日韩一区二区三区免费看 | 91福利在线播放| 中文字幕欧美激情一区| 久久99久久久欧美国产| 欧美亚洲愉拍一区二区| 中文字幕一区二区三区不卡| 国产精品性做久久久久久| 337p亚洲精品色噜噜狠狠| 亚洲日本一区二区三区| 福利一区二区在线观看| 精品少妇一区二区三区日产乱码| 亚洲自拍与偷拍| 91性感美女视频| 国产精品免费aⅴ片在线观看| 国产一区二区免费看| 欧美一区二区免费| 蜜桃视频免费观看一区| 91精品久久久久久久91蜜桃| 亚洲一区二区五区| 在线免费观看日本一区| 亚洲国产人成综合网站| 欧美最新大片在线看 | 欧美男人的天堂一二区| 一区二区三区日韩在线观看| 91小视频免费观看| 亚洲在线中文字幕| 欧洲日韩一区二区三区| 亚洲午夜视频在线观看| 欧美日韩一区二区三区四区| 午夜亚洲国产au精品一区二区 | 免费视频一区二区| 欧美一区二区三区视频在线| 美女网站色91| 久久久精品2019中文字幕之3| 国产成人一区在线| 国产欧美日韩一区二区三区在线观看 | av亚洲精华国产精华精| 亚洲精品视频一区| 欧美亚州韩日在线看免费版国语版| 亚洲永久精品大片| 日韩三区在线观看| 国产成人精品免费视频网站| 中文字幕一区av| 欧美色倩网站大全免费| 免费高清视频精品| 国产欧美日产一区| 欧美三级视频在线观看| 蜜臀a∨国产成人精品| 中文字幕va一区二区三区| 91麻豆.com| 免费看日韩a级影片| 久久精品亚洲精品国产欧美| 99国产精品国产精品毛片| 亚洲一区二区免费视频| 欧美精品一区二区不卡| 色综合久久中文综合久久牛| 婷婷国产在线综合| 久久久不卡网国产精品二区| 欧洲精品中文字幕| 精品一区二区国语对白| 亚洲卡通动漫在线| 精品国产伦一区二区三区观看方式| caoporm超碰国产精品| 秋霞午夜av一区二区三区| 国产精品久久久久aaaa| 日韩欧美色综合| 91啦中文在线观看| 国产高清视频一区| 天堂av在线一区| 亚洲日本在线看| 国产色产综合色产在线视频| 制服视频三区第一页精品| 91丨九色丨黑人外教| 精品一区二区在线免费观看| 亚洲综合一二三区| 国产精品理论片| 久久久久久亚洲综合| 在线成人午夜影院| 91美女福利视频| 成人免费视频国产在线观看| 久久不见久久见中文字幕免费| 亚洲大型综合色站| 亚洲最大色网站| 亚洲婷婷综合色高清在线| 久久精品水蜜桃av综合天堂| 日韩一区二区三免费高清| 欧美日韩美少妇| 欧美这里有精品| 色婷婷综合激情| 国产99久久久国产精品潘金| 国产综合色产在线精品| 美日韩黄色大片| 蜜桃av噜噜一区| 日本欧美大码aⅴ在线播放| 午夜精品视频一区| 偷拍自拍另类欧美| 亚洲国产视频网站| 亚洲成人激情av| 丝袜美腿亚洲综合| 亚洲国产三级在线| 日韩精品五月天| 舔着乳尖日韩一区| 蜜臀99久久精品久久久久久软件| 日本女优在线视频一区二区| 免费精品视频最新在线| 久久超碰97人人做人人爱| 精品一区二区免费在线观看| 国产久卡久卡久卡久卡视频精品| 国产一区二区三区不卡在线观看| 国产剧情一区在线| 本田岬高潮一区二区三区| 一本一本大道香蕉久在线精品| 色一情一乱一乱一91av| 欧美日韩精品欧美日韩精品一 | 日本高清成人免费播放| 91成人看片片| 欧美日韩免费高清一区色橹橹| 在线播放日韩导航| 久久久久久久久久久99999| 国产精品日日摸夜夜摸av| 一区二区国产盗摄色噜噜| 图片区日韩欧美亚洲| 国产一区二区福利视频| 99精品视频在线观看| 欧美在线免费观看亚洲| 欧美高清hd18日本| 久久久久亚洲综合| 亚洲欧美一区二区不卡| 青青草国产成人99久久| 成人综合婷婷国产精品久久蜜臀| 91成人免费在线视频| 正在播放亚洲一区| 国产精品成人免费在线| 日韩影院免费视频| 成人精品鲁一区一区二区| 欧美性高清videossexo| 久久蜜桃香蕉精品一区二区三区| 亚洲你懂的在线视频| 久久精品国产久精国产爱| 91看片淫黄大片一级| 欧美哺乳videos| 亚洲国产aⅴ成人精品无吗| 国产麻豆精品theporn| 欧美性受xxxx黑人xyx性爽| 久久久久国产免费免费| 亚洲观看高清完整版在线观看| 国产iv一区二区三区| 91精品国产综合久久蜜臀| 亚洲老司机在线| voyeur盗摄精品| 国产日韩欧美在线一区| 日韩电影在线一区|