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
Alex Converse
36f517736f
Cosmetics: reindent after last commit
...
Originally committed as revision 19400 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-07-10 21:54:06 +00:00
Alex Converse
6308765cb5
Ignore subsequent channel configurations after the first in an AAC file. The
...
current code doesn't handle them properly, and they are a dubious construction
at best.
Originally committed as revision 19399 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-07-10 21:53:04 +00:00
Ronald S. Bultje
ce863d7f36
Rename ff_log_missing_feature() to av_log_missing_feature().
...
Originally committed as revision 19294 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-29 19:07:04 +00:00
Alex Converse
d4eeef0c19
Cosmetics: Re-indent after last commit
...
Originally committed as revision 19175 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-12 21:16:33 +00:00
Alex Converse
85e9296f41
Move TNS and swb_offset tables from aacdectab.h to aactab.c so that they can be
...
shared with the AAC encoder.
Originally committed as revision 19174 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-12 21:14:45 +00:00
Alex Converse
401a995085
In the event of a mismatch, do not follow the sample rate index in an AAC PCE.
...
This matches the behavior the reference decoder and fixes issue 1072.
Originally committed as revision 18957 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-05-26 21:34:56 +00:00
Siarhei Siamashka
7d485f165f
Support for getting (i)MDCT output multiplied by a constant scaling factor.
...
Scaling (i)MDCT output has no runtime overhead and can be used to improve
performance of audio codecs. All the changes are only needed in
'ff_mdct_init' function and slow down initialization a bit.
Originally committed as revision 18855 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-05-16 14:17:08 +00:00
Alex Converse
90350d73f8
Allow parsing and decoding of ADTS AAC files with channel config = 0
...
Originally committed as revision 18815 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-05-13 17:57:58 +00:00
Robert Swain
7bbd2fb126
Remove redundant assignment. err is assigned in every switch case anyway. Issue
...
found by CSA.
Originally committed as revision 18641 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-21 12:29:36 +00:00
Robert Swain
5967e1413e
Remove unnecessary assignment, found by CSA.
...
Originally committed as revision 18617 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-19 00:55:46 +00:00
Stefano Sabatini
9106a698e7
Rename bitstream.h to get_bits.h.
...
Originally committed as revision 18494 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-13 16:20:26 +00:00
Thilo Borgmann
7a00bbad21
Implement avcodec_decode_video2(), _audio3() and _subtitle2() which takes an
...
AVPacket argument rather than a const uint8_t *buf + int buf_size. This allows
passing of packet-specific flags from demuxer to decoder, such as the keyframe
flag, which appears necessary to playback corePNG P-frames.
Patch by Thilo Borgmann thilo.borgmann googlemail com, see also the thread
"Google Summer of Code participation" on the mailinglist.
Originally committed as revision 18351 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-07 15:59:50 +00:00
Alex Converse
04964ee8bb
AAC: Ignore cc_domain for independent (time domain) coupling.
...
Originally committed as revision 18169 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-23 05:13:26 +00:00
Alex Converse
4a39ccb403
AAC: IEEE-754 type punning for 16-bit floating point rounding.
...
Originally committed as revision 18015 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-16 16:11:27 +00:00
Alex Converse
7d87e2ceac
Re-indent after last commit.
...
Originally committed as revision 17861 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-06 22:37:21 +00:00
Alex Converse
51741a82c3
If we get an error from ff_aac_parse_header() we should not trust the header info that it provides.
...
Originally committed as revision 17860 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-06 22:36:24 +00:00
Alex Converse
bb5c0988ea
Fix the channel allocation bug/assumption (issue 800).
...
Approved by Rob on IRC.
Originally committed as revision 17856 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-06 19:47:01 +00:00
Alex Converse
cfd937b081
AAC: hoist dependent gain lookup out of the loop
...
Originally committed as revision 17835 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-05 23:10:22 +00:00
Alex Converse
9ef88afac3
AAC: Make the CPE function more consistent with the functions for other channel elements.
...
Originally committed as revision 17672 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-01 00:23:05 +00:00
Alex Converse
e8d5c07bcc
Re-indent after last commit.
...
Originally committed as revision 17600 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-26 01:54:16 +00:00
Alex Converse
21e8c46cde
Refactor AAC unsigned band type decoding for a modest speedup.
...
Originally committed as revision 17599 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-26 01:51:34 +00:00