Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
小白菜888
Ffmpeg
提交
dd8871a6
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,发现更多精彩内容 >>
提交
dd8871a6
编写于
6月 05, 2010
作者:
A
Alex Converse
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
aacdec: Rename avccontext to avctx.
Originally committed as revision 23488 to
svn://svn.ffmpeg.org/ffmpeg/trunk
上级
4cd5100c
变更
3
展开全部
隐藏空白更改
内联
并排
Showing
3 changed file
with
86 addition
and
86 deletion
+86
-86
libavcodec/aac.c
libavcodec/aac.c
+58
-58
libavcodec/aac.h
libavcodec/aac.h
+1
-1
libavcodec/aacsbr.c
libavcodec/aacsbr.c
+27
-27
未找到文件。
libavcodec/aac.c
浏览文件 @
dd8871a6
此差异已折叠。
点击以展开。
libavcodec/aac.h
浏览文件 @
dd8871a6
...
...
@@ -241,7 +241,7 @@ typedef struct {
* main AAC context
*/
typedef
struct
{
AVCodecContext
*
avc
context
;
AVCodecContext
*
avc
tx
;
MPEG4AudioConfig
m4ac
;
...
...
libavcodec/aacsbr.c
浏览文件 @
dd8871a6
...
...
@@ -293,15 +293,15 @@ static void make_bands(int16_t* bands, int start, int stop, int num_bands)
bands
[
num_bands
-
1
]
=
stop
-
previous
;
}
static
int
check_n_master
(
AVCodecContext
*
avc
context
,
int
n_master
,
int
bs_xover_band
)
static
int
check_n_master
(
AVCodecContext
*
avc
tx
,
int
n_master
,
int
bs_xover_band
)
{
// Requirements (14496-3 sp04 p205)
if
(
n_master
<=
0
)
{
av_log
(
avc
context
,
AV_LOG_ERROR
,
"Invalid n_master: %d
\n
"
,
n_master
);
av_log
(
avc
tx
,
AV_LOG_ERROR
,
"Invalid n_master: %d
\n
"
,
n_master
);
return
-
1
;
}
if
(
bs_xover_band
>=
n_master
)
{
av_log
(
avc
context
,
AV_LOG_ERROR
,
av_log
(
avc
tx
,
AV_LOG_ERROR
,
"Invalid bitstream, crossover band index beyond array bounds: %d
\n
"
,
bs_xover_band
);
return
-
1
;
...
...
@@ -349,7 +349,7 @@ static int sbr_make_f_master(AACContext *ac, SpectralBandReplication *sbr,
sbr_offset_ptr
=
sbr_offset
[
5
];
break
;
default:
av_log
(
ac
->
avc
context
,
AV_LOG_ERROR
,
av_log
(
ac
->
avc
tx
,
AV_LOG_ERROR
,
"Unsupported sample rate for SBR: %d
\n
"
,
sbr
->
sample_rate
);
return
-
1
;
}
...
...
@@ -367,7 +367,7 @@ static int sbr_make_f_master(AACContext *ac, SpectralBandReplication *sbr,
}
else
if
(
spectrum
->
bs_stop_freq
==
15
)
{
sbr
->
k
[
2
]
=
3
*
sbr
->
k
[
0
];
}
else
{
av_log
(
ac
->
avc
context
,
AV_LOG_ERROR
,
av_log
(
ac
->
avc
tx
,
AV_LOG_ERROR
,
"Invalid bs_stop_freq: %d
\n
"
,
spectrum
->
bs_stop_freq
);
return
-
1
;
}
...
...
@@ -382,7 +382,7 @@ static int sbr_make_f_master(AACContext *ac, SpectralBandReplication *sbr,
max_qmf_subbands
=
32
;
if
(
sbr
->
k
[
2
]
-
sbr
->
k
[
0
]
>
max_qmf_subbands
)
{
av_log
(
ac
->
avc
context
,
AV_LOG_ERROR
,
av_log
(
ac
->
avc
tx
,
AV_LOG_ERROR
,
"Invalid bitstream, too many QMF subbands: %d
\n
"
,
sbr
->
k
[
2
]
-
sbr
->
k
[
0
]);
return
-
1
;
}
...
...
@@ -393,7 +393,7 @@ static int sbr_make_f_master(AACContext *ac, SpectralBandReplication *sbr,
dk
=
spectrum
->
bs_alter_scale
+
1
;
sbr
->
n_master
=
((
sbr
->
k
[
2
]
-
sbr
->
k
[
0
]
+
(
dk
&
2
))
>>
dk
)
<<
1
;
if
(
check_n_master
(
ac
->
avc
context
,
sbr
->
n_master
,
sbr
->
spectrum_params
.
bs_xover_band
))
if
(
check_n_master
(
ac
->
avc
tx
,
sbr
->
n_master
,
sbr
->
spectrum_params
.
bs_xover_band
))
return
-
1
;
for
(
k
=
1
;
k
<=
sbr
->
n_master
;
k
++
)
...
...
@@ -428,7 +428,7 @@ static int sbr_make_f_master(AACContext *ac, SpectralBandReplication *sbr,
num_bands_0
=
lrintf
(
half_bands
*
log2f
(
sbr
->
k
[
1
]
/
(
float
)
sbr
->
k
[
0
]))
*
2
;
if
(
num_bands_0
<=
0
)
{
// Requirements (14496-3 sp04 p205)
av_log
(
ac
->
avc
context
,
AV_LOG_ERROR
,
"Invalid num_bands_0: %d
\n
"
,
num_bands_0
);
av_log
(
ac
->
avc
tx
,
AV_LOG_ERROR
,
"Invalid num_bands_0: %d
\n
"
,
num_bands_0
);
return
-
1
;
}
...
...
@@ -442,7 +442,7 @@ static int sbr_make_f_master(AACContext *ac, SpectralBandReplication *sbr,
vk0
[
0
]
=
sbr
->
k
[
0
];
for
(
k
=
1
;
k
<=
num_bands_0
;
k
++
)
{
if
(
vk0
[
k
]
<=
0
)
{
// Requirements (14496-3 sp04 p205)
av_log
(
ac
->
avc
context
,
AV_LOG_ERROR
,
"Invalid vDk0[%d]: %d
\n
"
,
k
,
vk0
[
k
]);
av_log
(
ac
->
avc
tx
,
AV_LOG_ERROR
,
"Invalid vDk0[%d]: %d
\n
"
,
k
,
vk0
[
k
]);
return
-
1
;
}
vk0
[
k
]
+=
vk0
[
k
-
1
];
...
...
@@ -472,14 +472,14 @@ static int sbr_make_f_master(AACContext *ac, SpectralBandReplication *sbr,
vk1
[
0
]
=
sbr
->
k
[
1
];
for
(
k
=
1
;
k
<=
num_bands_1
;
k
++
)
{
if
(
vk1
[
k
]
<=
0
)
{
// Requirements (14496-3 sp04 p205)
av_log
(
ac
->
avc
context
,
AV_LOG_ERROR
,
"Invalid vDk1[%d]: %d
\n
"
,
k
,
vk1
[
k
]);
av_log
(
ac
->
avc
tx
,
AV_LOG_ERROR
,
"Invalid vDk1[%d]: %d
\n
"
,
k
,
vk1
[
k
]);
return
-
1
;
}
vk1
[
k
]
+=
vk1
[
k
-
1
];
}
sbr
->
n_master
=
num_bands_0
+
num_bands_1
;
if
(
check_n_master
(
ac
->
avc
context
,
sbr
->
n_master
,
sbr
->
spectrum_params
.
bs_xover_band
))
if
(
check_n_master
(
ac
->
avc
tx
,
sbr
->
n_master
,
sbr
->
spectrum_params
.
bs_xover_band
))
return
-
1
;
memcpy
(
&
sbr
->
f_master
[
0
],
vk0
,
(
num_bands_0
+
1
)
*
sizeof
(
sbr
->
f_master
[
0
]));
...
...
@@ -488,7 +488,7 @@ static int sbr_make_f_master(AACContext *ac, SpectralBandReplication *sbr,
}
else
{
sbr
->
n_master
=
num_bands_0
;
if
(
check_n_master
(
ac
->
avc
context
,
sbr
->
n_master
,
sbr
->
spectrum_params
.
bs_xover_band
))
if
(
check_n_master
(
ac
->
avc
tx
,
sbr
->
n_master
,
sbr
->
spectrum_params
.
bs_xover_band
))
return
-
1
;
memcpy
(
sbr
->
f_master
,
vk0
,
(
num_bands_0
+
1
)
*
sizeof
(
sbr
->
f_master
[
0
]));
}
...
...
@@ -524,7 +524,7 @@ static int sbr_hf_calc_npatches(AACContext *ac, SpectralBandReplication *sbr)
// illegal however the Coding Technologies decoder check stream has a final
// count of 6 patches
if
(
sbr
->
num_patches
>
5
)
{
av_log
(
ac
->
avc
context
,
AV_LOG_ERROR
,
"Too many patches: %d
\n
"
,
sbr
->
num_patches
);
av_log
(
ac
->
avc
tx
,
AV_LOG_ERROR
,
"Too many patches: %d
\n
"
,
sbr
->
num_patches
);
return
-
1
;
}
...
...
@@ -563,12 +563,12 @@ static int sbr_make_f_derived(AACContext *ac, SpectralBandReplication *sbr)
// Requirements (14496-3 sp04 p205)
if
(
sbr
->
kx
[
1
]
+
sbr
->
m
[
1
]
>
64
)
{
av_log
(
ac
->
avc
context
,
AV_LOG_ERROR
,
av_log
(
ac
->
avc
tx
,
AV_LOG_ERROR
,
"Stop frequency border too high: %d
\n
"
,
sbr
->
kx
[
1
]
+
sbr
->
m
[
1
]);
return
-
1
;
}
if
(
sbr
->
kx
[
1
]
>
32
)
{
av_log
(
ac
->
avc
context
,
AV_LOG_ERROR
,
"Start frequency border too high: %d
\n
"
,
sbr
->
kx
[
1
]);
av_log
(
ac
->
avc
tx
,
AV_LOG_ERROR
,
"Start frequency border too high: %d
\n
"
,
sbr
->
kx
[
1
]);
return
-
1
;
}
...
...
@@ -580,7 +580,7 @@ static int sbr_make_f_derived(AACContext *ac, SpectralBandReplication *sbr)
sbr
->
n_q
=
FFMAX
(
1
,
lrintf
(
sbr
->
spectrum_params
.
bs_noise_bands
*
log2f
(
sbr
->
k
[
2
]
/
(
float
)
sbr
->
kx
[
1
])));
// 0 <= bs_noise_bands <= 3
if
(
sbr
->
n_q
>
5
)
{
av_log
(
ac
->
avc
context
,
AV_LOG_ERROR
,
"Too many noise floor scale factors: %d
\n
"
,
sbr
->
n_q
);
av_log
(
ac
->
avc
tx
,
AV_LOG_ERROR
,
"Too many noise floor scale factors: %d
\n
"
,
sbr
->
n_q
);
return
-
1
;
}
...
...
@@ -638,7 +638,7 @@ static int read_sbr_grid(AACContext *ac, SpectralBandReplication *sbr,
ch_data
->
bs_amp_res
=
0
;
if
(
ch_data
->
bs_num_env
>
4
)
{
av_log
(
ac
->
avc
context
,
AV_LOG_ERROR
,
av_log
(
ac
->
avc
tx
,
AV_LOG_ERROR
,
"Invalid bitstream, too many SBR envelopes in FIXFIX type SBR frame: %d
\n
"
,
ch_data
->
bs_num_env
);
return
-
1
;
...
...
@@ -693,7 +693,7 @@ static int read_sbr_grid(AACContext *ac, SpectralBandReplication *sbr,
ch_data
->
bs_num_env
=
num_rel_lead
+
num_rel_trail
+
1
;
if
(
ch_data
->
bs_num_env
>
5
)
{
av_log
(
ac
->
avc
context
,
AV_LOG_ERROR
,
av_log
(
ac
->
avc
tx
,
AV_LOG_ERROR
,
"Invalid bitstream, too many SBR envelopes in VARVAR type SBR frame: %d
\n
"
,
ch_data
->
bs_num_env
);
return
-
1
;
...
...
@@ -714,7 +714,7 @@ static int read_sbr_grid(AACContext *ac, SpectralBandReplication *sbr,
}
if
(
bs_pointer
>
ch_data
->
bs_num_env
+
1
)
{
av_log
(
ac
->
avc
context
,
AV_LOG_ERROR
,
av_log
(
ac
->
avc
tx
,
AV_LOG_ERROR
,
"Invalid bitstream, bs_pointer points to a middle noise border outside the time borders table: %d
\n
"
,
bs_pointer
);
return
-
1
;
...
...
@@ -722,7 +722,7 @@ static int read_sbr_grid(AACContext *ac, SpectralBandReplication *sbr,
for
(
i
=
1
;
i
<=
ch_data
->
bs_num_env
;
i
++
)
{
if
(
ch_data
->
t_env
[
i
-
1
]
>
ch_data
->
t_env
[
i
])
{
av_log
(
ac
->
avc
context
,
AV_LOG_ERROR
,
"Non monotone time borders
\n
"
);
av_log
(
ac
->
avc
tx
,
AV_LOG_ERROR
,
"Non monotone time borders
\n
"
);
return
-
1
;
}
}
...
...
@@ -907,21 +907,21 @@ static void read_sbr_extension(AACContext *ac, SpectralBandReplication *sbr,
switch
(
bs_extension_id
)
{
case
EXTENSION_ID_PS
:
if
(
!
ac
->
m4ac
.
ps
)
{
av_log
(
ac
->
avc
context
,
AV_LOG_ERROR
,
"Parametric Stereo signaled to be not-present but was found in the bitstream.
\n
"
);
av_log
(
ac
->
avc
tx
,
AV_LOG_ERROR
,
"Parametric Stereo signaled to be not-present but was found in the bitstream.
\n
"
);
skip_bits_long
(
gb
,
*
num_bits_left
);
// bs_fill_bits
*
num_bits_left
=
0
;
}
else
{
#if 0
*num_bits_left -= ff_ps_data(gb, ps);
#else
av_log_missing_feature
(
ac
->
avc
context
,
"Parametric Stereo is"
,
0
);
av_log_missing_feature
(
ac
->
avc
tx
,
"Parametric Stereo is"
,
0
);
skip_bits_long
(
gb
,
*
num_bits_left
);
// bs_fill_bits
*
num_bits_left
=
0
;
#endif
}
break
;
default:
av_log_missing_feature
(
ac
->
avc
context
,
"Reserved SBR extensions are"
,
1
);
av_log_missing_feature
(
ac
->
avc
tx
,
"Reserved SBR extensions are"
,
1
);
skip_bits_long
(
gb
,
*
num_bits_left
);
// bs_fill_bits
*
num_bits_left
=
0
;
break
;
...
...
@@ -1006,7 +1006,7 @@ static unsigned int read_sbr_data(AACContext *ac, SpectralBandReplication *sbr,
return
get_bits_count
(
gb
)
-
cnt
;
}
}
else
{
av_log
(
ac
->
avc
context
,
AV_LOG_ERROR
,
av_log
(
ac
->
avc
tx
,
AV_LOG_ERROR
,
"Invalid bitstream - cannot apply SBR to element type %d
\n
"
,
id_aac
);
sbr
->
start
=
0
;
return
get_bits_count
(
gb
)
-
cnt
;
...
...
@@ -1033,7 +1033,7 @@ static void sbr_reset(AACContext *ac, SpectralBandReplication *sbr)
if
(
err
>=
0
)
err
=
sbr_make_f_derived
(
ac
,
sbr
);
if
(
err
<
0
)
{
av_log
(
ac
->
avc
context
,
AV_LOG_ERROR
,
av_log
(
ac
->
avc
tx
,
AV_LOG_ERROR
,
"SBR reset failed. Switching SBR to pure upsampling mode.
\n
"
);
sbr
->
start
=
0
;
}
...
...
@@ -1085,7 +1085,7 @@ int ff_decode_sbr_extension(AACContext *ac, SpectralBandReplication *sbr,
bytes_read
=
((
num_sbr_bits
+
num_align_bits
+
4
)
>>
3
);
if
(
bytes_read
>
cnt
)
{
av_log
(
ac
->
avc
context
,
AV_LOG_ERROR
,
av_log
(
ac
->
avc
tx
,
AV_LOG_ERROR
,
"Expected to read %d SBR bytes actually read %d.
\n
"
,
cnt
,
bytes_read
);
}
return
cnt
;
...
...
@@ -1380,7 +1380,7 @@ static int sbr_hf_gen(AACContext *ac, SpectralBandReplication *sbr,
g
--
;
if
(
g
<
0
)
{
av_log
(
ac
->
avc
context
,
AV_LOG_ERROR
,
av_log
(
ac
->
avc
tx
,
AV_LOG_ERROR
,
"ERROR : no subband found for frequency %d
\n
"
,
k
);
return
-
1
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录