Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
小白菜888
Ffmpeg
提交
d8278bab
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,发现更多精彩内容 >>
提交
d8278bab
编写于
5月 18, 2005
作者:
M
Mike Melanson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
replace get_superblock_run_length() with a VLC table
Originally committed as revision 4267 to
svn://svn.ffmpeg.org/ffmpeg/trunk
上级
0ad72bdd
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
39 addition
and
0 deletion
+39
-0
libavcodec/vp3.c
libavcodec/vp3.c
+18
-0
libavcodec/vp3data.h
libavcodec/vp3data.h
+21
-0
未找到文件。
libavcodec/vp3.c
浏览文件 @
d8278bab
...
...
@@ -1182,7 +1182,14 @@ static int unpack_superblocks(Vp3DecodeContext *s, GetBitContext *gb)
while
(
current_superblock
<
s
->
superblock_count
)
{
if
(
current_run
==
0
)
{
bit
^=
1
;
#if 1
current_run
=
get_vlc2
(
gb
,
s
->
superblock_run_length_vlc
.
table
,
6
,
2
)
+
1
;
if
(
current_run
==
34
)
current_run
+=
get_bits
(
gb
,
12
);
#else
current_run
=
get_superblock_run_length
(
gb
);
#endif
debug_block_coding
(
" setting superblocks %d..%d to %s
\n
"
,
current_superblock
,
current_superblock
+
current_run
-
1
,
...
...
@@ -1221,7 +1228,14 @@ static int unpack_superblocks(Vp3DecodeContext *s, GetBitContext *gb)
if
(
current_run
==
0
)
{
bit
^=
1
;
#if 1
current_run
=
get_vlc2
(
gb
,
s
->
superblock_run_length_vlc
.
table
,
6
,
2
)
+
1
;
if
(
current_run
==
34
)
current_run
+=
get_bits
(
gb
,
12
);
#else
current_run
=
get_superblock_run_length
(
gb
);
#endif
}
debug_block_coding
(
" setting superblock %d to %s
\n
"
,
...
...
@@ -2630,6 +2644,10 @@ static int vp3_decode_init(AVCodecContext *avctx)
&
ac_bias_3
[
i
][
0
][
0
],
4
,
2
,
0
);
}
init_vlc
(
&
s
->
superblock_run_length_vlc
,
6
,
34
,
&
superblock_run_length_vlc_table
[
0
][
1
],
4
,
2
,
&
superblock_run_length_vlc_table
[
0
][
0
],
4
,
2
,
0
);
init_vlc
(
&
s
->
fragment_run_length_vlc
,
5
,
31
,
&
fragment_run_length_vlc_table
[
0
][
1
],
4
,
2
,
&
fragment_run_length_vlc_table
[
0
][
0
],
4
,
2
,
0
);
...
...
libavcodec/vp3data.h
浏览文件 @
d8278bab
...
...
@@ -72,6 +72,27 @@ static const uint32_t vp31_filter_limit_values[64] =
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
};
static
const
uint16_t
superblock_run_length_vlc_table
[
34
][
2
]
=
{
{
0
,
1
},
{
4
,
3
},
{
5
,
3
},
{
0xC
,
4
},
{
0xD
,
4
},
{
0x38
,
6
},
{
0x39
,
6
},
{
0x3A
,
6
},
{
0x3B
,
6
},
{
0xF0
,
8
},
{
0xF1
,
8
},
{
0xF2
,
8
},
{
0xF3
,
8
},
{
0xF4
,
8
},
{
0xF5
,
8
},
{
0xF6
,
8
},
{
0xF7
,
8
},
{
0x3E0
,
10
},
{
0x3E1
,
10
},
{
0x3E2
,
10
},
{
0x3E3
,
10
},
{
0x3E4
,
10
},
{
0x3E5
,
10
},
{
0x3E6
,
10
},
{
0x3E7
,
10
},
{
0x3E8
,
10
},
{
0x3E9
,
10
},
{
0x3EA
,
10
},
{
0x3EB
,
10
},
{
0x3EC
,
10
},
{
0x3ED
,
10
},
{
0x3EE
,
10
},
{
0x3EF
,
10
},
{
0x3F
,
6
}
/* this last VLC is a special case for reading 12 more
bits from stream and adding the value 34 */
};
static
const
uint16_t
fragment_run_length_vlc_table
[
30
][
2
]
=
{
/* 1 -> 2 */
{
0x0
,
2
},
{
0x1
,
2
},
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录