Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
小白菜888
Ffmpeg
提交
b54bf2d6
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,发现更多精彩内容 >>
提交
b54bf2d6
编写于
8月 18, 2008
作者:
K
Kostya Shishkov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add okayed parts for AAC encoder
Originally committed as revision 14821 to
svn://svn.ffmpeg.org/ffmpeg/trunk
上级
ca048266
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
14 addition
and
4 deletion
+14
-4
libavcodec/aacenc.c
libavcodec/aacenc.c
+14
-4
未找到文件。
libavcodec/aacenc.c
浏览文件 @
b54bf2d6
...
...
@@ -162,6 +162,12 @@ typedef struct {
MDCTContext
mdct1024
;
///< long (1024 samples) frame transform context
MDCTContext
mdct128
;
///< short (128 samples) frame transform context
DSPContext
dsp
;
DECLARE_ALIGNED_16
(
FFTSample
,
output
[
2048
]);
///< temporary buffer for MDCT input coefficients
int16_t
*
samples
;
///< saved preprocessed input
int
samplerate_index
;
///< MPEG-4 samplerate index
ChannelElement
*
cpe
;
///< channel elements
AACPsyContext
psy
;
///< psychoacoustic model context
int
last_frame
;
}
AACEncContext
;
...
...
@@ -221,7 +227,9 @@ static av_cold int aac_encode_init(AVCodecContext *avctx)
s
->
samples
=
av_malloc
(
2
*
1024
*
avctx
->
channels
*
sizeof
(
s
->
samples
[
0
]));
s
->
cpe
=
av_mallocz
(
sizeof
(
ChannelElement
)
*
aac_chan_configs
[
avctx
->
channels
-
1
][
0
]);
if
(
ff_aac_psy_init
(
&
s
->
psy
,
avctx
,
AAC_PSY_3GPP
,
aac_chan_configs
[
avctx
->
channels
-
1
][
0
],
0
,
s
->
swb_sizes1024
,
s
->
swb_num1024
,
s
->
swb_sizes128
,
s
->
swb_num128
)
<
0
){
if
(
ff_aac_psy_init
(
&
s
->
psy
,
avctx
,
AAC_PSY_3GPP
,
aac_chan_configs
[
avctx
->
channels
-
1
][
0
],
0
,
s
->
swb_sizes1024
,
s
->
swb_num1024
,
s
->
swb_sizes128
,
s
->
swb_num128
)
<
0
){
av_log
(
avctx
,
AV_LOG_ERROR
,
"Cannot initialize selected model.
\n
"
);
return
-
1
;
}
...
...
@@ -256,7 +264,7 @@ static void put_ics_info(AVCodecContext *avctx, IndividualChannelStream *info)
/**
* Encode pulse data.
*/
static
void
encode_pulses
(
A
VCodecContext
*
avctx
,
A
ACEncContext
*
s
,
Pulse
*
pulse
,
int
channel
)
static
void
encode_pulses
(
AACEncContext
*
s
,
Pulse
*
pulse
,
int
channel
)
{
int
i
;
...
...
@@ -274,7 +282,7 @@ static void encode_pulses(AVCodecContext *avctx, AACEncContext *s, Pulse *pulse,
/**
* Encode spectral coefficients processed by psychoacoustic model.
*/
static
void
encode_spectral_coeffs
(
A
VCodecContext
*
avctx
,
A
ACEncContext
*
s
,
ChannelElement
*
cpe
,
int
channel
)
static
void
encode_spectral_coeffs
(
AACEncContext
*
s
,
ChannelElement
*
cpe
,
int
channel
)
{
int
start
,
i
,
w
,
w2
,
wg
;
...
...
@@ -287,7 +295,9 @@ static void encode_spectral_coeffs(AVCodecContext *avctx, AACEncContext *s, Chan
continue
;
}
for
(
w2
=
w
;
w2
<
w
+
cpe
->
ch
[
channel
].
ics
.
group_len
[
wg
];
w2
++
){
encode_band_coeffs
(
s
,
cpe
,
channel
,
start
+
w2
*
128
,
cpe
->
ch
[
channel
].
ics
.
swb_sizes
[
i
],
cpe
->
ch
[
channel
].
band_type
[
w
*
16
+
i
]);
encode_band_coeffs
(
s
,
cpe
,
channel
,
start
+
w2
*
128
,
cpe
->
ch
[
channel
].
ics
.
swb_sizes
[
i
],
cpe
->
ch
[
channel
].
band_type
[
w
*
16
+
i
]);
}
start
+=
cpe
->
ch
[
channel
].
ics
.
swb_sizes
[
i
];
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录