Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
小白菜888
Ffmpeg
提交
cef99e12
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,发现更多精彩内容 >>
提交
cef99e12
编写于
4月 07, 2014
作者:
M
Matt Oliver
提交者:
Michael Niedermayer
5月 13, 2014
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Use rac_get_prob branchy version when used within a conditional branch.
Signed-off-by:
N
Michael Niedermayer
<
michaelni@gmx.at
>
上级
f1c16749
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
34 addition
and
34 deletion
+34
-34
libavcodec/vp5.c
libavcodec/vp5.c
+13
-13
libavcodec/vp56.c
libavcodec/vp56.c
+4
-4
libavcodec/vp56.h
libavcodec/vp56.h
+1
-1
libavcodec/vp6.c
libavcodec/vp6.c
+15
-15
libavcodec/vp8.c
libavcodec/vp8.c
+1
-1
未找到文件。
libavcodec/vp5.c
浏览文件 @
cef99e12
...
...
@@ -85,7 +85,7 @@ static void vp5_parse_vector_adjustment(VP56Context *s, VP56mv *vect)
for
(
comp
=
0
;
comp
<
2
;
comp
++
)
{
int
delta
=
0
;
if
(
vp56_rac_get_prob
(
c
,
model
->
vector_dct
[
comp
]))
{
if
(
vp56_rac_get_prob
_branchy
(
c
,
model
->
vector_dct
[
comp
]))
{
int
sign
=
vp56_rac_get_prob
(
c
,
model
->
vector_sig
[
comp
]);
di
=
vp56_rac_get_prob
(
c
,
model
->
vector_pdi
[
comp
][
0
]);
di
|=
vp56_rac_get_prob
(
c
,
model
->
vector_pdi
[
comp
][
1
])
<<
1
;
...
...
@@ -108,19 +108,19 @@ static void vp5_parse_vector_models(VP56Context *s)
int
comp
,
node
;
for
(
comp
=
0
;
comp
<
2
;
comp
++
)
{
if
(
vp56_rac_get_prob
(
c
,
vp5_vmc_pct
[
comp
][
0
]))
if
(
vp56_rac_get_prob
_branchy
(
c
,
vp5_vmc_pct
[
comp
][
0
]))
model
->
vector_dct
[
comp
]
=
vp56_rac_gets_nn
(
c
,
7
);
if
(
vp56_rac_get_prob
(
c
,
vp5_vmc_pct
[
comp
][
1
]))
if
(
vp56_rac_get_prob
_branchy
(
c
,
vp5_vmc_pct
[
comp
][
1
]))
model
->
vector_sig
[
comp
]
=
vp56_rac_gets_nn
(
c
,
7
);
if
(
vp56_rac_get_prob
(
c
,
vp5_vmc_pct
[
comp
][
2
]))
if
(
vp56_rac_get_prob
_branchy
(
c
,
vp5_vmc_pct
[
comp
][
2
]))
model
->
vector_pdi
[
comp
][
0
]
=
vp56_rac_gets_nn
(
c
,
7
);
if
(
vp56_rac_get_prob
(
c
,
vp5_vmc_pct
[
comp
][
3
]))
if
(
vp56_rac_get_prob
_branchy
(
c
,
vp5_vmc_pct
[
comp
][
3
]))
model
->
vector_pdi
[
comp
][
1
]
=
vp56_rac_gets_nn
(
c
,
7
);
}
for
(
comp
=
0
;
comp
<
2
;
comp
++
)
for
(
node
=
0
;
node
<
7
;
node
++
)
if
(
vp56_rac_get_prob
(
c
,
vp5_vmc_pct
[
comp
][
4
+
node
]))
if
(
vp56_rac_get_prob
_branchy
(
c
,
vp5_vmc_pct
[
comp
][
4
+
node
]))
model
->
vector_pdv
[
comp
][
node
]
=
vp56_rac_gets_nn
(
c
,
7
);
}
...
...
@@ -137,7 +137,7 @@ static int vp5_parse_coeff_models(VP56Context *s)
for
(
pt
=
0
;
pt
<
2
;
pt
++
)
for
(
node
=
0
;
node
<
11
;
node
++
)
if
(
vp56_rac_get_prob
(
c
,
vp5_dccv_pct
[
pt
][
node
]))
{
if
(
vp56_rac_get_prob
_branchy
(
c
,
vp5_dccv_pct
[
pt
][
node
]))
{
def_prob
[
node
]
=
vp56_rac_gets_nn
(
c
,
7
);
model
->
coeff_dccv
[
pt
][
node
]
=
def_prob
[
node
];
}
else
if
(
s
->
frames
[
VP56_FRAME_CURRENT
]
->
key_frame
)
{
...
...
@@ -148,7 +148,7 @@ static int vp5_parse_coeff_models(VP56Context *s)
for
(
pt
=
0
;
pt
<
2
;
pt
++
)
for
(
cg
=
0
;
cg
<
6
;
cg
++
)
for
(
node
=
0
;
node
<
11
;
node
++
)
if
(
vp56_rac_get_prob
(
c
,
vp5_ract_pct
[
ct
][
pt
][
cg
][
node
]))
{
if
(
vp56_rac_get_prob
_branchy
(
c
,
vp5_ract_pct
[
ct
][
pt
][
cg
][
node
]))
{
def_prob
[
node
]
=
vp56_rac_gets_nn
(
c
,
7
);
model
->
coeff_ract
[
pt
][
ct
][
cg
][
node
]
=
def_prob
[
node
];
}
else
if
(
s
->
frames
[
VP56_FRAME_CURRENT
]
->
key_frame
)
{
...
...
@@ -193,9 +193,9 @@ static void vp5_parse_coeff(VP56Context *s)
coeff_idx
=
0
;
for
(;;)
{
if
(
vp56_rac_get_prob
(
c
,
model2
[
0
]))
{
if
(
vp56_rac_get_prob
(
c
,
model2
[
2
]))
{
if
(
vp56_rac_get_prob
(
c
,
model2
[
3
]))
{
if
(
vp56_rac_get_prob
_branchy
(
c
,
model2
[
0
]))
{
if
(
vp56_rac_get_prob
_branchy
(
c
,
model2
[
2
]))
{
if
(
vp56_rac_get_prob
_branchy
(
c
,
model2
[
3
]))
{
s
->
coeff_ctx
[
ff_vp56_b6to4
[
b
]][
coeff_idx
]
=
4
;
idx
=
vp56_rac_get_tree
(
c
,
ff_vp56_pc_tree
,
model1
);
sign
=
vp56_rac_get
(
c
);
...
...
@@ -203,7 +203,7 @@ static void vp5_parse_coeff(VP56Context *s)
for
(
i
=
ff_vp56_coeff_bit_length
[
idx
];
i
>=
0
;
i
--
)
coeff
+=
vp56_rac_get_prob
(
c
,
ff_vp56_coeff_parse_table
[
idx
][
i
])
<<
i
;
}
else
{
if
(
vp56_rac_get_prob
(
c
,
model2
[
4
]))
{
if
(
vp56_rac_get_prob
_branchy
(
c
,
model2
[
4
]))
{
coeff
=
3
+
vp56_rac_get_prob
(
c
,
model1
[
5
]);
s
->
coeff_ctx
[
ff_vp56_b6to4
[
b
]][
coeff_idx
]
=
3
;
}
else
{
...
...
@@ -224,7 +224,7 @@ static void vp5_parse_coeff(VP56Context *s)
coeff
*=
s
->
dequant_ac
;
s
->
block_coeff
[
b
][
permute
[
coeff_idx
]]
=
coeff
;
}
else
{
if
(
ct
&&
!
vp56_rac_get_prob
(
c
,
model2
[
1
]))
if
(
ct
&&
!
vp56_rac_get_prob
_branchy
(
c
,
model2
[
1
]))
break
;
ct
=
0
;
s
->
coeff_ctx
[
ff_vp56_b6to4
[
b
]][
coeff_idx
]
=
0
;
...
...
libavcodec/vp56.c
浏览文件 @
cef99e12
...
...
@@ -83,16 +83,16 @@ static void vp56_parse_mb_type_models(VP56Context *s)
int
i
,
ctx
,
type
;
for
(
ctx
=
0
;
ctx
<
3
;
ctx
++
)
{
if
(
vp56_rac_get_prob
(
c
,
174
))
{
if
(
vp56_rac_get_prob
_branchy
(
c
,
174
))
{
int
idx
=
vp56_rac_gets
(
c
,
4
);
memcpy
(
model
->
mb_types_stats
[
ctx
],
ff_vp56_pre_def_mb_type_stats
[
idx
][
ctx
],
sizeof
(
model
->
mb_types_stats
[
ctx
]));
}
if
(
vp56_rac_get_prob
(
c
,
254
))
{
if
(
vp56_rac_get_prob
_branchy
(
c
,
254
))
{
for
(
type
=
0
;
type
<
10
;
type
++
)
{
for
(
i
=
0
;
i
<
2
;
i
++
)
{
if
(
vp56_rac_get_prob
(
c
,
205
))
{
if
(
vp56_rac_get_prob
_branchy
(
c
,
205
))
{
int
delta
,
sign
=
vp56_rac_get
(
c
);
delta
=
vp56_rac_get_tree
(
c
,
ff_vp56_pmbtm_tree
,
...
...
@@ -153,7 +153,7 @@ static VP56mb vp56_parse_mb_type(VP56Context *s,
uint8_t
*
mb_type_model
=
s
->
modelp
->
mb_type
[
ctx
][
prev_type
];
VP56RangeCoder
*
c
=
&
s
->
c
;
if
(
vp56_rac_get_prob
(
c
,
mb_type_model
[
0
]))
if
(
vp56_rac_get_prob
_branchy
(
c
,
mb_type_model
[
0
]))
return
prev_type
;
else
return
vp56_rac_get_tree
(
c
,
ff_vp56_pmbt_tree
,
mb_type_model
);
...
...
libavcodec/vp56.h
浏览文件 @
cef99e12
...
...
@@ -363,7 +363,7 @@ int vp56_rac_get_tree(VP56RangeCoder *c,
const
uint8_t
*
probs
)
{
while
(
tree
->
val
>
0
)
{
if
(
vp56_rac_get_prob
(
c
,
probs
[
tree
->
prob_idx
]))
if
(
vp56_rac_get_prob
_branchy
(
c
,
probs
[
tree
->
prob_idx
]))
tree
+=
tree
->
val
;
else
tree
++
;
...
...
libavcodec/vp6.c
浏览文件 @
cef99e12
...
...
@@ -211,20 +211,20 @@ static void vp6_parse_vector_models(VP56Context *s)
int
comp
,
node
;
for
(
comp
=
0
;
comp
<
2
;
comp
++
)
{
if
(
vp56_rac_get_prob
(
c
,
vp6_sig_dct_pct
[
comp
][
0
]))
if
(
vp56_rac_get_prob
_branchy
(
c
,
vp6_sig_dct_pct
[
comp
][
0
]))
model
->
vector_dct
[
comp
]
=
vp56_rac_gets_nn
(
c
,
7
);
if
(
vp56_rac_get_prob
(
c
,
vp6_sig_dct_pct
[
comp
][
1
]))
if
(
vp56_rac_get_prob
_branchy
(
c
,
vp6_sig_dct_pct
[
comp
][
1
]))
model
->
vector_sig
[
comp
]
=
vp56_rac_gets_nn
(
c
,
7
);
}
for
(
comp
=
0
;
comp
<
2
;
comp
++
)
for
(
node
=
0
;
node
<
7
;
node
++
)
if
(
vp56_rac_get_prob
(
c
,
vp6_pdv_pct
[
comp
][
node
]))
if
(
vp56_rac_get_prob
_branchy
(
c
,
vp6_pdv_pct
[
comp
][
node
]))
model
->
vector_pdv
[
comp
][
node
]
=
vp56_rac_gets_nn
(
c
,
7
);
for
(
comp
=
0
;
comp
<
2
;
comp
++
)
for
(
node
=
0
;
node
<
8
;
node
++
)
if
(
vp56_rac_get_prob
(
c
,
vp6_fdv_pct
[
comp
][
node
]))
if
(
vp56_rac_get_prob
_branchy
(
c
,
vp6_fdv_pct
[
comp
][
node
]))
model
->
vector_fdv
[
comp
][
node
]
=
vp56_rac_gets_nn
(
c
,
7
);
}
...
...
@@ -270,7 +270,7 @@ static int vp6_parse_coeff_models(VP56Context *s)
for
(
pt
=
0
;
pt
<
2
;
pt
++
)
for
(
node
=
0
;
node
<
11
;
node
++
)
if
(
vp56_rac_get_prob
(
c
,
vp6_dccv_pct
[
pt
][
node
]))
{
if
(
vp56_rac_get_prob
_branchy
(
c
,
vp6_dccv_pct
[
pt
][
node
]))
{
def_prob
[
node
]
=
vp56_rac_gets_nn
(
c
,
7
);
model
->
coeff_dccv
[
pt
][
node
]
=
def_prob
[
node
];
}
else
if
(
s
->
frames
[
VP56_FRAME_CURRENT
]
->
key_frame
)
{
...
...
@@ -279,21 +279,21 @@ static int vp6_parse_coeff_models(VP56Context *s)
if
(
vp56_rac_get
(
c
))
{
for
(
pos
=
1
;
pos
<
64
;
pos
++
)
if
(
vp56_rac_get_prob
(
c
,
vp6_coeff_reorder_pct
[
pos
]))
if
(
vp56_rac_get_prob
_branchy
(
c
,
vp6_coeff_reorder_pct
[
pos
]))
model
->
coeff_reorder
[
pos
]
=
vp56_rac_gets
(
c
,
4
);
vp6_coeff_order_table_init
(
s
);
}
for
(
cg
=
0
;
cg
<
2
;
cg
++
)
for
(
node
=
0
;
node
<
14
;
node
++
)
if
(
vp56_rac_get_prob
(
c
,
vp6_runv_pct
[
cg
][
node
]))
if
(
vp56_rac_get_prob
_branchy
(
c
,
vp6_runv_pct
[
cg
][
node
]))
model
->
coeff_runv
[
cg
][
node
]
=
vp56_rac_gets_nn
(
c
,
7
);
for
(
ct
=
0
;
ct
<
3
;
ct
++
)
for
(
pt
=
0
;
pt
<
2
;
pt
++
)
for
(
cg
=
0
;
cg
<
6
;
cg
++
)
for
(
node
=
0
;
node
<
11
;
node
++
)
if
(
vp56_rac_get_prob
(
c
,
vp6_ract_pct
[
ct
][
pt
][
cg
][
node
]))
{
if
(
vp56_rac_get_prob
_branchy
(
c
,
vp6_ract_pct
[
ct
][
pt
][
cg
][
node
]))
{
def_prob
[
node
]
=
vp56_rac_gets_nn
(
c
,
7
);
model
->
coeff_ract
[
pt
][
ct
][
cg
][
node
]
=
def_prob
[
node
];
}
else
if
(
s
->
frames
[
VP56_FRAME_CURRENT
]
->
key_frame
)
{
...
...
@@ -339,7 +339,7 @@ static void vp6_parse_vector_adjustment(VP56Context *s, VP56mv *vect)
for
(
comp
=
0
;
comp
<
2
;
comp
++
)
{
int
i
,
delta
=
0
;
if
(
vp56_rac_get_prob
(
c
,
model
->
vector_dct
[
comp
]))
{
if
(
vp56_rac_get_prob
_branchy
(
c
,
model
->
vector_dct
[
comp
]))
{
static
const
uint8_t
prob_order
[]
=
{
0
,
1
,
2
,
7
,
6
,
5
,
4
};
for
(
i
=
0
;
i
<
sizeof
(
prob_order
);
i
++
)
{
int
j
=
prob_order
[
i
];
...
...
@@ -354,7 +354,7 @@ static void vp6_parse_vector_adjustment(VP56Context *s, VP56mv *vect)
model
->
vector_pdv
[
comp
]);
}
if
(
delta
&&
vp56_rac_get_prob
(
c
,
model
->
vector_sig
[
comp
]))
if
(
delta
&&
vp56_rac_get_prob
_branchy
(
c
,
model
->
vector_sig
[
comp
]))
delta
=
-
delta
;
if
(
!
comp
)
...
...
@@ -462,16 +462,16 @@ static void vp6_parse_coeff(VP56Context *s)
coeff_idx
=
0
;
for
(;;)
{
if
((
coeff_idx
>
1
&&
ct
==
0
)
||
vp56_rac_get_prob
(
c
,
model2
[
0
]))
{
if
((
coeff_idx
>
1
&&
ct
==
0
)
||
vp56_rac_get_prob
_branchy
(
c
,
model2
[
0
]))
{
/* parse a coeff */
if
(
vp56_rac_get_prob
(
c
,
model2
[
2
]))
{
if
(
vp56_rac_get_prob
(
c
,
model2
[
3
]))
{
if
(
vp56_rac_get_prob
_branchy
(
c
,
model2
[
2
]))
{
if
(
vp56_rac_get_prob
_branchy
(
c
,
model2
[
3
]))
{
idx
=
vp56_rac_get_tree
(
c
,
ff_vp56_pc_tree
,
model1
);
coeff
=
ff_vp56_coeff_bias
[
idx
+
5
];
for
(
i
=
ff_vp56_coeff_bit_length
[
idx
];
i
>=
0
;
i
--
)
coeff
+=
vp56_rac_get_prob
(
c
,
ff_vp56_coeff_parse_table
[
idx
][
i
])
<<
i
;
}
else
{
if
(
vp56_rac_get_prob
(
c
,
model2
[
4
]))
if
(
vp56_rac_get_prob
_branchy
(
c
,
model2
[
4
]))
coeff
=
3
+
vp56_rac_get_prob
(
c
,
model1
[
5
]);
else
coeff
=
2
;
...
...
@@ -492,7 +492,7 @@ static void vp6_parse_coeff(VP56Context *s)
/* parse a run */
ct
=
0
;
if
(
coeff_idx
>
0
)
{
if
(
!
vp56_rac_get_prob
(
c
,
model2
[
1
]))
if
(
!
vp56_rac_get_prob
_branchy
(
c
,
model2
[
1
]))
break
;
model3
=
model
->
coeff_runv
[
coeff_idx
>=
6
];
...
...
libavcodec/vp8.c
浏览文件 @
cef99e12
...
...
@@ -1153,7 +1153,7 @@ void decode_mb_mode(VP8Context *s, VP8Macroblock *mb, int mb_x, int mb_y,
*
segment
=
0
;
for
(
i
=
0
;
i
<
4
;
i
++
)
{
if
(
s
->
feature_enabled
[
i
])
{
if
(
vp56_rac_get_prob
(
c
,
s
->
feature_present_prob
[
i
]))
{
if
(
vp56_rac_get_prob
_branchy
(
c
,
s
->
feature_present_prob
[
i
]))
{
int
index
=
vp8_rac_get_tree
(
c
,
vp7_feature_index_tree
,
s
->
feature_index_prob
[
i
]);
av_log
(
s
->
avctx
,
AV_LOG_WARNING
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录