Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
7f296441
Commit
7f296441
authored
Dec 24, 2013
by
Alex Converse
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
aac: Fix low delay windowing.
AAC LD uses a low overlap sine window instead of a KBD window.
parent
42d1b419
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
8 additions
and
5 deletions
+8
-5
aacdec.c
libavcodec/aacdec.c
+8
-3
aactab.c
libavcodec/aactab.c
+0
-1
aactab.h
libavcodec/aactab.h
+0
-1
No files found.
libavcodec/aacdec.c
View file @
7f296441
...
...
@@ -1065,7 +1065,6 @@ static av_cold int aac_decode_init(AVCodecContext *avctx)
ff_mdct_init
(
&
ac
->
mdct_ltp
,
11
,
0
,
-
2
.
0
*
32768
.
0
);
// window initialization
ff_kbd_window_init
(
ff_aac_kbd_long_1024
,
4
.
0
,
1024
);
ff_kbd_window_init
(
ff_aac_kbd_long_512
,
4
.
0
,
512
);
ff_kbd_window_init
(
ff_aac_kbd_short_128
,
6
.
0
,
128
);
ff_init_ff_sine_windows
(
10
);
ff_init_ff_sine_windows
(
9
);
...
...
@@ -2430,14 +2429,20 @@ static void imdct_and_windowing_ld(AACContext *ac, SingleChannelElement *sce)
float
*
in
=
sce
->
coeffs
;
float
*
out
=
sce
->
ret
;
float
*
saved
=
sce
->
saved
;
const
float
*
lwindow_prev
=
ics
->
use_kb_window
[
1
]
?
ff_aac_kbd_long_512
:
ff_sine_512
;
float
*
buf
=
ac
->
buf_mdct
;
// imdct
ac
->
mdct
.
imdct_half
(
&
ac
->
mdct_ld
,
buf
,
in
);
// window overlapping
ac
->
fdsp
.
vector_fmul_window
(
out
,
saved
,
buf
,
lwindow_prev
,
256
);
if
(
ics
->
use_kb_window
[
1
])
{
// AAC LD uses a low overlap sine window instead of a KBD window
memcpy
(
out
,
saved
,
192
*
sizeof
(
float
));
ac
->
fdsp
.
vector_fmul_window
(
out
+
192
,
saved
+
192
,
buf
,
ff_sine_128
,
64
);
memcpy
(
out
+
320
,
buf
+
64
,
192
*
sizeof
(
float
));
}
else
{
ac
->
fdsp
.
vector_fmul_window
(
out
,
saved
,
buf
,
ff_sine_512
,
256
);
}
// buffer update
memcpy
(
saved
,
buf
+
256
,
256
*
sizeof
(
float
));
...
...
libavcodec/aactab.c
View file @
7f296441
...
...
@@ -34,7 +34,6 @@
#include <stdint.h>
DECLARE_ALIGNED
(
32
,
float
,
ff_aac_kbd_long_1024
)[
1024
];
DECLARE_ALIGNED
(
32
,
float
,
ff_aac_kbd_long_512
)[
512
];
DECLARE_ALIGNED
(
32
,
float
,
ff_aac_kbd_short_128
)[
128
];
const
uint8_t
ff_aac_num_swb_1024
[]
=
{
...
...
libavcodec/aactab.h
View file @
7f296441
...
...
@@ -45,7 +45,6 @@
* @{
*/
DECLARE_ALIGNED
(
32
,
extern
float
,
ff_aac_kbd_long_1024
)[
1024
];
DECLARE_ALIGNED
(
32
,
extern
float
,
ff_aac_kbd_long_512
)[
512
];
DECLARE_ALIGNED
(
32
,
extern
float
,
ff_aac_kbd_short_128
)[
128
];
const
DECLARE_ALIGNED
(
32
,
extern
float
,
ff_aac_eld_window
)[
1920
];
// @}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment