Alex Converse
7caee063a0
aacdec: Work around illegal files with all elem_id tags set to the same value.
...
Fixes issue 1882.
Originally committed as revision 23439 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-03 02:17:49 +00:00
Cyril Russo
5d55bb9f11
aacdec: Clarify a channel mapping comment.
...
Patch by Cyril Russo >stage nexvision laposte net<
Originally committed as revision 23351 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-05-27 14:50:19 +00:00
Alex Converse
c16d5a6f14
Make aac_decode_frame() consume zero padding at the end of a packet.
...
Originally committed as revision 23195 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-05-19 20:18:34 +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
Stefano Sabatini
72415b2adb
Define AVMediaType enum, and use it instead of enum CodecType, which
...
is deprecated and will be dropped at the next major bump.
Originally committed as revision 22735 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-30 23:30:55 +00:00
Reimar Döffinger
c26bce1070
Allow hard-coding of the 32kB cubic-root table for AAC.
...
Originally committed as revision 22527 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-14 19:59:47 +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
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
Alex Converse
732436920b
10l: AAC: Set multiplier to 0.
...
Originally committed as revision 22299 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-07 23:52:33 +00:00
Alex Converse
54f158bda2
AAC: Set codec parameters in the first frame rather than in .init()
...
Originally committed as revision 22298 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-07 23:46:40 +00:00
Alex Converse
57cb8d9831
AAC: Add a new line after the TNS error message.
...
Originally committed as revision 22287 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-07 21:07:22 +00:00
Måns Rullgård
1429224b04
Move FFT parts from dsputil.h to fft.h
...
Originally committed as revision 22235 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-06 14:34:46 +00:00
Alex Converse
b5e2bb8c3c
AAC: Return the number of bytes consumed in decoding a frame.
...
The libfaad wrapper does this.
Originally committed as revision 22206 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-04 12:34:15 +00:00
Alex Converse
ab2a302834
AAC: Mark predictor functions av_always_inline.
...
This results in a 50% speedup on main profile with no increase in binary size.
Originally committed as revision 22196 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-04 04:58:43 +00:00
Alex Converse
c4a90caae2
aac: Keep decode_band_types() from eating all padding at the end of a buffer.
...
Due to a shortcoming in the AAC specification, if an all zero buffer is
fed to section data decoding it will never terminate. That means without
a buffer exhaustion check decode_band_types() will consume all input
buffer padding. Worse if a get_bits() implementation that returns zeros
when padding is exhausted is used, the function will never terminate.
The fixes that by added a buffer exhaustion check in the sectioning
decoding loop.
Originally committed as revision 22044 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-24 23:56:52 +00:00
Alex Converse
8d63712486
Add some AAC buffer overread checks.
...
Originally committed as revision 21886 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-18 23:06:56 +00:00
Alex Converse
8958445898
AAC: Mark che_configure() as av_cold.
...
It is also only called when the output configuration is not locked.
Originally committed as revision 21834 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-15 16:29:46 +00:00
Alex Converse
ff98c17cba
AAC: Mark functions that are only called when the output configuration is not locked as av_cold.
...
Originally committed as revision 21833 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-15 16:19:46 +00:00
Alex Converse
1edea057dd
Output the first AAC frame. This is needed for SBR conformance.
...
Originally committed as revision 21739 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-10 14:51:57 +00:00
Måns Rullgård
d356a53f44
AAC: optimise bitstream reading in decode_spectrum_and_dequant()
...
Using the low-level macros directly avoids redundant open/update/close
cycles.
2-3% faster on ARM, PPC, and Core i7.
Originally committed as revision 21224 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-15 14:02:52 +00:00
Måns Rullgård
798339fb46
AAC: ARM/NEON asm for VMUL2/4 functions
...
Originally committed as revision 21219 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-15 02:58:24 +00:00
Måns Rullgård
2ef21b9179
AAC: Reduce depth of vlc_spectral tables to 2
...
Up to 6% faster overall on i7, no change on A8.
Originally committed as revision 21191 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-13 16:46:39 +00:00
Måns Rullgård
95dff4aced
AAC: Unswitch loop over window groups in decode_spectrum_and_dequant()
...
GCC should be able to do this, but doesn't. Slightly faster code.
Originally committed as revision 21190 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-13 16:46:35 +00:00
Måns Rullgård
05f9d8fcaa
AAC: simplify some calculations in decode_spectrum_and_dequant()
...
Simplify cur_band_type, group_len, and coef/offset calculations. This
makes the code easier to read and slightly faster.
Originally committed as revision 21189 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-13 16:46:32 +00:00
Måns Rullgård
c816d3d042
AAC: Compress codebook tables and optimise sign bit handling
...
The codebooks each consist of small number of values repeated in
groups of 2 or 4. Storing the codebooks as a packed list of 2- or
4-bit indexes into a table reduces their size substantially (from 7.5k
to 1.5k), resulting in less cache pressure.
For the band types with sign bits in the bitstream, storing the number
and position of non-zero codebook values using a few bits avoids
multiple get_bits() calls and floating-point comparisons which gcc
handles miserably.
Some float/int type punning also avoids gcc brain damage.
Overall speedup 20-35% on Cortex-A8, 20% on Core i7.
Originally committed as revision 21188 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-13 16:46:28 +00:00
Måns Rullgård
dc0d86face
AAC: use table for cbrtf(n)*n
...
The maximum length of escape_sequence is 21 bits, so adjust limit in
code to match this.
Up to 10% faster on Cortex-A8.
Originally committed as revision 21153 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-11 20:21:26 +00:00
Måns Rullgård
7c8af53f87
AAC: escape_sequence is 21 bits max
...
The maximum length of escape_sequence is 21 bits, so adjust limit in
code to match this. Also fix the comment.
Originally committed as revision 21151 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-11 18:02:00 +00:00
Reimar Döffinger
14b8607065
Add support for hard-coded MDCT-related ff_sine_windows tables.
...
Originally committed as revision 21108 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-09 13:28:04 +00:00
Måns Rullgård
3963a17d0e
AAC: add a const to decode_spectrum_and_dequant() args
...
Originally committed as revision 21099 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-08 17:52:54 +00:00
Carl Eugen Hoyos
b0bc928b86
Undo r20874: It broke AAC decoding.
...
Originally committed as revision 20879 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-16 11:39:14 +00:00
Carl Eugen Hoyos
257c7147e1
Use enum and constant to avoid three icc warnings.
...
Originally committed as revision 20874 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-15 15:57:18 +00:00
Andreas Öman
f658631419
aac: Set sample rate in avctx from ADTS header (if not already set by some
...
other means)
Originally committed as revision 20773 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-08 19:20:36 +00:00
Alex Converse
4fab662769
AAC: Add a global header but output not locked output configuration status.
...
Originally committed as revision 20701 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-02 09:12:05 +00:00
Alex Converse
38610d92ff
Set the SBR mode to implicit on ADTS frames occurring before the output is locked.
...
Originally committed as revision 20700 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-02 09:07:32 +00:00
Alex Converse
4e878a1898
10l: Fix inverted if-condition from r20448. Fixes issue 1562.
...
Originally committed as revision 20570 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-21 20:56:46 +00:00
Alex Converse
01d19fbc9f
AAC: Rename sect_len to sect_end. It marks the last sfb of the section, not the
...
length of the section.
Originally committed as revision 20513 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-11 20:33:56 +00:00
Alex Converse
981b8fd777
Don't lock the channel output configuration based on the first value seen for
...
non extradata formats. Instead lock it only after the successful decoding of a
frame. This fixes issue 999.
Originally committed as revision 20448 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-03 22:50:02 +00:00
Robert Swain
0359289d1d
AAC: Fix regression introduced in r20067 where ADTS files would always be
...
signalled as having a channel configuration of 1 in output_configure().
Previously this didn't matter but it does now.
Originally committed as revision 20193 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-09 15:38:44 +00:00
David Conrad
144fec83b3
dca and aac decoders use float_to_int16_interleave, so check for
...
the C version of that rather than float_to_int16.
Fixes output on ARM/VFP
Originally committed as revision 20192 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-08 14:40:14 +00:00
Robert Swain
754ff9a795
Refactor channel element configuration and mapping code into its own function
...
to allow reuse
Originally committed as revision 20069 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-28 15:37:18 +00:00
Robert Swain
2309923c5c
Reindent after last commit
...
Originally committed as revision 20068 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-28 15:35:51 +00:00
Robert Swain
e22da6b637
AAC: Add channel layout support for channel configuration as defined in the
...
specification
Originally committed as revision 20067 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-28 15:35:13 +00:00
Måns Rullgård
b418a6ca7e
AAC: minor simplification in PNS decoding
...
Originally committed as revision 19999 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-23 13:52:53 +00:00
Måns Rullgård
0cb7141282
AAC: 10l: fix PNS decoding
...
Originally committed as revision 19970 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-22 19:31:01 +00:00
Alex Converse
5419da8d9c
AAC: Simplify some logic from r19956. (The escape codebook is unsigned.)
...
Originally committed as revision 19958 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-22 01:34:42 +00:00
Måns Rullgård
42d3fbb3f4
AAC: use new dsputil functions
...
Originally committed as revision 19956 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-22 00:48:45 +00:00
Reimar Döffinger
b5f09d31c2
Make sample_fmts and channel_layouts compound literals const to reduce size of
...
.data section.
Originally committed as revision 19787 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-06 09:15:07 +00:00
Diego Biurrun
577d383b0c
cosmetics: K&R coding style
...
Originally committed as revision 19562 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-08-02 10:50:59 +00:00