Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
小白菜888
Ffmpeg
提交
74fc9989
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,发现更多精彩内容 >>
提交
74fc9989
编写于
5月 26, 2002
作者:
F
Fabrice Bellard
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
don't use inttypes.h - use inline function for bswap_64()
Originally committed as revision 608 to
svn://svn.ffmpeg.org/ffmpeg/trunk
上级
b13788c5
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
15 addition
and
23 deletion
+15
-23
libavcodec/bswap.h
libavcodec/bswap.h
+15
-23
未找到文件。
libavcodec/bswap.h
浏览文件 @
74fc9989
...
...
@@ -5,7 +5,6 @@
#include <byteswap.h>
#else
#include <inttypes.h>
/* for __WORDSIZE */
#ifdef ARCH_X86
inline
static
unsigned
short
ByteSwap16
(
unsigned
short
x
)
{
...
...
@@ -34,8 +33,8 @@ inline static unsigned int ByteSwap32(unsigned int x)
inline
static
unsigned
long
long
int
ByteSwap64
(
unsigned
long
long
int
x
)
{
register
union
{
__extension__
u
nsigned
long
long
in
t
__ll
;
u
nsigned
long
in
t
__l
[
2
];
}
__x
;
register
union
{
__extension__
u
int64_
t
__ll
;
u
int32_
t
__l
[
2
];
}
__x
;
asm
(
"xchgl %0,%1"
:
"=r"
(
__x
.
__l
[
0
]),
"=r"
(
__x
.
__l
[
1
])
:
"0"
(
bswap_32
((
unsigned
long
)
x
)),
"1"
(
bswap_32
((
unsigned
long
)(
x
>>
32
))));
...
...
@@ -53,26 +52,19 @@ inline static unsigned long long int ByteSwap64(unsigned long long int x)
((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >> 8) | \
(((x) & 0x0000ff00) << 8) | (((x) & 0x000000ff) << 24))
#if __WORDSIZE >= 64
# define bswap_64(x) \
((((x) & 0xff00000000000000ull) >> 56) \
| (((x) & 0x00ff000000000000ull) >> 40) \
| (((x) & 0x0000ff0000000000ull) >> 24) \
| (((x) & 0x000000ff00000000ull) >> 8) \
| (((x) & 0x00000000ff000000ull) << 8) \
| (((x) & 0x0000000000ff0000ull) << 24) \
| (((x) & 0x000000000000ff00ull) << 40) \
| (((x) & 0x00000000000000ffull) << 56))
#else
#define bswap_64(x) \
(__extension__ \
({ union { __extension__ unsigned long long int __ll; \
unsigned long int __l[2]; } __w, __r; \
__w.__ll = (x); \
__r.__l[0] = bswap_32 (__w.__l[1]); \
__r.__l[1] = bswap_32 (__w.__l[0]); \
__r.__ll; }))
#endif
inline
static
uint64_t
ByteSwap64
(
uint64_t
x
)
{
union
{
uint64_t
ll
;
uint32_t
l
[
2
];
}
w
,
r
;
w
.
ll
=
x
;
r
.
l
[
0
]
=
bswap_32
(
w
.
l
[
1
]);
r
.
l
[
1
]
=
bswap_32
(
w
.
l
[
0
]);
return
r
.
ll
;
}
#define bswap_64(x) ByteSwap64(x)
#endif
/* !ARCH_X86 */
#endif
/* !HAVE_BYTESWAP_H */
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录