Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
小白菜888
Ffmpeg
提交
a88e1d1c
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,发现更多精彩内容 >>
提交
a88e1d1c
编写于
4月 23, 2014
作者:
J
Janne Grunau
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
lavu: add CHK_OFFS as AV_CHECK_OFFSET to check struct member offsets
上级
152b797c
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
15 addition
and
13 deletion
+15
-13
libavcodec/arm/asm-offsets.h
libavcodec/arm/asm-offsets.h
+0
-7
libavcodec/arm/mpegvideo_arm.c
libavcodec/arm/mpegvideo_arm.c
+8
-6
libavutil/internal.h
libavutil/internal.h
+7
-0
未找到文件。
libavcodec/arm/asm-offsets.h
浏览文件 @
a88e1d1c
...
...
@@ -21,13 +21,6 @@
#ifndef AVCODEC_ARM_ASM_OFFSETS_H
#define AVCODEC_ARM_ASM_OFFSETS_H
#ifndef __ASSEMBLER__
#include <stddef.h>
#define CHK_OFFS(s, m, o) struct check_##o { \
int x_##o[offsetof(s, m) == o? 1: -1]; \
}
#endif
/* MpegEncContext */
#define Y_DC_SCALE 0xa8
#define C_DC_SCALE 0xac
...
...
libavcodec/arm/mpegvideo_arm.c
浏览文件 @
a88e1d1c
...
...
@@ -18,6 +18,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "libavutil/internal.h"
#include "libavutil/arm/cpu.h"
#include "libavcodec/avcodec.h"
#include "libavcodec/mpegvideo.h"
...
...
@@ -25,12 +26,13 @@
#include "asm-offsets.h"
#if HAVE_NEON
CHK_OFFS
(
MpegEncContext
,
y_dc_scale
,
Y_DC_SCALE
);
CHK_OFFS
(
MpegEncContext
,
c_dc_scale
,
C_DC_SCALE
);
CHK_OFFS
(
MpegEncContext
,
ac_pred
,
AC_PRED
);
CHK_OFFS
(
MpegEncContext
,
block_last_index
,
BLOCK_LAST_INDEX
);
CHK_OFFS
(
MpegEncContext
,
inter_scantable
.
raster_end
,
INTER_SCANTAB_RASTER_END
);
CHK_OFFS
(
MpegEncContext
,
h263_aic
,
H263_AIC
);
AV_CHECK_OFFSET
(
MpegEncContext
,
y_dc_scale
,
Y_DC_SCALE
);
AV_CHECK_OFFSET
(
MpegEncContext
,
c_dc_scale
,
C_DC_SCALE
);
AV_CHECK_OFFSET
(
MpegEncContext
,
ac_pred
,
AC_PRED
);
AV_CHECK_OFFSET
(
MpegEncContext
,
block_last_index
,
BLOCK_LAST_INDEX
);
AV_CHECK_OFFSET
(
MpegEncContext
,
inter_scantable
.
raster_end
,
INTER_SCANTAB_RASTER_END
);
AV_CHECK_OFFSET
(
MpegEncContext
,
h263_aic
,
H263_AIC
);
#endif
void
ff_dct_unquantize_h263_inter_neon
(
MpegEncContext
*
s
,
int16_t
*
block
,
...
...
libavutil/internal.h
浏览文件 @
a88e1d1c
...
...
@@ -84,6 +84,13 @@
// to be forced to tokenize __VA_ARGS__
#define E1(x) x
/* Check if the hard coded offset of a struct member still matches reality.
* Induce a compilation failure if not.
*/
#define AV_CHECK_OFFSET(s, m, o) struct check_##o { \
int x_##o[offsetof(s, m) == o? 1: -1]; \
}
#define LOCAL_ALIGNED_A(a, t, v, s, o, ...) \
uint8_t la_##v[sizeof(t s o) + (a)]; \
t (*v) o = (void *)FFALIGN((uintptr_t)la_##v, a)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录