| Commit message (Collapse) | Author | Age |
| ... | |
| |
|
|
|
|
|
|
|
|
|
| |
Skip expensive multiply-accumulate loop when gains are 0 and
just copy using memcpy if soure and destination are not the same
Speeds up decoding of a 64kbps test file by 6MHz on h300 (cf)
7MHz on c200 (pp) and 6MHz on fuzev1 (amsv1)
Change-Id: Ibbc9ddfd45a9ac661467b1327b8c67761924fb8b
Signed-off-by: Nils Wallménius <nils@rockbox.org>
|
| |
|
|
|
|
|
| |
speeds up decoding of a 64kbps test file by 14MHz on h300 (cf)
and 1MHz on c200 (pp)
Change-Id: I852cb66808676ea51109423f5b70cfc8782dd109
|
| |
|
|
|
|
|
|
| |
Reorder operands to take advantage of the early termination of
multiplications. Saves 2.5MHz decoding a 64kbps opus test file
on c200 (pp).
Change-Id: I470266dc870ab183ece3b23426d41e2a64342a71
|
| |
|
|
|
|
|
|
|
| |
Speeds up decoding of 64kbps test file by 6.3MHz on h300 (cf)
and 1.2MHz on c200 (pp).
Signed-off-by: Nils Wallménius <nils@rockbox.org>
Change-Id: I08c2c332153abcbef9447c81986777fd2fcc73fe
|
| |
|
|
|
|
|
|
| |
speeds up decoding of 64kbps test file by 19MHz on h300 (cf)
and 2.5MHz on c200 (pp)
Change-Id: Idacd2f8962c20c518055d586daeec6b932b7ded2
Signed-off-by: Nils Wallménius <nils@rockbox.org>
|
| |
|
|
|
|
|
|
|
|
| |
Although the mimetype for jpeg is clearly image/jpeg, many tagging
applications seem to use image/jpg, so we'll support that too.
Change-Id: Icb9063fd5a9d8aea169eaa7f74ac52b72603d148
Reviewed-on: http://gerrit.rockbox.org/318
Reviewed-by: Michael Giacomelli <mgiacomelli@gmail.com>
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
|
| |
|
|
|
|
|
|
| |
Speeds up decoding of a 64kbps test file 26MHz on H300 (cf) and
2MHz on c200 (pp)
Change-Id: I2fb4fe6c0a29321087e02fbd17fd1b1eb84e7b57
Signed-off-by: Nils Wallménius <nils@rockbox.org>
|
| |
|
|
|
|
|
|
|
| |
Remove downsampling code from deemphasis loop as we don't use
it and remove multiplications that are not relevant when
not using custom modes. Saves 1.4MHz on h300 (cf), 4.3MHz on
c200 (pp) and 4.6 on fuzev1 (amsv1).
Change-Id: Iab3f1d737a656a563aaa351d50db987a9cff2287
|
| |
|
|
| |
Change-Id: I370f43f2e25e03650681c207908f79cdea744d99
|
| |
|
|
|
|
|
| |
Saves about 30MHz on h300 (cf) and 1.5MHz on c200 (pp) decoding a
64kbps test file. Stack usage is still below 70%.
Change-Id: Ib13df9011adb4eef4bb91a52e5a32741c8bf8988
|
| |
|
|
|
|
| |
saves about 3MHz when decoding a 64kbps test file
Change-Id: I10f47173ccb78e60e364662220d1db2f78dd5fdd
|
| |
|
|
|
|
|
| |
Speeds up decoding of a 64kbps test file by 20MHz on h300 (cf)
and 1MHz on c200 (pp)
Change-Id: Ia2adc0a3ad86abce8f948062eb53a8ac14c2cdf2
|
| |
|
|
|
|
|
| |
Speeds up decoding of a 64kbps opus test file by 34MHz on h300 (cf),
24MHz on c200 (pp) and 13MHz on fuzev1 (amsv1)
Change-Id: I0dce6b3bfe6c81d0a722dfebb13891b9a428c6ba
|
| |
|
|
| |
Change-Id: I96033f42e0c3096ec9d779e9f8ca46570f981ab0
|
| |
|
|
| |
Change-Id: I16fa9b439f8da5b9b8a4f17040487b9535078ec5
|
| |
|
|
| |
Change-Id: Ie5ab9d893a7d2c6ec1aca6c295e29ab34eacd656
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Synchronised with opus repo on github (https://github.com/freqmod/rockbox-opus)
Status:
* Seeking ported from speex, but fails on some cases (e.g. seek to granule 0)
* ReplayGain parsing needs to be reworked, we do vorbis-style replaygain now.
http://wiki.xiph.org/OggOpus#Comment_Header explicitly forbids these in
favour of R128_TRACK_GAIN tag.
* No optimisation yet, source files still nearly identical to opus upstream
* Multi-stream opus files may not be parsed correctly
Change-Id: Ia66f1027dc1d288083e3c57b2816700078376f9a
Reviewed-on: http://gerrit.rockbox.org/300
Reviewed-by: Bertrik Sikken <bertrik@sikken.nl>
Tested-by: Bertrik Sikken <bertrik@sikken.nl>
|
| |
|
|
| |
Change-Id: Ia2fc42eb0d36399e6856d3a957dd1634f019ca6a
|
| |
|
|
| |
Change-Id: I5495c4d7d165cac15016d3233b85bbe5497ea3e1
|
| |
|
|
|
|
|
|
|
|
|
| |
Since gcc 4.4 the MIPS port no longer recognizes the "h" asm constraint.
It was necessary to remove this constraint in order to avoid generating
unpredictable code sequences. We can achieve the same effect using
128-bit types.
See also:GCC 4.4 release notes at http://gcc.gnu.org/gcc-4.4/
Change-Id: I713cdf57cde1a989ad960aa441ab1ccf51f1cdc6
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Emulates the basic "Meier" crossfeed (2 capacitors, 3 resistors)
as discussed in
http://www.meier-audio.homepage.t-online.de/passivefilter.htm
This crossfeed blends a bit of low-pass filtered L signal into
the R signal (and vice versa) while adding about 300 us delay
to the crossfed-signal. A difference with the crossfeed already
present in rockbox, is that this algorithm keeps the total
spectrum flat (the one currently in rockbox accentuates
low-frequency signals, making it sound a bit muffled).
This implementation is quite lightweight, just 3 multiplies per
left-right pair of samples. Has a default C implementation and
optimized assembly versions for ARM and Coldfire.
The crossfeed effect is quite subtle and is noticeable mostly
one albums that have very strong left-right separation (e.g.
one instrument only on the left, another only on the right).
In the user interface, the new crossfeed option appears as
"Meier" and is not configureable. The existing crossfeed is
renamed to "Custom" as it allows itself to be customised.
There is no entry for the user manual yet.
Change-Id: Iaa100616fe0fcd7e16f08cdb9a7f41501973eee1
|
| |
|
|
|
|
|
|
| |
When it was inactive but enabled, the format change hook was dropping
through to code that it shouldn't execute without it also being active
in processing samples.
Change-Id: Ie7899df0395d3f0d10f2bf2b55ea549dd06749a7
|
| |
|
|
|
|
|
|
|
| |
Several of the problem samples on the tracker use values outside this
range. Trying the larger table doesn't quite seem to fix things, but
its only a small amount of additional memory and looking at ffmpeg,
I think the larger table is correct.
Change-Id: Id046e62b68550701aa1f80c9abd0a1dcd711bd0d
|
| |
|
|
| |
This reverts commit f358228ea1bc66804e9ea12b65c2593c6c1fe8ee.
|
| |
|
|
|
|
|
|
|
|
| |
coefficients in their bitstream
No known samples are fixed by this problem, but I haven't tested many.
Backport of ffmpeg revision 26388.
Change-Id: Ife9654b7477a432834e3cab2cb43d16da071445a
|
| |
|
|
|
|
| |
Based on http://src.gnu-darwin.org/ports/multimedia/helixplayer/work/hxplay-1.0.7/audio/resampler/hermite.c
Change-Id: Id87565a060aa2383701e7c2f3ea023c7555ad9ef
|
| |
|
|
|
|
|
| |
This is needed on app targets as e.g. ".section .icode" leads to the
code getting linked to incorrect locations (0x0 in this case).
Change-Id: Ic28c5ae6d4f8001d211d685b5ca92d5ffff0c7b2
|
| |
|
|
|
|
|
|
| |
Use memmove instead of memcpy for overlapping copy, fixes
crackling in sims and warble on my system. Native targets
seem to have been unaffected.
Change-Id: I265d4ce373e224581bd2f5ba15c75b473ec231f2
|
| |
|
|
|
|
|
|
| |
If the settings, like samplerate, were to go out of range where
timestretch drops out of processing and then go back to the same as
when they were valid, it would fail to switch back on by itelf.
Change-Id: Ic5bcb268540b0db8e0483117b8a5a0ce5c5a9db0
|
| |
|
|
|
|
|
|
| |
Makes quite a huge difference to get rid of 64-bit math in a hot
area. Cuts about 12 MHz. Generic routine generates good code on
ARM and asm cuts no instructions there.
Change-Id: I4ac647406006c42004f9f5ab396cbf4e85688854
|
| |
|
|
|
|
|
|
|
| |
Wrap up the the stereo case into loops and remove unused calculations
hanging out in tdspeed_update().
A wee little bit of code style and column policing.
Change-Id: I8dd3ab4b3e7e56b55dc00c00f3e32996228cc457
|
| |
|
|
|
|
|
|
| |
Also move the definition to config.h
Change-Id: I36bb5020c5e06b2344292bc05e8c13ccc7a6a1ff
Reviewed-on: http://gerrit.rockbox.org/234
Reviewed-by: Nils Wallménius <nils@rockbox.org>
|
| |
|
|
|
|
| |
Just stop searching if the entry is found (as it should have been).
Change-Id: Id968694e825282d58c8ca4a7789c236f98643a5f
|
| |
|
|
|
|
|
| |
Input functions have common setup sequences that can be placed
into an inline function instead of repeating it all repeatedly.
Change-Id: I9e62904ff0948651c64ddf160ed4400ed6dc81ff
|
| |
|
|
|
|
|
|
| |
It was only needed by the old arm toolchain that we no longer use or support.
Change-Id: Id0e6c67477f8834a637079b03cde5fbf9da68b1c
Reviewed-on: http://gerrit.rockbox.org/233
Reviewed-by: Nils Wallménius <nils@rockbox.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Move code dealing with rockbox specific buflib allocations into a
rockbox specific file and implement buffer allocation with
malloc/free for warble/stand alone lib.
Based on patch by Sean Bartell.
Change-Id: I8cb85dad5890fbd34c1bb26abbb89c0b0f6b55cf
Reviewed-on: http://gerrit.rockbox.org/144
Tested-by: Nils Wallménius <nils@rockbox.org>
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Reviewed-by: Nils Wallménius <nils@rockbox.org>
|
| | |
|
| |
|
|
|
|
|
|
| |
This would zero the first 4 or 8 bytes of the array because it is declared as a pointer
rockbox/lib/rbcodec/codecs/libasap/asap.c:1229:44: warning: argument to 'sizeof' in 'memset' call is the same expression as the destination; did you mean to provide an explicit length? [-Wsizeof-pointer-memaccess]
memset(ast -> memory, 0, sizeof(ast -> memory));
~~~~~~~~~~~~~ ~~~~~~~^~~~~~
|
| |
|
|
| |
It is not supported by clang
|
| |
|
|
| |
Change-Id: Idd457f3c645c5d469ebc6fab0bfc85e7b8dd56da
|
| |
|
|
|
|
|
|
|
| |
It's always used in MONO mode and doesn't need the IRAM sample/
resample buffers and 1280 bytes can be freed.
M5 can now have its PCM mixer downmix buffer in IRAM.
Change-Id: I0af08be5b212b7dfe382bba588a6585eb328a038
|
| |
|
|
|
|
|
|
|
|
| |
Use them to move tick counting, yielding and coldfire macsr handling
code to a rockbox specific file.
Change-Id: Id7417dc98c08a342eba45ba56b044a276e50564b
Reviewed-on: http://gerrit.rockbox.org/229
Tested-by: Nils Wallménius <nils@rockbox.org>
Reviewed-by: Nils Wallménius <nils@rockbox.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
librbcodec users must provide these two files when the library is built.
rbcodecconfig.h provides configuration #defines and basic types, and
will be included by public librbcodec headers, so it must not conflict
with the user's code. rbcodecplatform.h provides various OS functions,
and will only be included by source files and private headers. This
system is intended to provide maximum flexibility for use on embedded
systems, where no operating system headers are included. Unix systems
can just copy rbcodecconfig-example.h and rbcodecplatform-unix.h with
minimal changes.
Change-Id: I350a2274d173da391fd1ca00c4202e9760d91def
Reviewed-on: http://gerrit.rockbox.org/143
Reviewed-by: Nils Wallménius <nils@rockbox.org>
Tested-by: Nils Wallménius <nils@rockbox.org>
|
| |
|
|
| |
Change-Id: I886d65b60364699845475e2ea1a741aece506a8f
|
| |
|
|
| |
Change-Id: I83c1b523de453c45aa4df3340b9a1aa63bf321ed
|
| |
|
|
|
|
|
|
| |
Moved to playback.c, since it doesn't use metadata from the music file.
Change-Id: I5c3ad7750d94b36754f64eb302f96ec163785cb9
Reviewed-on: http://gerrit.rockbox.org/142
Reviewed-by: Nils Wallménius <nils@rockbox.org>
|
| |
|
|
|
|
| |
for real this time. Also, use English grammar.
Change-Id: I1f2156afa313280deb02b58a191511699671a761
|
| |
|
|
| |
Change-Id: If9936bfbbd3bc3eb2a3e3e290701b8517eabfb13
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The LSP feature in WMA requires that the noise table values be
doubled verses when it is not used. Unfortunately, the previous
code would double the same values every time a LSP file was
decoded without first resetting them to their original values.
Change the code to check if the values are already doubled, and
then double/halve them as needed. This is still a bit ugly,
in the future consider using the built in rockbox dither instead
of a lookup table.
Fixes playback when skipping back and forth between low and high
bitrate WMA.
Change-Id: I4c393092e4a789bc8f98d74274fe207400b9550e
Reviewed-on: http://gerrit.rockbox.org/226
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
Tested-by: Michael Giacomelli <giac2000@hotmail.com>
|
| |
|
|
|
|
| |
...because currently gains are only set through dsp_configure.
Change-Id: I2866473a82fdd5f41de4705b45928daa7e43f8eb
|