Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
小白菜888
Ffmpeg
提交
7080ec29
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,发现更多精彩内容 >>
提交
7080ec29
编写于
2月 06, 2008
作者:
L
Loren Merritt
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix aliasing warnings. simpler too.
Originally committed as revision 11875 to
svn://svn.ffmpeg.org/ffmpeg/trunk
上级
a2b7bc8e
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
34 addition
and
41 deletion
+34
-41
libavcodec/i386/h264dsp_mmx.c
libavcodec/i386/h264dsp_mmx.c
+34
-41
未找到文件。
libavcodec/i386/h264dsp_mmx.c
浏览文件 @
7080ec29
...
...
@@ -1681,10 +1681,9 @@ static void OPNAME ## h264_qpel ## SIZE ## _mc30_ ## MMX(uint8_t *dst, uint8_t *
}\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc01_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
DECLARE_ALIGNED(ALIGN, uint64_t, temp[SIZE*SIZE/8]);\
uint8_t * const half= (uint8_t*)temp;\
put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(half, src, SIZE, stride);\
OPNAME ## pixels ## SIZE ## _l2_ ## MMX(dst, src, half, stride, stride, SIZE);\
DECLARE_ALIGNED(ALIGN, uint8_t, temp[SIZE*SIZE]);\
put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(temp, src, SIZE, stride);\
OPNAME ## pixels ## SIZE ## _l2_ ## MMX(dst, src, temp, stride, stride, SIZE);\
}\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc02_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
...
...
@@ -1692,77 +1691,71 @@ static void OPNAME ## h264_qpel ## SIZE ## _mc02_ ## MMX(uint8_t *dst, uint8_t *
}\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc03_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
DECLARE_ALIGNED(ALIGN, uint64_t, temp[SIZE*SIZE/8]);\
uint8_t * const half= (uint8_t*)temp;\
put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(half, src, SIZE, stride);\
OPNAME ## pixels ## SIZE ## _l2_ ## MMX(dst, src+stride, half, stride, stride, SIZE);\
DECLARE_ALIGNED(ALIGN, uint8_t, temp[SIZE*SIZE]);\
put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(temp, src, SIZE, stride);\
OPNAME ## pixels ## SIZE ## _l2_ ## MMX(dst, src+stride, temp, stride, stride, SIZE);\
}\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc11_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
DECLARE_ALIGNED(ALIGN, uint64_t, temp[SIZE*SIZE/8]);\
uint8_t * const halfV= (uint8_t*)temp;\
put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(halfV, src, SIZE, stride);\
OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src, halfV, stride, SIZE);\
DECLARE_ALIGNED(ALIGN, uint8_t, temp[SIZE*SIZE]);\
put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(temp, src, SIZE, stride);\
OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src, temp, stride, SIZE);\
}\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc31_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
DECLARE_ALIGNED(ALIGN, uint64_t, temp[SIZE*SIZE/8]);\
uint8_t * const halfV= (uint8_t*)temp;\
put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(halfV, src+1, SIZE, stride);\
OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src, halfV, stride, SIZE);\
DECLARE_ALIGNED(ALIGN, uint8_t, temp[SIZE*SIZE]);\
put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(temp, src+1, SIZE, stride);\
OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src, temp, stride, SIZE);\
}\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc13_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
DECLARE_ALIGNED(ALIGN, uint64_t, temp[SIZE*SIZE/8]);\
uint8_t * const halfV= (uint8_t*)temp;\
put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(halfV, src, SIZE, stride);\
OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src+stride, halfV, stride, SIZE);\
DECLARE_ALIGNED(ALIGN, uint8_t, temp[SIZE*SIZE]);\
put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(temp, src, SIZE, stride);\
OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src+stride, temp, stride, SIZE);\
}\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc33_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
DECLARE_ALIGNED(ALIGN, uint64_t, temp[SIZE*SIZE/8]);\
uint8_t * const halfV= (uint8_t*)temp;\
put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(halfV, src+1, SIZE, stride);\
OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src+stride, halfV, stride, SIZE);\
DECLARE_ALIGNED(ALIGN, uint8_t, temp[SIZE*SIZE]);\
put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(temp, src+1, SIZE, stride);\
OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src+stride, temp, stride, SIZE);\
}\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc22_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
DECLARE_ALIGNED(ALIGN, uint64_t, temp[SIZE*(SIZE<8?12:24)/4]);\
int16_t * const tmp= (int16_t*)temp;\
OPNAME ## h264_qpel ## SIZE ## _hv_lowpass_ ## MMX(dst, tmp, src, stride, SIZE, stride);\
DECLARE_ALIGNED(ALIGN, uint16_t, temp[SIZE*(SIZE<8?12:24)]);\
OPNAME ## h264_qpel ## SIZE ## _hv_lowpass_ ## MMX(dst, temp, src, stride, SIZE, stride);\
}\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc21_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
DECLARE_ALIGNED(ALIGN, uint
64_t, temp[SIZE*(SIZE<8?12:24)/4 + SIZE*SIZE/8
]);\
uint8_t * const halfHV=
(uint8_t*)
temp;\
int16_t * const
tmp= ((int16_t*)temp) + SIZE*SIZE/2
;\
DECLARE_ALIGNED(ALIGN, uint
8_t, temp[SIZE*(SIZE<8?12:24)*2 + SIZE*SIZE
]);\
uint8_t * const halfHV= temp;\
int16_t * const
halfV= (int16_t*)(temp + SIZE*SIZE)
;\
assert(((int)temp & 7) == 0);\
put_h264_qpel ## SIZE ## _hv_lowpass_ ## MMX(halfHV,
tmp
, src, SIZE, SIZE, stride);\
put_h264_qpel ## SIZE ## _hv_lowpass_ ## MMX(halfHV,
halfV
, src, SIZE, SIZE, stride);\
OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src, halfHV, stride, SIZE);\
}\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc23_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
DECLARE_ALIGNED(ALIGN, uint
64_t, temp[SIZE*(SIZE<8?12:24)/4 + SIZE*SIZE/8
]);\
uint8_t * const halfHV=
(uint8_t*)
temp;\
int16_t * const
tmp= ((int16_t*)temp) + SIZE*SIZE/2
;\
DECLARE_ALIGNED(ALIGN, uint
8_t, temp[SIZE*(SIZE<8?12:24)*2 + SIZE*SIZE
]);\
uint8_t * const halfHV= temp;\
int16_t * const
halfV= (int16_t*)(temp + SIZE*SIZE)
;\
assert(((int)temp & 7) == 0);\
put_h264_qpel ## SIZE ## _hv_lowpass_ ## MMX(halfHV,
tmp
, src, SIZE, SIZE, stride);\
put_h264_qpel ## SIZE ## _hv_lowpass_ ## MMX(halfHV,
halfV
, src, SIZE, SIZE, stride);\
OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src+stride, halfHV, stride, SIZE);\
}\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc12_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
DECLARE_ALIGNED(ALIGN, uint
64_t, temp[SIZE*(SIZE<8?12:24)/4 + SIZE*SIZE/8
]);\
int16_t * const halfV= ((int16_t*)temp) + SIZE*SIZE/2
;\
uint8_t * const halfHV= ((uint8_t*)temp
);\
DECLARE_ALIGNED(ALIGN, uint
8_t, temp[SIZE*(SIZE<8?12:24)*2 + SIZE*SIZE
]);\
uint8_t * const halfHV= temp
;\
int16_t * const halfV= (int16_t*)(temp + SIZE*SIZE
);\
assert(((int)temp & 7) == 0);\
put_h264_qpel ## SIZE ## _hv_lowpass_ ## MMX(halfHV, halfV, src, SIZE, SIZE, stride);\
OPNAME ## pixels ## SIZE ## _l2_shift5_ ## MMX(dst, halfV+2, halfHV, stride, SIZE, SIZE);\
}\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc32_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
DECLARE_ALIGNED(ALIGN, uint
64_t, temp[SIZE*(SIZE<8?12:24)/4 + SIZE*SIZE/8
]);\
int16_t * const halfV= ((int16_t*)temp) + SIZE*SIZE/2
;\
uint8_t * const halfHV= ((uint8_t*)temp
);\
DECLARE_ALIGNED(ALIGN, uint
8_t, temp[SIZE*(SIZE<8?12:24)*2 + SIZE*SIZE
]);\
uint8_t * const halfHV= temp
;\
int16_t * const halfV= (int16_t*)(temp + SIZE*SIZE
);\
assert(((int)temp & 7) == 0);\
put_h264_qpel ## SIZE ## _hv_lowpass_ ## MMX(halfHV, halfV, src, SIZE, SIZE, stride);\
OPNAME ## pixels ## SIZE ## _l2_shift5_ ## MMX(dst, halfV+3, halfHV, stride, SIZE, SIZE);\
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录