Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
小白菜888
Ffmpeg
提交
b6d544f5
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,发现更多精彩内容 >>
提交
b6d544f5
编写于
9月 07, 2008
作者:
V
Vitor Sessak
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Remove output pointer from context
Originally committed as revision 15243 to
svn://svn.ffmpeg.org/ffmpeg/trunk
上级
bd547403
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
21 addition
and
19 deletion
+21
-19
libavcodec/mace.c
libavcodec/mace.c
+21
-19
未找到文件。
libavcodec/mace.c
浏览文件 @
b6d544f5
...
...
@@ -236,10 +236,10 @@ static const uint16_t MACEtab4[][8] = {
typedef
struct
MACEContext
{
short
index
,
lev
,
factor
,
prev2
,
previous
,
level
;
short
*
outPtr
;
}
MACEContext
;
static
void
chomp3
(
MACEContext
*
ctx
,
uint8_t
val
,
const
uint16_t
tab1
[],
static
void
chomp3
(
MACEContext
*
ctx
,
int16_t
*
output
,
uint8_t
val
,
const
uint16_t
tab1
[],
const
uint16_t
tab2
[][
8
],
uint32_t
numChannels
)
{
short
current
;
...
...
@@ -255,13 +255,13 @@ static void chomp3(MACEContext *ctx, uint8_t val, const uint16_t tab1[],
ctx
->
lev
=
current
-
(
current
>>
3
);
//*ctx->outPtr++=current >> 8;
*
ctx
->
outPtr
=
current
;
ctx
->
outPtr
+=
numChannels
;
*
output
=
current
;
if
((
ctx
->
index
+=
tab1
[
val
]
-
(
ctx
->
index
>>
5
)
)
<
0
)
ctx
->
index
=
0
;
}
static
void
chomp6
(
MACEContext
*
ctx
,
uint8_t
val
,
const
uint16_t
tab1
[],
static
void
chomp6
(
MACEContext
*
ctx
,
int16_t
*
output
,
uint8_t
val
,
const
uint16_t
tab1
[],
const
uint16_t
tab2
[][
8
],
uint32_t
numChannels
)
{
short
current
;
...
...
@@ -292,10 +292,8 @@ static void chomp6(MACEContext *ctx, uint8_t val, const uint16_t tab1[],
// *ctx->outPtr++=(ctx->previous+ctx->prev2-((ctx->prev2-current) >> 2)) >> 8;
// *ctx->outPtr++=(ctx->previous+current+((ctx->prev2-current) >> 2)) >> 8;
*
ctx
->
outPtr
=
(
ctx
->
previous
+
ctx
->
prev2
-
((
ctx
->
prev2
-
current
)
>>
2
));
ctx
->
outPtr
+=
numChannels
;
*
ctx
->
outPtr
=
(
ctx
->
previous
+
current
+
((
ctx
->
prev2
-
current
)
>>
2
));
ctx
->
outPtr
+=
numChannels
;
output
[
0
]
=
(
ctx
->
previous
+
ctx
->
prev2
-
((
ctx
->
prev2
-
current
)
>>
2
));
output
[
numChannels
]
=
(
ctx
->
previous
+
current
+
((
ctx
->
prev2
-
current
)
>>
2
));
ctx
->
prev2
=
ctx
->
previous
;
ctx
->
previous
=
current
;
...
...
@@ -320,16 +318,18 @@ static int mace3_decode_frame(AVCodecContext *avctx,
int
i
,
j
,
k
;
for
(
i
=
0
;
i
<
avctx
->
channels
;
i
++
)
{
int16_t
*
output
=
samples
+
i
;
ctx
->
index
=
ctx
->
lev
=
0
;
ctx
->
outPtr
=
samples
+
i
;
for
(
j
=
0
;
j
<
buf_size
/
2
/
avctx
->
channels
;
j
++
)
for
(
k
=
0
;
k
<
2
;
k
++
)
{
uint8_t
pkt
=
buf
[
i
*
2
+
j
*
2
*
avctx
->
channels
+
k
];
chomp3
(
ctx
,
pkt
&
7
,
MACEtab1
,
MACEtab2
,
avctx
->
channels
);
chomp3
(
ctx
,(
pkt
>>
3
)
&
3
,
MACEtab3
,
MACEtab4
,
avctx
->
channels
);
chomp3
(
ctx
,
pkt
>>
5
,
MACEtab1
,
MACEtab2
,
avctx
->
channels
);
chomp3
(
ctx
,
output
,
pkt
&
7
,
MACEtab1
,
MACEtab2
,
avctx
->
channels
);
output
+=
avctx
->
channels
;
chomp3
(
ctx
,
output
,(
pkt
>>
3
)
&
3
,
MACEtab3
,
MACEtab4
,
avctx
->
channels
);
output
+=
avctx
->
channels
;
chomp3
(
ctx
,
output
,
pkt
>>
5
,
MACEtab1
,
MACEtab2
,
avctx
->
channels
);
output
+=
avctx
->
channels
;
}
}
...
...
@@ -347,16 +347,18 @@ static int mace6_decode_frame(AVCodecContext *avctx,
int
i
,
j
;
for
(
i
=
0
;
i
<
avctx
->
channels
;
i
++
)
{
int16_t
*
output
=
samples
+
i
;
ctx
->
previous
=
ctx
->
prev2
=
ctx
->
index
=
ctx
->
level
=
ctx
->
factor
=
0
;
ctx
->
outPtr
=
samples
+
i
;
for
(
j
=
0
;
j
<
buf_size
/
avctx
->
channels
;
j
++
)
{
uint8_t
pkt
=
buf
[
i
+
j
*
avctx
->
channels
];
chomp6
(
ctx
,
pkt
>>
5
,
MACEtab1
,
MACEtab2
,
avctx
->
channels
);
chomp6
(
ctx
,(
pkt
>>
3
)
&
3
,
MACEtab3
,
MACEtab4
,
avctx
->
channels
);
chomp6
(
ctx
,
pkt
&
7
,
MACEtab1
,
MACEtab2
,
avctx
->
channels
);
chomp6
(
ctx
,
output
,
pkt
>>
5
,
MACEtab1
,
MACEtab2
,
avctx
->
channels
);
output
+=
avctx
->
channels
<<
1
;
chomp6
(
ctx
,
output
,(
pkt
>>
3
)
&
3
,
MACEtab3
,
MACEtab4
,
avctx
->
channels
);
output
+=
avctx
->
channels
<<
1
;
chomp6
(
ctx
,
output
,
pkt
&
7
,
MACEtab1
,
MACEtab2
,
avctx
->
channels
);
output
+=
avctx
->
channels
<<
1
;
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录