Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
小白菜888
Ffmpeg
提交
d6acefe0
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,发现更多精彩内容 >>
提交
d6acefe0
编写于
2月 27, 2014
作者:
D
Diego Biurrun
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
proresenc: Drop unnecessary DCT permutation bits
No permutation is necessary for the FDCT.
上级
b2365049
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
5 addition
and
11 deletion
+5
-11
libavcodec/proresdsp.c
libavcodec/proresdsp.c
+0
-3
libavcodec/proresdsp.h
libavcodec/proresdsp.h
+0
-2
libavcodec/proresenc.c
libavcodec/proresenc.c
+5
-6
未找到文件。
libavcodec/proresdsp.c
浏览文件 @
d6acefe0
...
@@ -86,8 +86,5 @@ av_cold void ff_proresdsp_init(ProresDSPContext *dsp)
...
@@ -86,8 +86,5 @@ av_cold void ff_proresdsp_init(ProresDSPContext *dsp)
#endif
#endif
#if CONFIG_PRORES_ENCODER
#if CONFIG_PRORES_ENCODER
dsp
->
fdct
=
prores_fdct_c
;
dsp
->
fdct
=
prores_fdct_c
;
dsp
->
dct_permutation_type
=
FF_NO_IDCT_PERM
;
ff_init_scantable_permutation
(
dsp
->
dct_permutation
,
dsp
->
dct_permutation_type
);
#endif
#endif
}
}
libavcodec/proresdsp.h
浏览文件 @
d6acefe0
...
@@ -30,8 +30,6 @@
...
@@ -30,8 +30,6 @@
typedef
struct
ProresDSPContext
{
typedef
struct
ProresDSPContext
{
int
idct_permutation_type
;
int
idct_permutation_type
;
uint8_t
idct_permutation
[
64
];
uint8_t
idct_permutation
[
64
];
int
dct_permutation_type
;
uint8_t
dct_permutation
[
64
];
void
(
*
idct_put
)
(
uint16_t
*
out
,
int
linesize
,
int16_t
*
block
,
const
int16_t
*
qmat
);
void
(
*
idct_put
)
(
uint16_t
*
out
,
int
linesize
,
int16_t
*
block
,
const
int16_t
*
qmat
);
void
(
*
fdct
)
(
const
uint16_t
*
src
,
int
linesize
,
int16_t
*
block
);
void
(
*
fdct
)
(
const
uint16_t
*
src
,
int
linesize
,
int16_t
*
block
);
}
ProresDSPContext
;
}
ProresDSPContext
;
...
...
libavcodec/proresenc.c
浏览文件 @
d6acefe0
...
@@ -190,9 +190,9 @@ typedef struct ProresContext {
...
@@ -190,9 +190,9 @@ typedef struct ProresContext {
int16_t
quants
[
MAX_STORED_Q
][
64
];
int16_t
quants
[
MAX_STORED_Q
][
64
];
int16_t
custom_q
[
64
];
int16_t
custom_q
[
64
];
const
uint8_t
*
quant_mat
;
const
uint8_t
*
quant_mat
;
const
uint8_t
*
scantable
;
ProresDSPContext
dsp
;
ProresDSPContext
dsp
;
ScanTable
scantable
;
int
mb_width
,
mb_height
;
int
mb_width
,
mb_height
;
int
mbs_per_slice
;
int
mbs_per_slice
;
...
@@ -426,7 +426,7 @@ static int encode_slice_plane(ProresContext *ctx, PutBitContext *pb,
...
@@ -426,7 +426,7 @@ static int encode_slice_plane(ProresContext *ctx, PutBitContext *pb,
encode_dcs
(
pb
,
blocks
,
blocks_per_slice
,
qmat
[
0
]);
encode_dcs
(
pb
,
blocks
,
blocks_per_slice
,
qmat
[
0
]);
encode_acs
(
pb
,
blocks
,
blocks_per_slice
,
plane_size_factor
,
encode_acs
(
pb
,
blocks
,
blocks_per_slice
,
plane_size_factor
,
ctx
->
scantable
.
permutated
,
qmat
);
ctx
->
scantable
,
qmat
);
flush_put_bits
(
pb
);
flush_put_bits
(
pb
);
return
(
put_bits_count
(
pb
)
-
saved_pos
)
>>
3
;
return
(
put_bits_count
(
pb
)
-
saved_pos
)
>>
3
;
...
@@ -673,7 +673,7 @@ static int estimate_slice_plane(ProresContext *ctx, int *error, int plane,
...
@@ -673,7 +673,7 @@ static int estimate_slice_plane(ProresContext *ctx, int *error, int plane,
bits
=
estimate_dcs
(
error
,
td
->
blocks
[
plane
],
blocks_per_slice
,
qmat
[
0
]);
bits
=
estimate_dcs
(
error
,
td
->
blocks
[
plane
],
blocks_per_slice
,
qmat
[
0
]);
bits
+=
estimate_acs
(
error
,
td
->
blocks
[
plane
],
blocks_per_slice
,
bits
+=
estimate_acs
(
error
,
td
->
blocks
[
plane
],
blocks_per_slice
,
plane_size_factor
,
ctx
->
scantable
.
permutated
,
qmat
);
plane_size_factor
,
ctx
->
scantable
,
qmat
);
return
FFALIGN
(
bits
,
8
);
return
FFALIGN
(
bits
,
8
);
}
}
...
@@ -1080,9 +1080,8 @@ static av_cold int encode_init(AVCodecContext *avctx)
...
@@ -1080,9 +1080,8 @@ static av_cold int encode_init(AVCodecContext *avctx)
return
AVERROR
(
ENOMEM
);
return
AVERROR
(
ENOMEM
);
ff_proresdsp_init
(
&
ctx
->
dsp
);
ff_proresdsp_init
(
&
ctx
->
dsp
);
ff_init_scantable
(
ctx
->
dsp
.
dct_permutation
,
&
ctx
->
scantable
,
ctx
->
scantable
=
interlaced
?
ff_prores_interlaced_scan
interlaced
?
ff_prores_interlaced_scan
:
ff_prores_progressive_scan
;
:
ff_prores_progressive_scan
);
mps
=
ctx
->
mbs_per_slice
;
mps
=
ctx
->
mbs_per_slice
;
if
(
mps
&
(
mps
-
1
))
{
if
(
mps
&
(
mps
-
1
))
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录