Commit Graph

77 Commits

Author SHA1 Message Date
Måns Rullgård
69e171364e DCA: optimise dca_subsubframe()
8% faster overall on Cortex-A8.

Originally committed as revision 22871 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-13 10:15:00 +00:00
Måns Rullgård
309d16a4a0 DCA: break out lfe_interpolation_fir() inner loops to a function
This enables SIMD optimisations of this function.

Originally committed as revision 22861 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-12 20:45:25 +00:00
Måns Rullgård
843c7aa8fb DCA: use FASTDIV in decode_blockcode()
Originally committed as revision 22855 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-12 16:05:10 +00:00
Måns Rullgård
766fefe8e2 DCA: simplify lfe_interpolation_fir()
This reorders the lfe_fir tables, and drops the mirrored half,
such that the loops in lfe_interpolation_fir() can be simplified.
The new loop structure should be easier to implement with SIMD.
Static data size is reduced by 2kB.
3% faster on Cortex-A8.

Originally committed as revision 22849 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-12 11:14:55 +00:00
Måns Rullgård
b92d483bac DCA: use a local variable for loop boundary
This prevents gcc reloading the value from memory on each iteration
of the loop.

Originally committed as revision 22848 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-12 11:14:51 +00:00
Måns Rullgård
0dc7df28dd DCA: use some type-punning in qmf_32_subbands()
Originally committed as revision 22847 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-12 11:14:48 +00:00
Måns Rullgård
f462ed1f82 Make synth_filter a function pointer
Originally committed as revision 22827 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-10 16:27:53 +00:00
Måns Rullgård
38d52f3ea3 DCA: align some arrays
Optimised implementations of the synth filter will require these
arrays 16-byte aligned.

Originally committed as revision 22826 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-10 16:27:47 +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
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
Måns Rullgård
84dc2d8afa Remove DECLARE_ALIGNED_{8,16} macros
These macros are redundant.  All uses are replaced with the generic
DECLARE_ALIGNED macro instead.

Originally committed as revision 22233 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-06 14:24:59 +00:00
Laurent Aimar
4e06acbde4 Fixed a segfault in the DCA decoder with corrupted streams.
It happens when the number of channels defined by DCAContext:acmod is lower
than DCAContext:prim_channels. In this case, dca_subsubframe() will call
qmf_32_subbands() using s->channel_order_tab[] entries equal to -1.

Originally committed as revision 22083 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-26 18:50:01 +00:00
Måns Rullgård
c67278098d Move array specifiers outside DECLARE_ALIGNED() invocations
Originally committed as revision 21377 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-22 03:25:11 +00:00
Michael Niedermayer
d49dded591 Remove unused variable j.
Originally committed as revision 20398 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-28 14:40:05 +00:00
Michael Niedermayer
4f99c31c39 Split synth filter out of dca.c.
Originally committed as revision 20396 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-28 10:51:51 +00:00
Reimar Döffinger
268fcbe2c8 Fix 100l incorrect bitmask check.
Originally committed as revision 20197 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-10 08:49:57 +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
Måns Rullgård
01b2214758 Merge FFTContext and MDCTContext
Originally committed as revision 19931 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-20 17:30:20 +00:00
Måns Rullgård
6d9d289e76 DCA: move an aligned array from stack to context
Originally committed as revision 19805 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-10 08:49:59 +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
Kostya Shishkov
0cfa85dd9f Make VLC tables in DCA decoder use INIT_VLC_USE_NEW_STATIC
Originally committed as revision 18643 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-21 17:37:03 +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
Stefano Sabatini
b275500706 Split bitstream.h, put the bitstream writer stuff in the new file
put_bits.h.

Originally committed as revision 18461 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-12 08:35:26 +00:00
Carl Eugen Hoyos
e161e007be Use INIT_VLC_USE_STATIC and not its value "1".
Originally committed as revision 18430 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-11 11:47:15 +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
Diego Biurrun
bad5537e2c Use full internal pathname in doxygen @file directives.
Otherwise doxygen complains about ambiguous filenames when files exist
under the same name in different subdirectories.

