Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
小白菜888
Ffmpeg
提交
f1e0b90c
F
Ffmpeg
项目概览
小白菜888
/
Ffmpeg
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
Ffmpeg
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
f1e0b90c
编写于
6月 07, 2011
作者:
R
Ronald S. Bultje
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
swscale: use standard clipping functions.
This generates better code on some non-x86 architectures.
上级
e458b536
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
20 addition
and
33 deletion
+20
-33
libswscale/swscale.c
libswscale/swscale.c
+20
-33
未找到文件。
libswscale/swscale.c
浏览文件 @
f1e0b90c
...
...
@@ -404,6 +404,12 @@ static void yuv2nv12X_c(SwsContext *c, const int16_t *lumFilter,
Y2>>=19;\
U >>=19;\
V >>=19;\
if ((Y1|Y2|U|V)&0x100) {\
Y1 = av_clip_uint8(Y1); \
Y2 = av_clip_uint8(Y2); \
U = av_clip_uint8(U); \
V = av_clip_uint8(V); \
}\
if (alpha) {\
A1 = 1<<18;\
A2 = 1<<18;\
...
...
@@ -413,20 +419,10 @@ static void yuv2nv12X_c(SwsContext *c, const int16_t *lumFilter,
}\
A1>>=19;\
A2>>=19;\
}\
if ((Y1|Y2|U|V)&256) {\
if (Y1>255) Y1=255; \
else if (Y1<0)Y1=0; \
if (Y2>255) Y2=255; \
else if (Y2<0)Y2=0; \
if (U>255) U=255; \
else if (U<0) U=0; \
if (V>255) V=255; \
else if (V<0) V=0; \
}\
if (alpha && ((A1|A2)&256)) {\
A1=av_clip_uint8(A1);\
A2=av_clip_uint8(A2);\
if ((A1|A2)&0x100) {\
A1 = av_clip_uint8(A1); \
A2 = av_clip_uint8(A2); \
}\
}
#define YSCALE_YUV_2_RGBX_FULL_C(rnd,alpha) \
...
...
@@ -453,7 +449,7 @@ static void yuv2nv12X_c(SwsContext *c, const int16_t *lumFilter,
for (j=0; j<lumFilterSize; j++)\
A += alpSrc[j][i ] * lumFilter[j];\
A >>=19;\
if (A&
256
)\
if (A&
0x100
)\
A = av_clip_uint8(A);\
}\
Y-= c->yuv2rgb_y_offset;\
...
...
@@ -463,12 +459,9 @@ static void yuv2nv12X_c(SwsContext *c, const int16_t *lumFilter,
G= Y + V*c->yuv2rgb_v2g_coeff + U*c->yuv2rgb_u2g_coeff;\
B= Y + U*c->yuv2rgb_u2b_coeff;\
if ((R|G|B)&(0xC0000000)) {\
if (R>=(256<<22)) R=(256<<22)-1; \
else if (R<0)R=0; \
if (G>=(256<<22)) G=(256<<22)-1; \
else if (G<0)G=0; \
if (B>=(256<<22)) B=(256<<22)-1; \
else if (B<0)B=0; \
R = av_clip_uintp2(R, 30); \
G = av_clip_uintp2(G, 30); \
B = av_clip_uintp2(B, 30); \
}
#define YSCALE_YUV_2_GRAY16_C \
...
...
@@ -476,8 +469,6 @@ static void yuv2nv12X_c(SwsContext *c, const int16_t *lumFilter,
int j;\
int Y1 = 1<<18;\
int Y2 = 1<<18;\
int U = 1<<18;\
int V = 1<<18;\
\
const int i2= 2*i;\
\
...
...
@@ -487,11 +478,9 @@ static void yuv2nv12X_c(SwsContext *c, const int16_t *lumFilter,
}\
Y1>>=11;\
Y2>>=11;\
if ((Y1|Y2|U|V)&65536) {\
if (Y1>65535) Y1=65535; \
else if (Y1<0)Y1=0; \
if (Y2>65535) Y2=65535; \
else if (Y2<0)Y2=0; \
if ((Y1|Y2)&0x1000) {\
Y1 = av_clip_uint16(Y1); \
Y2 = av_clip_uint16(Y2); \
}
#define YSCALE_YUV_2_RGBX_C(type,alpha) \
...
...
@@ -604,11 +593,9 @@ static void yuv2nv12X_c(SwsContext *c, const int16_t *lumFilter,
}\
Y1>>=19;\
Y2>>=19;\
if ((Y1|Y2)&256) {\
if (Y1>255) Y1=255;\
else if (Y1<0)Y1=0;\
if (Y2>255) Y2=255;\
else if (Y2<0)Y2=0;\
if ((Y1|Y2)&0x100) {\
Y1 = av_clip_uint8(Y1); \
Y2 = av_clip_uint8(Y2); \
}\
acc+= acc + g[Y1+d128[(i+0)&7]];\
acc+= acc + g[Y2+d128[(i+1)&7]];\
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录