summaryrefslogtreecommitdiff
path: root/apps/codecs/demac (follow)
Commit message (Collapse)AuthorAge
* Add codecs to librbcodec.Sean Bartell2012-04-25
| | | | | | | Change-Id: Id7f4717d51ed02d67cb9f9cb3c0ada4a81843f97 Reviewed-on: http://gerrit.rockbox.org/137 Reviewed-by: Nils Wallménius <nils@rockbox.org> Tested-by: Nils Wallménius <nils@rockbox.org>
* build system: completely autodetect target cpu architecture.Thomas Martitz2012-03-28
| | | | | | | | | | | | The existing ARCH Makefile variable is exported to the C code as well. Additionally the version (arm-only for now) is detected as well. This allows to for complete autodetection, i.e. that optimized ASM is picked up if determined by preprocessor (CPU_ARM, etc). Building a sim/raaa on a arm host will now automatically generate a arm optmized build like we have for native targets. Change-Id: I0b35393f8fb3ebd20beaa9e7371fa57bf3782107
* FS#12231Nils Wallménius2011-08-18
| | | | | | | | | | | | | | | | | Centralize the selection of codec compilation flags to codec.make to avoid having to duplicate the per cpu selection logic and the build rule in the individual codec lib make files and make tweaking easier. The two special cases, libmad and libspeex were left alone. I plan to introduce a var for arm generation so that appropriate flags can be selected per generation as benchmarking results have shown that different arm arches might have different optimal flags. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30330 a1c6a512-1295-4272-9138-f99709370657
* FS#12141 by Sean BartellNils Wallménius2011-06-02
| | | | | | | | | | | Some of these were found with http://www.samba.org/junkcode/#findstatic. Changes of note: * The old MDCT has been removed. * Makefile.test files that create test programs for libatrac, libcook, and libffmpegFLAC have been removed, as they don't work. My project will have a replacement that works with all codecs. * I've tried not to remove anything useful. CLIP_TO_15 was removed from libtremor because there's another copy (also commented) in codeclib. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29945 a1c6a512-1295-4272-9138-f99709370657
* Fix standalone demac tool build.Jens Arnold2011-02-06
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29239 a1c6a512-1295-4272-9138-f99709370657
* Fix #11897 - Multiple 'divide by zero' while playing particular APE on ↵Michael Sevakis2011-02-05
| | | | | | Clip+. Problem and solution observed and checked on Gigabeat S by myself. Fix submitted by Mikhail Titov resolves it. range_decode_short was declared as returing 'int short' rather than 'unsigned short' resulting in unwanted sign extension. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29208 a1c6a512-1295-4272-9138-f99709370657
* Switch coldfire builds over to new toolchain using gcc 4.5.2 and binutils 2.20.1Nils Wallménius2011-01-12
| | | | | | | Retune codec compiler optimizations with new compiler. Overall speedup with aac and flac getting big speedups. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29042 a1c6a512-1295-4272-9138-f99709370657
* Redo r28026 so that all .S files get the __ASSEMBLER__ define.Thomas Martitz2010-12-27
| | | | | | Patch by Thomas Jarosch. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28913 a1c6a512-1295-4272-9138-f99709370657
* Use MEM_ALIGN_ATTR in libdemac instead of fixed alignment. Speeds up arm11 ↵Andree Buschmann2010-11-21
| | | | | | by ~6%. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28632 a1c6a512-1295-4272-9138-f99709370657
* Fix typo from r28026 causing warnings on newer gcc.Nils Wallménius2010-11-01
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28439 a1c6a512-1295-4272-9138-f99709370657
* workaround weird gcc behaviourRafaël Carré2010-09-07
| | | | | | | it might a bug in the 4 years old gcc version, but __ASSEMBLER__ is not defined when preprocessing .S files with -std=gnu99 git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28026 a1c6a512-1295-4272-9138-f99709370657
* libdemac: ARMv7 assembler optimisation for the filters, tested on Nokia ↵Jens Arnold2010-08-30
| | | | | | N900. Speedup is 2.1x for -c5000 compared to the ARMv6 asm. Note that actually compiling it on device requires hand-assembling the 'vadd' and 'vsub' instructions due to a bug in binutils 2.18.50, and making the standalone decoder use it requires Makefile and demac_config.h hacks. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27944 a1c6a512-1295-4272-9138-f99709370657
* Make libdemac compile again on OSX x86 and x86_64 by replacing .rept with ↵Jens Arnold2010-07-19
| | | | | | fancy preprocessor stuff. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27490 a1c6a512-1295-4272-9138-f99709370657
* FS#11335 by me: make ARM assembly functions thumb-friendlyRafaël Carré2010-06-11
| | | | | | | | | | | | | We can't pop into pc on ARMv4t when using thumb: the T bit won't be modified if we are returning to a thumb function Code running on ARMv4t should use the new ldrpc / ldmpc macros instead of ldr pc, [sp], #4 and ldm(cond) sp!, {regs, pc} No modification on pure ARM builds and ARMv5+ Note: USE_THUMB is currently never defined, no targets can currently be built with -mthumb, see FS#6734 git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26756 a1c6a512-1295-4272-9138-f99709370657
* Correction to clobber lists of several codec's inline assembly.Andree Buschmann2010-05-29
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26376 a1c6a512-1295-4272-9138-f99709370657
* Move c/h files implementing/defining standard library stuff into a new libc ↵Thomas Martitz2010-05-06
| | | | | | | | directory, also standard'ify some parts of the code base (almost entirely #include fixes). This is to a) to cleanup firmware/common and firmware/include a bit, but also b) for Rockbox as an application which should use the host system's c library and headers, separating makes it easy to exclude our files from the build. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25850 a1c6a512-1295-4272-9138-f99709370657
* Move (small) data into DRAM on PP5020, it's ~4.5% faster that way. Closes ↵Jens Arnold2010-03-10
| | | | | | about half of the performance gap towards PP5022. The (relatively large) buffers for decoded data stay in IRAM, as does the reciprocal table. Clarify some comments. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25108 a1c6a512-1295-4272-9138-f99709370657
* libdemac: Separate filtering calls per channel in preparation for the ↵Jens Arnold2010-03-03
| | | | | | dual-core split on PP. This also means less inlining, and hence speeds up decoding on single core slightly, due to better caching behaviour. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25005 a1c6a512-1295-4272-9138-f99709370657
* Get rid of .rept in inline asm() blocks where possible. Using .rept causes ↵Jens Arnold2010-03-03
| | | | | | gcc to wrongly estimate the size of the asm(), leading to (potential) compilation problems. This is necessary for the upcoming restructuring, and should fix ARMv6+ sim builds as well. No functional change. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25004 a1c6a512-1295-4272-9138-f99709370657
* Remove all tabs within codec path.Andree Buschmann2010-02-22
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24862 a1c6a512-1295-4272-9138-f99709370657
* Clarify comments in ARMv6 divider regarding special-case handling of large ↵Andrew Mahone2010-02-20
| | | | | | (high bit set) numerators. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24783 a1c6a512-1295-4272-9138-f99709370657
* libdemac: Add x86/x86_64 MMX asm for the filters. Not relevant for target ↵Jens Arnold2010-02-15
| | | | | | but speeds up decoding on x86/x86_64 sims. Average speedup ranges from 25% for -c2000 to 3 times for -c5000; on Intel Atom it's even 45% for -c2000 to 6 times for -c5000. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24663 a1c6a512-1295-4272-9138-f99709370657
* Remove leftover from before make system rework.Jens Arnold2010-02-11
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24602 a1c6a512-1295-4272-9138-f99709370657
* APE: Fused vector math for the filters on ARMv5te. Speedup on Cowon D2 is ↵Jens Arnold2010-02-10
| | | | | | ~4% for -c2000..-c4000 (less for -c5000). Thanks to Frank Gevaerts for testing. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24590 a1c6a512-1295-4272-9138-f99709370657
* APE: Fused vector math for the filters on ARMv6. Speedup is ~2.5% for ↵Jens Arnold2010-02-08
| | | | | | -c2000, ~7% for -c3000 and higher. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24569 a1c6a512-1295-4272-9138-f99709370657
* Put back the insane buffer where it belongs on non-ARM, and simplify the ↵Jens Arnold2010-02-04
| | | | | | selection. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24512 a1c6a512-1295-4272-9138-f99709370657
* Fix yellow: add newline at EOF in udiv32_arm-pre.SAndrew Mahone2010-02-04
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24508 a1c6a512-1295-4272-9138-f99709370657
* Use all available codec iram for reciprocal table in APE codec on ARMv4. ↵Andrew Mahone2010-02-04
| | | | | | Done by linking first with the table empty to determine free space, then sizing table to fill it. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24507 a1c6a512-1295-4272-9138-f99709370657
* Move udiv32_arm.S into libdemac, as this divider is specialized for the APE ↵Andrew Mahone2010-02-04
| | | | | | codec and an optimized divider is already provided for general use in codeclib. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24506 a1c6a512-1295-4272-9138-f99709370657
* APE codec: Speed up decoding of -c2000 and higher on ARMv4 and coldfire by ↵Jens Arnold2010-02-02
| | | | | | fusing vector math for the filters. Speedup is roughly 3.5% for -c2000, 8% for -c3000 and 12% for -c4000. To be extended to other architectures. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24473 a1c6a512-1295-4272-9138-f99709370657
* Improve libdemac SATURATE slightly on ARMv4/5, move filter buffers and code ↵Andrew Mahone2010-01-30
| | | | | | out of IRAM for sizes that aren't near realtime and extend udiv32_arm reciprocal table. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24376 a1c6a512-1295-4272-9138-f99709370657
* Improvements to specialized dividers for APE codec:Andrew Mahone2010-01-28
| | | | | | | | | * Use Newton-Raphson divider on ARMv5e and ARMv6, about 7% speedup on Gigabeat S. * On ARMv4 targets using IRAM, remove insane filter buffer from IRAM, fill available IRAM with LUT of reciprocals for small divisors - speedup varies according to target and available IRAM, APE normal sample is approx. 109% RT on e200. * Rename apps/codecs/lib/udiv32_armv4.S to apps/codecs/lib/udiv32_arm.S, which includes dividers for all ARM targets specialized for APE. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24354 a1c6a512-1295-4272-9138-f99709370657
* Make the codecs use more IRAM on S5L870x, as we have plenty of it.Michael Sparmann2009-11-09
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23594 a1c6a512-1295-4272-9138-f99709370657
* Don't use ldrd/strd on ARMv5 since not all revisions support them and the ↵Jens Arnold2009-07-17
| | | | | | gain from using them is minimal (basically code size only). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21916 a1c6a512-1295-4272-9138-f99709370657
* Silence warning from 'ar' if the archive had to be created.Jens Arnold2009-03-01
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20151 a1c6a512-1295-4272-9138-f99709370657
* Stop hiding errors by redirecting stderr to /dev/null. If we really need to ↵Daniel Stenberg2009-02-23
| | | | | | do re-introduce somewhere we should rather make it dependent on the V variable so that make V=1 would still show the error and only "normal" builds would hide it. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20090 a1c6a512-1295-4272-9138-f99709370657
* Calculate watermark from bitrate and harddisk spinup time.Björn Stenberg2009-01-10
| | | | | | | | Use a smaller PCM buffer on targets with 2MB or less ram. (FS#9703) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19743 a1c6a512-1295-4272-9138-f99709370657
* static/const/#include/tab police on various filesBertrik Sikken2009-01-02
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19643 a1c6a512-1295-4272-9138-f99709370657
* Make local functions static in codecs, where possible.Bertrik Sikken2008-12-29
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19612 a1c6a512-1295-4272-9138-f99709370657
* Slight speedup for the APE filters. Most noticeable on coldfire (+3.5% for ↵Jens Arnold2008-12-22
| | | | | | -c2000), but also helps on the arm targets (+0.9% for -c2000 on PP5002). This transformation is oveflow safe, as absres < 2^24 is guaranteed. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19556 a1c6a512-1295-4272-9138-f99709370657
* Fix decoding of stereo frames with silence in only one channel. * Make the ↵Jens Arnold2008-12-21
| | | | | | standalone decoder contain debugging information. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19552 a1c6a512-1295-4272-9138-f99709370657
* Fix handling of 8 bit mono and stereo APE files, and also optimise 16 and 24 ↵Jens Arnold2008-12-21
| | | | | | bit output in the standalone decoder a bit. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19517 a1c6a512-1295-4272-9138-f99709370657
* Assembler optimised mono predictor for ARM. Speedup for -c1000 mono is ~5% ↵Jens Arnold2008-12-09
| | | | | | on PP, ~8% on Gigabeat S (less for higher compression levels). Also fix some overlooked comments in the stereo predictor. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19375 a1c6a512-1295-4272-9138-f99709370657
* Implement mono predictor in assembler for coldfire, yielding a ~6% speedup ↵Jens Arnold2008-12-02
| | | | | | for mono -c1000. Apply ideas gained from it back to the stereo predictor, saving 4 instructions. No speed increase for stereo, probably due to cache aliasing effects. * 80-column police. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19296 a1c6a512-1295-4272-9138-f99709370657
* Shuffling around register allocation allows to keep decoded0 and decoded1 in ↵Jens Arnold2008-12-01
| | | | | | registers, for a slight speedup. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19287 a1c6a512-1295-4272-9138-f99709370657
* Remove extraneous semicolons, and fix a comment.Jens Arnold2008-11-30
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19268 a1c6a512-1295-4272-9138-f99709370657
* Fix APE 16-bit mono output: mono signals need to be scaled for rockbox.Jens Arnold2008-11-30
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19264 a1c6a512-1295-4272-9138-f99709370657
* Resurrect the ARM7 16-bit packed vector addition/subtraction for ARMv5, ↵Jens Arnold2008-11-28
| | | | | | giving a nice speedup for the higher compression levels (tested on Cowon D2). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19260 a1c6a512-1295-4272-9138-f99709370657
* On ARM9TDMI (e.g. Gigabeat F) it's faster to use a ldr/str pair than ↵Jens Arnold2008-11-27
| | | | | | add+ldmia/stmia for 2 registers. On ARM7TDMI a str pair is equally fast, so go for the simpler macro and use it for all ARMv4. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19250 a1c6a512-1295-4272-9138-f99709370657
* Speed up the predictor a little by using ldrd/strd on ARMv5+. This required ↵Jens Arnold2008-11-27
| | | | | | shuffling around the register allocation somewhat. Performance on ARMv4 is unaffected. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19248 a1c6a512-1295-4272-9138-f99709370657