Originally committed as revision 16912 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-01 02:00:19 +00:00
Kostya Shishkov
d041a59897 Add support for parsing and decoding DCA-HD streams.
Originally committed as revision 15951 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-11-29 10:06:37 +00:00
Benjamin Larsson
92765276fb Proper channel output reordering for the dca decoder.
Originally committed as revision 15832 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-11-15 20:31:03 +00:00
Benjamin Larsson
e22192ecc3 Comment typo
Originally committed as revision 15801 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-11-11 08:46:29 +00:00
Benjamin Larsson
cd027b511e Remove channel layout table that only should be used by encoders.
Originally committed as revision 15800 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-11-11 08:30:32 +00:00
Benjamin Larsson
c6eaba62e8 Change the dca channel layout, S -> SIDE not BACK.
Originally committed as revision 15769 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-11-02 21:51:27 +00:00
Andreas Öman
9d9b9d32e6 Change multichannel API define prefix from "CHANNEL_" to "CH_".
Originally committed as revision 15768 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-11-02 21:04:28 +00:00
Benjamin Larsson
48dc2fb800 Guess channel layout based on the number of channels if a custom layout is specified in amode.
Originally committed as revision 15766 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-11-01 20:49:37 +00:00
Benjamin Larsson
87c3b9bce3 Add channel layouts for dca.
Originally committed as revision 15765 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-11-01 20:27:05 +00:00
Benjamin Larsson
d5b3a86393 Fix compilation, remove stray ;
Originally committed as revision 15735 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-10-28 15:20:52 +00:00
Benjamin Larsson
9ed73b4870 Fix selection of quant step table
Originally committed as revision 15734 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-10-28 14:50:46 +00:00
Benjamin Larsson
ba5fc967f6 Disable codec downmix when not using simd instead of silently produce silence
Originally committed as revision 15715 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-10-26 10:14:16 +00:00
Benjamin Larsson
1402ee721a Fix dca decoder with non simd float2int16 conversion
Originally committed as revision 15714 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-10-26 09:54:53 +00:00
Benjamin Larsson
49c91c34b3 Fix compilation with TRACE
Originally committed as revision 15713 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-10-26 09:50:15 +00:00
Michael Niedermayer
1d8370aad9 Remove the cos_mod table that has become unused after replacing the imdct
by ff_imdct_half().

Originally committed as revision 15050 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-30 11:01:58 +00:00
Michael Niedermayer
89df5e95bb Replace obfuscated mdct in qmf_32_subbands() by ff_imdct_half().
Originally committed as revision 15049 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-30 10:47:13 +00:00
Michael Niedermayer
47f0e05295 Get rid of the 512 sample memmove().
Originally committed as revision 15048 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-30 10:41:53 +00:00
Michael Niedermayer
b854197919 Half the size of subband_fir_noidea and get rid of memmove & memset of it.
Originally committed as revision 15033 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-29 18:37:40 +00:00
Michael Niedermayer
ef8676276d Move t1 and t2 declaration from the QMF code closer to where they are used.
Originally committed as revision 15024 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-29 14:53:07 +00:00
Michael Niedermayer
addafb0e0a Simplify (drop useless intermediate sum and diff arrays).
Originally committed as revision 15023 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-29 14:44:47 +00:00
Andreas Öman
c55ecb9c27 5,1l: samples_chanptr[] should be (const float *)
Originally committed as revision 15022 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-29 10:14:01 +00:00
Andreas Öman
a7bc9d1b71 dca: Set data_size outside block loop.
Originally committed as revision 15021 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-29 10:12:44 +00:00
Andreas Öman
8ed96a5eba dca: Do float -> int16 interleaving in-place using s->dsp.float_to_int16_interleave()
Originally committed as revision 15020 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-29 10:09:51 +00:00
Alexander E. Patrakov
cc09e77e2a Correct scaling factor in DCA decoder synthesis.
Patch by Alexander Patrakov ($lastname at gmail.com)
Thread: dca.c: output scale is a bit off

Originally committed as revision 14937 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-24 05:47:45 +00:00
Michael Niedermayer
56523713e5 Remove redundant FFMIN().
Originally committed as revision 14918 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-23 13:35:12 +00:00