Commit Graph

130 Commits

Author SHA1 Message Date
Alex Converse
932963b8e2 Rewrite the SBR decoder QMF analysis filter on top of the IMDCT instead of the RDFT.
This is based on a procedure to implement the filterbank on the DCT-IV described in
Hsu, H.W. et al. "A Complex Quadrature Mirror Filterbanks for MPEG-4 HE-AAC"
http://sites.google.com/site/wenchiehlee1020/Papers/ComplexFB_AES_121paper144.pdf

Originally committed as revision 23516 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-07 21:52:08 +00:00
Alex Converse
dd8871a63b aacdec: Rename avccontext to avctx.
Originally committed as revision 23488 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-05 15:22:19 +00:00
Alex Converse
17d5959998 10l: The SBR refactor requires the use of 2 independent output X buffers.
Originally committed as revision 23014 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-05-03 19:21:35 +00:00
Alex Converse
2d23fecd5d Enforce time border monotonicity.
Thanks to Chromium.

Originally committed as revision 23000 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-30 23:32:42 +00:00
Alex Converse
a91d82b5cc Move the SBR patch count check to prevent overwrites.
Thanks to Chromium.

Originally committed as revision 22999 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-30 23:08:44 +00:00
Alex Converse
10678e5c72 Increase size of patch_borders[].
6 patches means there can be 7 borders. Found by Chromium.

Originally committed as revision 22998 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-30 22:42:52 +00:00
Alex Converse
d0dedce71d Reindent
Originally committed as revision 22996 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-30 21:43:29 +00:00
Alex Converse
ca6d3f234c Rewrite ff_sbr_apply in a manner more friendly to PS.
This includes merging ff_sbr_dequant into ff_sbr_apply.

Originally committed as revision 22995 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-30 21:43:23 +00:00
Diego Biurrun
ba87f0801d Remove explicit filename from Doxygen @file commands.
Passing an explicit filename to this command is only necessary if the
documentation in the @file block refers to a file different from the
one the block resides in.

Originally committed as revision 22921 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-20 14:45:34 +00:00
Alex Converse
ba659bedb8 Reindent read_sbr_extension.
Originally committed as revision 22820 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-08 06:27:39 +00:00
Alex Converse
73c2704608 Print an error and skip PS when PS is found but explicitly found but
signaled to be absent.

Originally committed as revision 22819 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-08 06:27:35 +00:00
Alex Converse
b3e5931d18 aacsbr: DSPUtilize analysis input scaling.
Originally committed as revision 22516 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-13 21:12:45 +00:00
Alex Converse
f8a93a2036 aac: Don't bias output during the IMDCT if SBR will be used.
Originally committed as revision 22515 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-13 21:12:10 +00:00
Alex Converse
6ebc724060 aacsbr: Check that bs_num_env is valid before writing arrays with it as an offset.
Originally committed as revision 22413 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-09 21:50:10 +00:00
Alex Converse
134b8cbb9a aacsbr: Cleanup read_sbr_grid and copy_sbr_grid after the recent overhaul of those functions.
Originally committed as revision 22412 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-09 21:46:46 +00:00
Alex Converse
f7e7888b2a aacsbr: Factor out the common end border case from t_q setup.
Originally committed as revision 22411 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-09 21:35:55 +00:00
Alex Converse
ac8d655a79 aacsbr: read bs_rel_bord directly into t_env.
Originally committed as revision 22410 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-09 21:29:43 +00:00
Alex Converse
ecc1f8c3c8 aacsbr: Make the previous value of bs_num_env local to read_sbr_data().
Originally committed as revision 22409 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-09 20:46:41 +00:00
Alex Converse
46751a65e3 aacsbr: Initialize e_a[1] to -1.
This triggers lAPrev (e_a[0]) on the first SBR frame to be -1. The spec is
somewhat ambiguous to what this value should be but this increases the accuracy
of al_sbr_e_44_1 and similar streams from 14 bits to 15 bits.

Originally committed as revision 22408 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-09 20:16:14 +00:00
Alex Converse
5889172087 aacsbr: Dead code removal.
Originally committed as revision 22387 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-09 11:14:14 +00:00
Alex Converse
afd96c345f aacsbr: Remove a slightly incorrect comment.
The two conditions are equivalent.

Originally committed as revision 22386 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-09 11:13:45 +00:00
Alex Converse
7935078623 aacsbr: Cleanup the newly merged read_sbr_grid, eliminating several context
and some duplicate local variables.

Originally committed as revision 22384 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-09 10:27:35 +00:00
Alex Converse
7333f849b1 aacsbr: Move the e_a calculation from sbr_mapping() to read_sbr_grid().
Originally committed as revision 22383 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-09 10:26:54 +00:00
Alex Converse
b9c3e3b6e7 aacsbr: Merge sbr_time_freq_grid into read_sbr_grid (and into copy_sbr_grid).
Originally committed as revision 22382 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-09 10:26:25 +00:00
Alex Converse
ed1d112931 aacsbr: Fail early on illegal envelope counts.
Originally committed as revision 22381 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-09 10:25:42 +00:00
Alex Converse
8a9ee4b102 aacsbr: Check for illegal values of bs_pointer in sbr_read_grid().
Originally committed as revision 22380 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-09 09:27:11 +00:00
Alex Converse
bf3d904c3d 10l: Include missing return values in functions made non-void by the previous commit.
Originally committed as revision 22376 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-09 06:21:41 +00:00
Alex Converse
58b1cba0c9 aacsbr: Propagate errors from read_sbr_grid to prevent crashes in malformatted streams.
Originally committed as revision 22375 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-09 06:13:48 +00:00
Georgi Chorbadzhiyski
e0be763052 Add a missing fft.h include to the aacsbr decoder.
Patch by Georgi Chorbadzhiyski gf at unixsol dot org

Originally committed as revision 22374 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-09 06:11:45 +00:00
Alex Converse
ed492b61db Add an HE-AAC v1 decoder.
A large portion of this code was orignally authored by Robert Swain. The rest
was written by me. Full history is available at:
svn://svn.ffmpeg.org/soc/aac-sbr
http://github.com/aconverse/ffmpeg-heaac/tree/sbr_pub

Originally committed as revision 22316 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-08 04:33:02 +00:00