summaryrefslogtreecommitdiff
path: root/lib (follow)
Commit message (Collapse)AuthorAge
...
* EQ settings: Rework the settings to clean up the config file.Jonathan Gordon2013-02-09
| | | | | | | | | | | | | | | | | | | Instead of 3 cfg lines per eq band there is now a single line for each: <config name>: <cutoff/center freq>, <q>, <gain> In addition, the config value names make a bit more sense. The old settings are still readable but config.cfg and any new settings files will be written with the new config values. (The old settings will be removed completly sometime after the next stable release). Also a slight rework of the advanced EQ menu UI Change-Id: I9008658d36ded442a5f2f825916df42a3934cbef Reviewed-on: http://gerrit.rockbox.org/394 Reviewed-by: Jonathan Gordon <rockbox@jdgordon.info>
* Fix Theme Editor build.Dominik Riebeling2013-02-08
| | | | | | | The skin_parser now needs __PCTOOL__ set to build libskin_parser.a properly for use with the Theme Editor. Change-Id: I48a518fa296cc8ec5d0e3022baaedd796afe7c5f
* 10 Band EQ w/PresetsHayden Pearce2013-01-29
| | | | | | | | | | | - A 10 Band EQ for Rockbox w/ presets adapted from VLC - frequency stepping at 32, 64, 125, 250, 500 1K, 2K, 4K, 8K, 16K Change-Id: I85ad84d70a534edfc66c6ad9af8a76f022a02ec7 Reviewed-on: http://gerrit.rockbox.org/386 Reviewed-by: Jonathan Gordon <rockbox@jdgordon.info>
* Deprecate the EXTRA_LIBS variable.Björn Stenberg2013-01-24
| | | | Instead specify explicit library dependencies for codecs and plugins.
* ARMv5 optimized complex multiply function for libopus.Michael Giacomelli2013-01-21
| | | | | | | | | | | | | Speeds up decoding of 128k opus files by 1.2MHz on AMSv2. Rounding error is 1 bit due to KissFFT using a 15 bit shift instead of a 16 bit shift. Also, change an LDMIA in the armv4 code to LDM as the pointer should not increment. Change-Id: I626a207c6a056a1984e33cfe89415c35d0caed93 Reviewed-on: http://gerrit.rockbox.org/377 Reviewed-by: Michael Giacomelli <giac2000@hotmail.com> Tested-by: Michael Giacomelli <giac2000@hotmail.com>
* Fix FS#12794 - new EQ code does not compile for the Nokia N8x0Michael Sevakis2012-12-28
| | | | | | | | | The old GCC version currently required (sbox-arm-linux-gcc 3.4.4 release) apparently has trouble with function pointers used as static array initializers when using indexed initializers + ranges (ie. [A ... B] = fn). Change-Id: I494c2b607e4d93a9893264749d0ac257fb54ce3b
* 9 segment bitmap drawing:Jonathan Gordon2012-12-09
| | | | | | | | | | Use %x9(id) to draw an image in the whole current viewport using the 9 segment drawer (which draws the corners as normal and *tiles* the middle segments to the needed width/height). Future work is to make it scale instead of tile Change-Id: Ic3ed1cad93f96091694801eb442e0da5a2401203
* Add support for 16 bit 'half float' format PCM.Michael Giacomelli2012-11-22
| | | | | | | | | I'm not 100% sure that the rounding of denormals is correct. As compared to foobar2000, some samples are off by +1 LSB. However, since I can't output 24 bit PCM easily with rockbox, I'm not sure if this is due to a bug or just how rockbox rounds. In practice I don't think it matters so I'm just going to commit this for now. Change-Id: Ic0792fcb172e4369a5512d202121c2b918b36079
* flac: use 64 bit math to calculate the elapsed timeNils Wallménius2012-10-25
| | | | | | avoids overflows for very long files Change-Id: Idb1e9a411bd9007cfddbbd2d3dcf127645fa9a7c
* libgme: fix badly written cpp conditions spotted by gcc 4.6.3Marcin Bukat2012-10-18
| | | | Change-Id: Ia3fba4ba2c46a202c48f3a9b7db0cba9f75b6a50
* opus: only put the mdct function in iram for cf,Nils Wallménius2012-10-17
| | | | | | doesn't make any speed diff on pp Change-Id: Ia6484e2a2bbf72d33a583470918c0fa267fd9b97
* opus: don't rely on stride being 1<<shiftNils Wallménius2012-10-16
| | | | Change-Id: I2d64fb20b2526d912eb665df0df4e87459676a92
* opus: use two pointers for mdct pre and post rotationAndree Buschmann2012-10-16
| | | | | | | | | avoids complicated index calculations in the loops. saves 0.3MHz decoding a 64kbps test file on h300 (cf) and 0.2MHz on c200 (pp) Change-Id: I1918912d9a4502f89980c6bb270ec2ef10a07010 Signed-off-by: Nils Wallménius <nils@rockbox.org>
* opus: put hot code in iramNils Wallménius2012-10-16
| | | | | | | Saves 1.1MHz decoding a 64kbps test file on h300 (cf) and 0.2MHz on c200 (pp) Change-Id: If9ed03f2e3787ee497eababda4013fbb5d395946
* Improve seeking in opus, tested on Sansa; not testedFrederik M.J. Vestre2012-10-14
| | | | | | | | | | on a target with a disk. Change-Id: I37c875c9cd014eb61fe5232dab0f4b8f15f057dd Reviewed-on: http://gerrit.rockbox.org/319 Tested-by: Thiago Okada <thiago.mast3r@gmail.com> Reviewed-by: Frederik Vestre <freqmod@gmail.com> Tested-by: Frederik Vestre <freqmod@gmail.com>
* opus: arm asm for C_MULCAndree Buschmann2012-10-10
| | | | | | | | speeds up decoding of a 64kbps test_file by 1.5MHz on c200 (pp) and 1.9MHz on fuzev1 (amsv1) Change-Id: I1db460b634eba608c3e00541d96fc93d5a05710b Signed-off-by: Nils Wallménius <nils@rockbox.org>
* opus: cf asm for C_MULCNils Wallménius2012-10-10
| | | | | | saves 2.7MHz decoding a 64kbps test file on h300 Change-Id: Id63791f79b44ed398ce5d341a5f5212d9a30282e
* opus: replace copy loops with calls to memcpyAndree Buschmann2012-10-07
| | | | | | | | speeds up decoding of a 64kbps test file by 0.5Hz on h300 (cf) 0.9MHz on c200 (pp) and 0.2MHz on fuzev1 (amsv1) Change-Id: Ib537c2393fa6dca0b61e4e9f80eef5e688c2c2bd Signed-off-by: Nils Wallménius <nils@rockbox.org>
* opus: speed up mdct overlap add and copyingAndree Buschmann2012-10-07
| | | | | | | | Unroll overlap add loop by four and use memcpy for copying instead of loops. Change-Id: I17114626a395d5972130251d892f851bc86e3a6a Signed-off-by: Nils Wallménius <nils@rockbox.org>
* opus: cf inline asm for MULT32_32_Q31Nils Wallménius2012-10-06
| | | | | | speeds up decoding of a 64kbps test file by 2MHz on h300 Change-Id: I437d05278fe1c495715cf0e3477f9960d1df9d3a
* opus: full precision MULT32_32_Q31 (32*32=64>>31) multiplicationAndree Buschmann2012-10-06
| | | | | | | | | Replace complicated macro doing three 16*16 muls and add an inline asm implementation for arm, speeds up decoding a 64kbps test file by 0.5MHz on c200 (pp) and gives slightly better precision. Change-Id: I6fc5b83c210f01bffdc38aec54cc5a8b646d8169 Signed-off-by: Nils Wallménius <nils@rockbox.org>
* opus: slight speedup of deemphasisAndree Buschmann2012-10-06
| | | | | | | | | | | Hoist load of coefficients out of the loop. Speeds up decoding of a 64kbps test file by 0.6MHz on h300 (cf) 0.2MHz on c200 (pp) and 0.1MHz on fuzev1 (amsv1) Signed-off-by: Nils Wallménius <nils@rockbox.org> Change-Id: I4be0059fc2a77748575f5fc9378f7f348d64f1c4
* opus: speed up comb_filterAndree Buschmann2012-10-06
| | | | | | | | | | | 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>
* opus: put arrays frequently used by pulse decoding on the stackNils Wallménius2012-10-04
| | | | | | | speeds up decoding of a 64kbps test file by 14MHz on h300 (cf) and 1MHz on c200 (pp) Change-Id: I852cb66808676ea51109423f5b70cfc8782dd109
* opus: speed up arm asm MULT16_32_Q15Nils Wallménius2012-10-01
| | | | | | | | 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
* opus: allocate mdct f2 buffer in iramAndree Buschmann2012-10-01
| | | | | | | | | 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
* opus: allocate buffers for X and freq in iramAndree Buschmann2012-10-01
| | | | | | | | 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>
* Support technically invalid image/jpg mimetype in tags.Frank Gevaerts2012-09-29
| | | | | | | | | | 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>
* opus: statically allocate decoder state in iramAndree Buschmann2012-09-29
| | | | | | | | 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>
* opus: speed up deemphasisNils Wallménius2012-09-28
| | | | | | | | | 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
* opus: build with -fno-strict-aliasing for mips to fix warningsNils Wallménius2012-09-27
| | | | Change-Id: I370f43f2e25e03650681c207908f79cdea744d99
* opus: put frequently used mdct buffer on the real stack which is in iramNils Wallménius2012-09-26
| | | | | | | 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
* opus: improve cf MULT16_32_Q15 by giving the compiler more freedomNils Wallménius2012-09-26
| | | | | | saves about 3MHz when decoding a 64kbps test file Change-Id: I10f47173ccb78e60e364662220d1db2f78dd5fdd
* opus: put some const tables and structs in iramNils Wallménius2012-09-25
| | | | | | | Speeds up decoding of a 64kbps test file by 20MHz on h300 (cf) and 1MHz on c200 (pp) Change-Id: Ia2adc0a3ad86abce8f948062eb53a8ac14c2cdf2
* opus: asm MULT16_32_Q15 for arm and cfNils Wallménius2012-09-25
| | | | | | | 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
* opus: #if 0 out some more unused code, delete unused fileNils Wallménius2012-09-24
| | | | Change-Id: I96033f42e0c3096ec9d779e9f8ca46570f981ab0
* opus: #if 0 out some unused codeNils Wallménius2012-09-24
| | | | Change-Id: I16fa9b439f8da5b9b8a4f17040487b9535078ec5
* Remove unused include path for opusBertrik Sikken2012-09-23
| | | | Change-Id: Ie5ab9d893a7d2c6ec1aca6c295e29ab34eacd656
* Initial opus codec supportFrederik M J Vestre2012-09-20
| | | | | | | | | | | | | | | | | 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>
* unwarminder: make SP and PC visible on smaller screensMarcin Bukat2012-09-05
| | | | Change-Id: I78c0e6edb1ad097154885b9fa93d74616047cbc1
* skin_engine: Support percentages for viewport positioningJonathan Gordon2012-07-29
| | | | | | | | | | | %V(0,50%,75%,50%,-) - make a viewport at x=0, y=half the lcd height, 75% lcd width and the remaining height (the other half) of the lcd. Change-Id: If26ccb65e8dc52c9225f3fd6d7b222d770add0f0 Reviewed-on: http://gerrit.rockbox.org/184 Reviewed-by: Thomas Martitz <kugel@rockbox.org> Tested-by: Thomas Martitz <kugel@rockbox.org> Reviewed-by: Jonathan Gordon <rockbox@jdgordon.info>
* Make codec_realloc retain the contents when resizing a memory segmentBertrik Sikken2012-07-26
| | | | Change-Id: Ia2fc42eb0d36399e6856d3a957dd1634f019ca6a
* skin_engine: Allow the %St() (setting) skin tag be used as a barJonathan Gordon2012-07-05
| | | | | | %St(<setting name>) or %St(<bar tags>, setting, <setting name>) Change-Id: I71396d683634d4d1ad2357018c4029ecb4229677
* skin_engine: Fix a obscure parser bugJonathan Gordon2012-07-05
| | | | | | | | Tag params where a [] group is followed (but not immediatly) by a * will not parse correctly. e.g [si]iii|s* will attempt to find an 'i' after the second s instead of looping s's Change-Id: I3982f726b6539818f8332334b263b673259f98ef
* Expand the range of the WPA Pro quant table. Fixes FS#12704.Michael Giacomelli2012-07-03
| | | | Change-Id: I5495c4d7d165cac15016d3233b85bbe5497ea3e1
* Fix libmad compilation on MIPS with newer gcc. FS#12013Huan Zhang2012-06-11
| | | | | | | | | | | 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
* unwarminder: fix data_abort_handler (wrong address to UIE)Amaury Pouly2012-06-07
| | | | Change-Id: I060735363f2e408c42a8e11ac1f31dc96e3cb2d6
* New crossfeed algorithm for Rockbox: "Meier" crossfeedBertrik Sikken2012-05-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Use shorter lines to show an ARM backtrace (so address fit on the clip zip ↵Bertrik Sikken2012-05-28
| | | | | | screen) Change-Id: Ib36c09a44230fbaaa119f756367f98bdc7756983
* Stop timestretch freezing things during format changes.Michael Sevakis2012-05-21
| | | | | | | | 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